{"version":3,"sources":["../node_modules/react/index.js","../node_modules/moment/moment.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/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/components/Provider.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.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/tslib/tslib.es6.js","../../src/data/OperationData.ts","../../src/data/QueryData.ts","../../src/utils/useBaseQuery.ts","../../src/utils/useDeepMemo.ts","../../src/useQuery.ts","../../src/useLazyQuery.ts","../../src/data/MutationData.ts","../../src/useMutation.ts","../../src/data/SubscriptionData.ts","../../src/useApolloClient.ts","../../src/ssr/RenderPromises.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/graphql-tag/src/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../../src/storeUtils.ts","../../src/directives.ts","../../src/fragments.ts","../../src/util/assign.ts","../../src/getFromAST.ts","../../src/util/filterInPlace.ts","../../src/transform.ts","../../src/util/canUse.ts","../../src/util/cloneDeep.ts","../../src/util/environment.ts","../../src/util/errorHandling.ts","../../src/util/maybeDeepFreeze.ts","../../src/util/mergeDeep.ts","../../src/util/warnOnce.ts","../../src/invariant.ts","../../src/await-to-js.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../src/index.ts","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/graphql/jsutils/defineToJSON.mjs","../node_modules/graphql/language/ast.mjs","../node_modules/invariant/browser.js","../node_modules/react-native-web/node_modules/fbjs/lib/ExecutionEnvironment.js","../node_modules/scroll-sync-react/dist/index.esm.js","../../src/equality.ts","../../src/zenObservable.ts","../../src/linkUtils.ts","../../src/link.ts","../../src/context/ApolloContext.ts","../../src/parser/parser.ts","../../src/context/ApolloProvider.tsx","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/graphql/language/visitor.mjs","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/axios/lib/utils.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/redux/es/redux.js","../node_modules/js-cookie/src/js.cookie.js","../node_modules/react-dnd/lib/cjs/index.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../node_modules/flatpickr/dist/flatpickr.js","../../src/utils/errors.ts","../../src/utils/common.ts","../../src/types/types-internal.ts","../../src/utils/plugins.ts","../../src/core/scope.ts","../../src/core/finalize.ts","../../src/core/proxy.ts","../../src/core/immerClass.ts","../../src/plugins/es5.ts","../../src/immer.ts","../../src/utils/env.ts","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-native-web/dist/exports/StyleSheet/StyleSheet.js","../node_modules/react-native-web/dist/exports/StyleSheet/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/mini-create-react-context/dist/esm/index.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/Prompt.js","../../modules/generatePath.js","../../modules/Redirect.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/hooks.js","../../src/core/networkStatus.ts","../../src/util/Observable.ts","../../src/util/arrays.ts","../../src/errors/ApolloError.ts","../../src/core/types.ts","../../src/core/ObservableQuery.ts","../../src/data/mutations.ts","../../src/data/queries.ts","../../src/core/LocalState.ts","../../src/util/capitalizeFirstLetter.ts","../../src/util/observables.ts","../../src/core/QueryManager.ts","../../src/data/store.ts","../../src/ApolloClient.ts","../../src/version.ts","../node_modules/dnd-core/lib/cjs/actions/dragDrop/types.js","../node_modules/react-dnd/lib/cjs/utils/discount_lodash.js","../node_modules/react-dom/index.js","../node_modules/dnd-core/lib/cjs/utils/discount_lodash.js","../node_modules/prop-types/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/process/browser.js","../node_modules/shallowequal/index.js","../node_modules/css-in-js-utils/lib/isPrefixedValue.js","../node_modules/symbol-observable/es/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/redux-thunk/es/index.js","../node_modules/graphql/jsutils/nodejsCustomInspectSymbol.mjs","../node_modules/react-native-web/dist/exports/StyleSheet/ReactNativePropRegistry.js","../node_modules/react-native-web/dist/exports/StyleSheet/flattenStyle.js","../node_modules/webpack/buildin/global.js","../node_modules/react-dnd/lib/cjs/DragDropContext.js","../node_modules/dnd-core/lib/cjs/actions/dragDrop/index.js","../node_modules/dnd-core/lib/cjs/actions/registry.js","../node_modules/react-dnd/lib/cjs/utils/checkDecoratorArguments.js","../node_modules/react-is/index.js","../node_modules/graphql/jsutils/inspect.mjs","../node_modules/graphql/language/blockString.mjs","../node_modules/eventemitter3/index.js","../../lib/atob.js","../../lib/base64_url_decode.js","../../lib/index.js","../node_modules/axios/index.js","../node_modules/react-dnd-html5-backend/lib/cjs/index.js","../node_modules/reselect/es/index.js","../../src/devtoolsExtension.ts","../../src/isPlainObject.ts","../../src/configureStore.ts","../../src/getDefaultMiddleware.ts","../../src/createAction.ts","../../src/mapBuilders.ts","../../src/createSlice.ts","../../src/createReducer.ts","../../node_modules/babel-plugin-transform-async-to-promises/helpers.js","../node_modules/react-native-web/dist/modules/mergeRefs/index.js","../node_modules/react-native-web/dist/modules/useMergeRefs/index.js","../node_modules/object-assign/index.js","../node_modules/qs/lib/utils.js","../node_modules/react-dnd/lib/cjs/utils/isRefable.js","../node_modules/react-dnd/lib/cjs/hooks/internal/useDragDropManager.js","../node_modules/react-dnd-html5-backend/lib/cjs/NativeTypes.js","../node_modules/hyphenate-style-name/index.js","../node_modules/@babel/runtime/helpers/inheritsLoose.js","../node_modules/react-router/node_modules/path-to-regexp/index.js","../node_modules/qs/lib/index.js","../node_modules/scheduler/index.js","../node_modules/webpack/buildin/module.js","../node_modules/qs/lib/formats.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/dnd-core/lib/cjs/interfaces.js","../node_modules/dnd-core/lib/cjs/utils/matchesType.js","../node_modules/dnd-core/lib/cjs/utils/equality.js","../node_modules/dnd-core/lib/cjs/utils/dirtiness.js","../node_modules/react-dnd/lib/cjs/decorateHandler.js","../node_modules/react-dnd/lib/cjs/registerSource.js","../node_modules/react-dnd/lib/cjs/utils/getDecoratedComponent.js","../node_modules/react-dnd/lib/cjs/DragSourceMonitorImpl.js","../node_modules/react-dnd/lib/cjs/SourceConnector.js","../node_modules/react-dnd/lib/cjs/wrapConnectorHooks.js","../node_modules/react-dnd/lib/cjs/utils/isRef.js","../node_modules/react-dnd/lib/cjs/utils/isValidType.js","../node_modules/react-dnd/lib/cjs/registerTarget.js","../node_modules/react-dnd/lib/cjs/DropTargetMonitorImpl.js","../node_modules/react-dnd/lib/cjs/TargetConnector.js","../node_modules/react-dnd/lib/cjs/hooks/internal/useMonitorOutput.js","../node_modules/react-dnd/lib/cjs/hooks/internal/useCollector.js","../node_modules/react-dnd-html5-backend/lib/cjs/utils/discount_lodash.js","../node_modules/react-dnd-html5-backend/lib/cjs/BrowserDetector.js","../node_modules/inline-style-prefixer/lib/utils/capitalizeString.js","../node_modules/symbol-observable/es/ponyfill.js","../node_modules/redux-logger/dist/redux-logger.js","../node_modules/gud/index.js","../node_modules/zen-observable/index.js","../node_modules/fast-json-stable-stringify/index.js","../node_modules/react-dom/test-utils.js","../node_modules/node-libs-browser/node_modules/util/util.js","../node_modules/inline-style-prefixer/lib/createPrefixer.js","../node_modules/inline-style-prefixer/lib/plugins/backgroundClip.js","../node_modules/inline-style-prefixer/lib/plugins/crossFade.js","../node_modules/inline-style-prefixer/lib/plugins/cursor.js","../node_modules/inline-style-prefixer/lib/plugins/filter.js","../node_modules/inline-style-prefixer/lib/plugins/flex.js","../node_modules/inline-style-prefixer/lib/plugins/flexboxIE.js","../node_modules/inline-style-prefixer/lib/plugins/flexboxOld.js","../node_modules/inline-style-prefixer/lib/plugins/gradient.js","../node_modules/inline-style-prefixer/lib/plugins/grid.js","../node_modules/inline-style-prefixer/lib/plugins/imageSet.js","../node_modules/inline-style-prefixer/lib/plugins/logical.js","../node_modules/inline-style-prefixer/lib/plugins/position.js","../node_modules/inline-style-prefixer/lib/plugins/sizing.js","../node_modules/inline-style-prefixer/lib/plugins/transition.js","../node_modules/normalize-css-color/index.js","../node_modules/immutability-helper/index.js","../node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAriaRole.js","../node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAccessibilityComponent.js","../node_modules/react-native-web/dist/modules/AccessibilityUtil/index.js","../node_modules/react-native-web/dist/modules/AccessibilityUtil/buttonLikeRoles.js","../node_modules/react-native-web/dist/modules/AccessibilityUtil/isDisabled.js","../node_modules/react-native-web/dist/modules/unitlessNumbers/index.js","../node_modules/react-native-web/dist/modules/isWebColor/index.js","../node_modules/react-native-web/dist/exports/processColor/index.js","../node_modules/react-native-web/dist/modules/normalizeColor/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/normalizeValueWithProperty.js","../node_modules/react-native-web/dist/exports/StyleSheet/resolveShadowValue.js","../node_modules/react-native-web/dist/exports/StyleSheet/createCompileableStyle.js","../node_modules/react-native-web/dist/exports/StyleSheet/createOrderedCSSStyleSheet.js","../node_modules/react-native-web/dist/modules/flattenArray/index.js","../node_modules/react-native-web/dist/exports/I18nManager/index.js","../node_modules/react-native-web/dist/modules/multiplyStyleLengthValue/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/i18nStyle.js","../node_modules/react-native-web/dist/exports/StyleSheet/constants.js","../node_modules/react-native-web/dist/exports/StyleSheet/createReactDOMStyle.js","../node_modules/react-native-web/dist/vendor/hash/index.js","../node_modules/react-native-web/dist/modules/prefixStyles/static.js","../node_modules/react-native-web/dist/modules/prefixStyles/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/compile.js","../node_modules/react-native-web/dist/exports/StyleSheet/initialRules.js","../node_modules/react-native-web/dist/exports/StyleSheet/modality.js","../node_modules/react-native-web/dist/exports/StyleSheet/createStyleResolver.js","../node_modules/react-native-web/dist/exports/StyleSheet/styleResolver.js","../node_modules/react-native-web/dist/exports/StyleSheet/createCSSStyleSheet.js","../node_modules/react-native-web/dist/exports/StyleSheet/css.js","../node_modules/react-native-web/dist/modules/createDOMProps/index.js","../node_modules/react-native-web/dist/exports/createElement/index.js","../node_modules/react-native-web/dist/modules/useLayoutEffect/index.js","../node_modules/react-native-web/dist/modules/getBoundingClientRect/index.js","../node_modules/react-native-web/dist/modules/setValueForStyles/dangerousStyleValue.js","../node_modules/react-native-web/dist/modules/setValueForStyles/index.js","../node_modules/react-native-web/dist/exports/UIManager/index.js","../node_modules/react-native-web/dist/modules/useElementLayout/index.js","../node_modules/react-native-web/dist/modules/useStable/index.js","../node_modules/react-native-web/dist/modules/usePlatformMethods/index.js","../node_modules/react-native-web/dist/modules/useResponderEvents/ResponderEventTypes.js","../node_modules/react-native-web/dist/modules/useResponderEvents/ResponderTouchHistoryStore.js","../node_modules/react-native-web/dist/modules/useResponderEvents/createResponderEvent.js","../node_modules/react-native-web/dist/modules/useResponderEvents/utils.js","../node_modules/react-native-web/dist/modules/isSelectionValid/index.js","../node_modules/react-native-web/dist/modules/useResponderEvents/ResponderSystem.js","../node_modules/react-native-web/dist/modules/useResponderEvents/index.js","../node_modules/react-native-web/dist/exports/Text/TextAncestorContext.js","../node_modules/react-native-web/dist/exports/View/index.js","../node_modules/react-native-web/dist/modules/forwardedProps/index.js","../node_modules/react-native-web/dist/modules/pick/index.js","../../src/utils.ts","../../src/types/Cache.ts","../../src/cache.ts","../../src/slot.ts","../../src/context.ts","../../src/entry.ts","../../src/key-trie.ts","../../src/fragmentMatcher.ts","../../src/depTrackingCache.ts","../../src/readFromStore.ts","../../src/objectCache.ts","../../src/writeToStore.ts","../../src/inMemoryCache.ts","../node_modules/graphql/language/printer.mjs","../../src/httpLink.ts","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/webpack/buildin/harmony-module.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/react-router/node_modules/isarray/index.js","../node_modules/zen-observable/lib/Observable.js","../node_modules/react-dom/cjs/react-dom-test-utils.production.min.js","../node_modules/node-libs-browser/node_modules/util/support/isBufferBrowser.js","../node_modules/node-libs-browser/node_modules/util/node_modules/inherits/inherits_browser.js","../node_modules/qs/lib/stringify.js","../node_modules/qs/lib/parse.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/dnd-core/lib/cjs/index.js","../node_modules/dnd-core/lib/cjs/factories.js","../node_modules/dnd-core/lib/cjs/DragDropManagerImpl.js","../node_modules/dnd-core/lib/cjs/reducers/index.js","../node_modules/dnd-core/lib/cjs/reducers/dragOffset.js","../node_modules/dnd-core/lib/cjs/actions/dragDrop/beginDrag.js","../node_modules/dnd-core/lib/cjs/actions/dragDrop/local/setClientOffset.js","../node_modules/dnd-core/lib/cjs/actions/dragDrop/publishDragSource.js","../node_modules/dnd-core/lib/cjs/actions/dragDrop/hover.js","../node_modules/dnd-core/lib/cjs/actions/dragDrop/drop.js","../node_modules/dnd-core/lib/cjs/actions/dragDrop/endDrag.js","../node_modules/dnd-core/lib/cjs/reducers/dragOperation.js","../node_modules/dnd-core/lib/cjs/reducers/refCount.js","../node_modules/dnd-core/lib/cjs/reducers/dirtyHandlerIds.js","../node_modules/dnd-core/lib/cjs/reducers/stateId.js","../node_modules/dnd-core/lib/cjs/DragDropMonitorImpl.js","../node_modules/dnd-core/lib/cjs/utils/coords.js","../node_modules/dnd-core/lib/cjs/HandlerRegistryImpl.js","../node_modules/dnd-core/lib/cjs/utils/getNextUniqueId.js","../node_modules/dnd-core/lib/cjs/contracts.js","../node_modules/asap/browser-asap.js","../node_modules/asap/browser-raw.js","../node_modules/react-dnd/lib/cjs/DragLayer.js","../node_modules/react-dnd/lib/cjs/DragSource.js","../node_modules/react-dnd/lib/cjs/utils/disposables/index.js","../node_modules/react-dnd/lib/cjs/utils/disposables/Disposable.js","../node_modules/react-dnd/lib/cjs/utils/disposables/SerialDisposable.js","../node_modules/react-dnd/lib/cjs/utils/disposables/CompositeDisposable.js","../node_modules/react-dnd/lib/cjs/createSourceFactory.js","../node_modules/react-dnd/lib/cjs/utils/cloneWithRef.js","../node_modules/react-dnd/lib/cjs/utils/polyfills/endsWith.js","../node_modules/react-dnd/lib/cjs/DropTarget.js","../node_modules/react-dnd/lib/cjs/createTargetFactory.js","../node_modules/react-dnd/lib/cjs/DragPreviewImage.js","../node_modules/react-dnd/lib/cjs/hooks/index.js","../node_modules/react-dnd/lib/cjs/hooks/useDrag.js","../node_modules/react-dnd/lib/cjs/hooks/internal/drag.js","../node_modules/react-dnd/lib/cjs/hooks/useDrop.js","../node_modules/react-dnd/lib/cjs/hooks/internal/drop.js","../node_modules/react-dnd/lib/cjs/hooks/useDragLayer.js","../node_modules/react-dnd-html5-backend/lib/cjs/HTML5Backend.js","../node_modules/react-dnd-html5-backend/lib/cjs/EnterLeaveCounter.js","../node_modules/react-dnd-html5-backend/lib/cjs/OffsetUtils.js","../node_modules/react-dnd-html5-backend/lib/cjs/MonotonicInterpolant.js","../node_modules/react-dnd-html5-backend/lib/cjs/NativeDragSources/index.js","../node_modules/react-dnd-html5-backend/lib/cjs/NativeDragSources/nativeTypesConfig.js","../node_modules/react-dnd-html5-backend/lib/cjs/NativeDragSources/getDataFromDataTransfer.js","../node_modules/react-dnd-html5-backend/lib/cjs/NativeDragSources/NativeDragSource.js","../node_modules/react-dnd-html5-backend/lib/cjs/getEmptyImage.js","../node_modules/react-native-web/node_modules/fbjs/lib/invariant.js","../node_modules/inline-style-prefixer/lib/utils/prefixProperty.js","../node_modules/inline-style-prefixer/lib/utils/prefixValue.js","../node_modules/inline-style-prefixer/lib/utils/addNewValuesOnly.js","../node_modules/inline-style-prefixer/lib/utils/isObject.js","../node_modules/css-in-js-utils/lib/hyphenateProperty.js","../node_modules/graphql/jsutils/devAssert.mjs","../node_modules/graphql/jsutils/isObjectLike.mjs","../node_modules/graphql/polyfills/symbols.mjs","../node_modules/graphql/language/location.mjs","../node_modules/graphql/language/printLocation.mjs","../node_modules/graphql/error/GraphQLError.mjs","../node_modules/graphql/error/syntaxError.mjs","../node_modules/graphql/language/kinds.mjs","../node_modules/graphql/language/source.mjs","../node_modules/graphql/language/directiveLocation.mjs","../node_modules/graphql/language/tokenKind.mjs","../node_modules/graphql/language/lexer.mjs","../node_modules/graphql/language/parser.mjs","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/bytesToUuid.js","../node_modules/uuid/dist/esm-browser/v4.js","../node_modules/react-native-web/dist/modules/usePressEvents/PressResponder.js","../node_modules/react-native-web/dist/exports/TouchableHighlight/index.js","../node_modules/react-native-web/dist/modules/usePressEvents/index.js"],"names":["module","exports","require","hookCallback","some","hooks","apply","arguments","isArray","input","Array","Object","prototype","toString","call","isObject","isUndefined","isNumber","isDate","Date","map","arr","fn","i","res","length","push","hasOwnProp","a","b","hasOwnProperty","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","getParsingFlags","m","_pf","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","rfc2822","weekdayMismatch","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","undefined","bigHour","isFrozen","createInvalid","NaN","fun","t","this","len","momentProperties","copyConfig","to","from","prop","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","updateInProgress","Moment","config","updateOffset","isMoment","obj","absFloor","number","Math","ceil","floor","toInt","argumentForCoercion","coercedNumber","value","isFinite","compareArrays","array1","array2","dontConvert","min","lengthDiff","abs","diffs","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","arg","args","key","slice","join","Error","stack","keys","deprecations","deprecateSimple","name","isFunction","Function","mergeConfigs","parentConfig","childConfig","Locale","set","aliases","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","zeroFill","targetLength","forceSign","absNumber","zerosToFill","pow","max","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","callback","func","localeData","formatMoment","expandFormat","array","match","replace","mom","output","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","RegExp","regexEscape","matched","p1","p2","p3","p4","s","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","daysInYear","year","isLeapYear","y","parseTwoDigitYear","parseInt","indexOf","getSetYear","makeGetSet","keepTime","set$1","get","month","date","daysInMonth","x","modMonth","o","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","MONTHS_IN_FORMAT","defaultLocaleMonths","split","defaultLocaleMonthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","getSetMonth","defaultMonthsShortRegex","defaultMonthsRegex","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","sort","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","createDate","d","h","M","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","n","concat","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","day","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","globalLocale","getSetHour","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","MM","yy","meridiemParse","locales","localeFamilies","normalizeLocale","loadLocale","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","e","values","data","getLocale","defineLocale","abbr","_config","parentLocale","forEach","names","j","next","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","defaults","c","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","now","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","currentDateArray","w","weekYear","temp","weekdayOverflow","GG","W","E","createLocal","_week","curWeek","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","getDay","setUTCMinutes","getUTCMinutes","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","configFromISO","l","allowTime","dateFormat","timeFormat","tzFormat","string","exec","configFromStringAndFormat","untruncateYear","yearStr","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromRFC2822","parsedArray","monthStr","dayStr","hourStr","minuteStr","secondStr","result","extractFromRFC2822Strings","weekdayStr","parsedInput","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","hour","isPm","meridiemHour","meridiemFixWrap","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromStringAndArray","createFromInputFallback","configFromString","minute","second","millisecond","configFromObject","configFromInput","isUTC","getOwnPropertyNames","k","isObjectEmpty","add","createFromConfig","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","unitHasDecimal","parseFloat","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","round","offset","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","matches","parts","cloneWithOffset","model","diff","clone","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","ret","diffRes","parseIso","base","isBefore","positiveMomentsDifference","momentsDifference","inp","isAfter","createAdder","direction","period","tmp","addSubtract","isAdding","invalid","subtract","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","lang","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","addWeekYearFormatToken","getter","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetSecond","parseMs","getSetMillisecond","proto","preParsePostFormat","time","formats","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","isoWeekday","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","getPrioritizedUnits","toArray","toObject","toDate","toISOString","keepOffset","inspect","zone","isLocal","prefix","suffix","toJSON","unix","creationData","isoWeeks","weekInfo","isoWeeksInYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","_calendar","_longDateFormat","formatUpper","toUpperCase","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","source","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","charAt","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","Y","D","toFixed","total","totalSign","ymSign","daysSign","hmsSign","proto$2","monthsFromDays","withSuffix","posNegDuration","relativeTime$1","toIsoString","version","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","factory","_slicedToArray","Symbol","iterator","_arr","_n","_e","_s","done","err","unsupportedIterableToArray","TypeError","ReactReduxContext","React","createContext","batch","nullListeners","notify","createListenerCollection","first","last","clear","listener","listeners","subscribe","isSubscribed","prev","Subscription","store","parentSub","unsubscribe","handleChangeWrapper","bind","_proto","addNestedSub","trySubscribe","notifyNestedSubs","onStateChange","Boolean","tryUnsubscribe","Provider","_ref","context","children","contextValue","useMemo","subscription","previousState","getState","useEffect","Context","createElement","useIsomorphicLayoutEffect","window","document","useLayoutEffect","useReduxContext","useContext","createStoreHook","useDefaultReduxContext","useStore","createDispatchHook","useDefaultStore","dispatch","useDispatch","refEquality","createSelectorHook","selector","equalityFn","_useReduxContext","contextSub","selectedState","forceRender","useReducer","latestSubscriptionCallbackError","useRef","latestSelector","latestSelectedState","current","message","checkForUpdates","newSelectedState","useSelectorWithStoreAndSubscription","newBatch","useSelector","extendStatics","setPrototypeOf","__proto__","p","__extends","__","constructor","create","__assign","assign","__rest","getOwnPropertySymbols","propertyIsEnumerable","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","rejected","then","__generator","body","f","g","_","label","sent","trys","ops","verb","v","op","pop","__spreadArrays","il","r","jl","options","isMounted","previousOptions","getOptions","setOptions","newOptions","storePrevious","isEqual","unmount","refreshClient","client","isNew","cleanup","verifyDocumentType","type","operation","onNewData","previousData","currentObservable","runLazy","runLazyQuery","lazyOptions","getExecuteResult","getQueryResult","startQuerySubscription","obsRefetch","variables","query","refetch","obsFetchMore","fetchMoreOptions","fetchMore","obsUpdateQuery","mapFn","updateQuery","obsStartPolling","pollInterval","startPolling","obsStopPolling","stopPolling","obsSubscribeToMore","subscribeToMore","execute","skip","removeQuerySubscription","updateObservableQuery","getExecuteSsrResult","executeLazy","loading","networkStatus","ready","called","fetchData","ssr","obs","getCurrentResult","afterExecute","lazy","handleErrorOrCompleted","ssrInitiated","renderPromises","ssrDisabled","fetchDisabled","disableNetworkFetches","ssrLoading","stale","observableQueryFields","addQueryPromise","prepareObservableQueryOptions","Query","displayName","fetchPolicy","metadata","reactComponent","initializeObservableQuery","getSSRObservable","observableQueryOptions","watchQuery","registerSSRObservable","newObservableQueryOptions","catch","obsQuery","previousResult","error","resubscribeToQuery","lastError","getLastError","lastResult","getLastResult","resetLastResults","currentResult","partial","errors","graphQLErrors","partialRefetch","resetQueryStoreErrors","onCompleted","onError","OperationData","useBaseQuery","tick","forceUpdate","updatedOptions","queryDataRef","queryData","QueryData","memoFn","ref","useDeepMemo","queryResult","useQuery","useLazyQuery","setResult","runMutation","mutationFunctionOptions","onMutationStart","mutationId","generateNewMutationId","mutate","response","onMutationCompleted","onMutationError","mutation","Mutation","mostRecentMutationId","optimisticResponse","update","awaitRefetchQueries","mutateOptions","mutateVariables","refetchQueries","mutationContext","ignoreResults","updateResult","isMostRecentMutation","useMutation","mutationDataRef","mutationData","MutationData","initialize","getLoadingResult","shouldResubscribe","startSubscription","endSubscription","updateCurrentData","updateError","complete","completeSubscription","onSubscriptionData","subscriptionData","onSubscriptionComplete","useApolloClient","queryPromises","Map","queryInfoTrie","observable","props","lookupQueryInfo","queryInstance","finish","seen","hasPromises","size","consumeAndAwaitPromises","promises","promise","all","varMap","has","variablesString","JSON","stringify","info","ownKeys","object","enumerableOnly","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","_objectSpread2","target","getOwnPropertyDescriptors","defineProperties","defineProperty","_taggedTemplateLiteral","strings","raw","freeze","parse","normalize","trim","docCache","fragmentSourceMap","printFragmentWarnings","experimentalFragmentVariables","parseDocument","doc","cacheKey","parsed","kind","stripLoc","removeLocAtThisLevel","docType","loc","startToken","endToken","valueType","ast","astFragmentMap","definitions","fragmentDefinition","fragmentName","sourceKey","substring","start","end","processFragments","gql","literals","default","resetCaches","disableFragmentWarnings","enableExperimentalFragmentVariables","disableExperimentalFragmentVariables","valueToObjectRepresentation","argObj","isIntValue","isFloatValue","Number","isBooleanValue","isStringValue","isObjectValue","fields","isVariable","variableValue","isListValue","listValue","nestedArgArrayObj","isEnumValue","isNullValue","storeKeyNameFromField","directivesObj","directives","directive","getStoreKeyName","KNOWN_DIRECTIVES","fieldName","filterKeys","completeFieldName","stringifiedArgs","argumentsObjectFromField","resultKeyNameFromField","isField","selection","isInlineFragment","isIdValue","idObject","generated","toIdValue","idConfig","id","typename","isJsonValue","jsonObject","getDirectiveInfoFromField","shouldInclude","isInclusionDirective","directiveArguments","ifArgument","ifValue","every","evaledValue","hasDirectives","Directive","node","getDirectiveNames","hasClientExports","getFragmentQueryDocument","actualFragmentName","fragments","definition","selectionSet","selections","sources","checkDocument","operations","getOperationDefinition","getOperationName","getFragmentDefinitions","getQueryDefinition","queryDef","getMainDefinition","queryDoc","createFragmentMap","symTable","fragment","getDefaultValues","variableDefinitions","defaultValues","defaultValue","variable","defaultValueObj","filterInPlace","elem","TYPENAME_FIELD","nullIfDocIsEmpty","isEmpty","fragmentDef","getFragmentDefinition","getDirectiveMatcher","dir","removeDirectivesFromDocument","variablesInUse","variablesToRemove","fragmentSpreadsInUse","fragmentSpreadsToRemove","modifiedDoc","Variable","enter","_key","parent","Field","remove","getAllFragmentSpreadsFromSelectionSet","allFragments","frag","FragmentSpread","argMatcher","argument","aConfig","getArgumentMatcher","OperationDefinition","varDef","argConfig","Argument","removeArgumentsFromDocument","fs","def","FragmentDefinition","removeFragmentSpreadFromDocument","addTypenameToDocument","SelectionSet","lastIndexOf","connectionRemoveConfig","willRemove","removeConnectionDirectiveFromDocument","buildQueryFromSelectionSet","removeClientSetsFromDocument","canUseWeakMap","WeakMap","navigator","product","cloneDeep","cloneDeepHelper","child","getPrototypeOf","isEnv","env","process","isProduction","isTest","tryFunctionOrLogError","graphQLResultHasError","maybeDeepFreeze","deepFreeze","mergeDeep","mergeDeepArray","count","pastCopies","shallowCopyForMerge","mergeHelper","isExtensible","sourceValue","targetValue","genericMessage","framesToPop","InvariantError","invariant","condition","wrapConsoleMethod","method","processStub","atLeastWeTried","errorExt","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","self","_toConsumableArray","arrayLikeToArray","iter","useImmer","initialValue","useState","useCallback","updater","updateValue","produce","_extends","defineToJSON","classObject","nodejsCustomInspectSymbol","Location","Token","line","column","isNode","maybeNode","argIndex","canUseDOM","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","isInWorker","ScrollingSyncerContext","registerNode","_node","_group","unregisterNode","onScroll","_groups","ScrollSync","elements","shouldPaintFrame","findGroup","group","syncScrollPositions","scrolledNode","groups","element","isEnabled","scroll","isSynced","scrollTop","scrollHeight","offsetHeight","scrollLeft","scrollWidth","percentagePerHeight","offsetLeft","percentagePerWidth","offsetWidth","syncScrollPosition","foundNode","find","doesNodeExists","splice","findIndex","requestAnimationFrame","handleNodeScroll","currentTarget","Children","only","defaultProps","enabled","ScrollSyncNode","_b","_c","syncableElement","isSyncer","cloneElement","onWheel","previousComparisons","equal","check","aTag","bTag","previouslyCompared","aKeys","bKeys","keyCount","aIterator","entries","isMap","aKey","aValue","bSet","Set","Observable","link","isTerminating","request","fromError","errorValue","observer","createOperation","starting","operationName","getKey","passthrough","forward","of","toLink","handler","ApolloLink","links","reduce","left","right","leftLink","rightLink","firstLink","nextLink","transformedOperation","extensions","transformOperation","OPERATION_FIELDS","validateOperation","apolloContext","getApolloContext","DocumentType","ApolloProvider","ApolloContext","cache","parser","cached","queries","mutations","subscriptions","_defineProperty","configurable","writable","_objectWithoutPropertiesLoose","excluded","sourceKeys","QueryDocumentKeys","Name","Document","VariableDefinition","InlineFragment","IntValue","FloatValue","StringValue","BooleanValue","NullValue","EnumValue","ListValue","ObjectValue","ObjectField","NamedType","ListType","NonNullType","SchemaDefinition","OperationTypeDefinition","ScalarTypeDefinition","ObjectTypeDefinition","FieldDefinition","InputValueDefinition","InterfaceTypeDefinition","UnionTypeDefinition","EnumTypeDefinition","EnumValueDefinition","InputObjectTypeDefinition","DirectiveDefinition","SchemaExtension","ScalarTypeExtension","ObjectTypeExtension","InterfaceTypeExtension","UnionTypeExtension","EnumTypeExtension","InputObjectTypeExtension","BREAK","visit","root","visitor","visitorKeys","inArray","edits","path","ancestors","newRoot","isLeaving","isEdited","_i2","_Object$keys2","editOffset","editKey","editValue","_visitorKeys$node$kin","visitFn","getVisitFn","kindVisitor","kindSpecificVisitor","leave","specificVisitor","specificKindVisitor","isAbsolute","pathname","spliceOne","list","resolvePathname","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","part","unshift","valueEqual","item","bValue","addLeadingSlash","stripLeadingSlash","stripBasename","hasBasename","stripTrailingSlash","createPath","location","search","hash","createLocation","state","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","locationsAreEqual","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","appendListener","isActive","notifyListeners","_len","getConfirmation","confirm","getHistoryState","history","createBrowserHistory","globalHistory","canUseHistory","ua","userAgent","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_window$location","createKey","random","transitionManager","setState","nextState","handlePopState","event","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","removeEventListener","isBlocked","href","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","url","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","baseTag","querySelector","getAttribute","pushHashPath","nextPaths","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entry","nextIndex","nextEntries","canGo","isArrayBuffer","isBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","merge","assignValue","deepMerge","str","randomString","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","createStore","reducer","preloadedState","enhancer","_ref2","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","replaceReducer","nextReducer","outerSubscribe","observeState","$$observable","getUndefinedStateErrorMessage","actionType","String","combineReducers","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","previousStateForKey","nextStateForKey","errorMessage","bindActionCreator","actionCreator","bindActionCreators","actionCreators","boundActionCreators","compose","funcs","applyMiddleware","middlewares","_dispatch","middlewareAPI","chain","middleware","define","OldCookies","Cookies","api","noConflict","attributes","decode","decodeURIComponent","init","converter","expires","toUTCString","write","encodeURIComponent","escape","stringifiedAttributes","attributeName","cookie","json","jar","cookies","read","getJSON","withConverter","DragDropContext_1","DragDropContext","DragDropContextProvider","DragDropContextConsumer","Consumer","DragLayer_1","DragLayer","DragSource_1","DragSource","DropTarget_1","DropTarget","DragPreviewImage_1","DragPreviewImage","hooks_1","useDrag","useDragLayer","useDrop","Component","resolveToLocation","normalizeToLocation","forwardRefShim","C","forwardRef","LinkAnchor","innerRef","navigate","onClick","rest","ex","isModifiedEvent","forwardedRef","Link","component","RouterContext","ariaCurrent","activeClassName","activeStyle","classNameProp","className","exact","isActiveProp","locationProp","styleProp","style","escapedPath","matchPath","classnames","joinClassnames","HOOKS","_disable","_enable","allowInput","altFormat","altInput","altInputClass","animate","ariaDateFormat","clickOpens","closeOnSelect","conjunction","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enable","enableSeconds","enableTime","errorHandler","getWeek","givenDate","setHours","setDate","week1","hourIncrement","ignoredFocusElements","inline","minuteIncrement","mode","monthSelectorType","nextArrow","noCalendar","onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","plugins","position","positionElement","prevArrow","shorthandCurrentMonth","showMonths","static","time_24hr","weekNumbers","wrap","english","longhand","nth","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","hourAriaLabel","minuteAriaLabel","pad","int","bool","debounce","wait","immediate","timeout","clearTimeout","setTimeout","arrayify","toggleClass","classList","tag","content","textContent","clearNode","firstChild","removeChild","createNumberInput","inputClassName","opts","wrapper","numInput","arrowUp","arrowDown","pattern","setAttribute","appendChild","doNothing","monthToStr","monthNumber","revFormat","F","dateObj","G","H","J","K","getHours","shortMonth","S","setSeconds","U","unixSeconds","weekNum","weekNumber","Z","ISODate","setMinutes","unixMillSeconds","tokenRegex","getSeconds","getMinutes","createDateFormatter","l10n","frmt","overrideLocale","formatDate","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","datestr","parseDate","matchIndex","regexStr","token_1","isBackSlash","escaped","compareDates","date1","date2","FlatpickrInstance","instanceConfig","flatpickr","defaultConfig","bindToInstance","setCalendarWidth","calendarContainer","visibility","display","daysContainer","daysWidth","width","weekWrapper","removeProperty","updateTime","selectedDates","setDefaultTime","preventDefault","isKeyDown","curValue","which","newValue","isHourElem","hourElement","isMinuteElem","minuteElement","incrementNumInput","timeWrapper","prevValue","_input","setHoursFromInputs","_debouncedChange","secondElement","limitMinHours","minTime","minDate","minDateHasTime","latestSelectedDateObj","maxTime","maxDate","maxDateHasTime","setHoursFromDate","setDefaultHours","minHr","minMinutes","maxHr","maxMinutes","isMobile","onYearInput","changeYear","ev","el","_handlers","evt","triggerChange","triggerEvent","jumpToDate","jumpDate","jumpTo","oldYear","currentYear","oldMonth","currentMonth","buildMonthSwitch","redraw","timeIncrement","contains","inputElem","parentNode","createEvent","dispatchEvent","createDay","dayNumber","dateIsEnabled","dayElement","$i","todayDateElem","tabIndex","isDateSelected","selectedDateElem","isDateInRange","insertAdjacentHTML","focusOnDayElem","targetNode","focus","onMouseOver","getFirstAvailableDay","startMonth","endMonth","startIndex","endIndex","focusOnDay","dayFocused","isInView","activeElement","startElem","givenMonth","loopDelta","numMonthDays","changeMonth","getNextAvailableDay","buildMonthDays","firstOfMonth","prevMonthDays","utils","getDaysInMonth","createDocumentFragment","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayIndex","dayNum","dayContainer","buildDays","shouldBuildMonth","monthsDropdownContainer","innerHTML","selected","buildMonth","monthElement","container","monthNavFragment","selectedMonth","yearInput","tabindex","yearElement","getElementsByTagName","disabled","buildMonths","monthNav","prevMonthNav","yearElements","monthElements","nextMonthNav","buildWeekdays","weekdayContainer","updateWeekdays","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","updateNavigationCurrentMonth","isCalendarElem","appendTo","documentClick","isOpen","eventTarget_1","composedPath","isCalendarElement","isInput","lostFocus","relatedTarget","isIgnored","timeContainer","close","newYear","newYearNum","isNewYear","dateToCheck","allowKeydown","allowInlineKeydown","keyCode","blur","open","isTimeObj","focusAndClose","selectDate","delta_1","ctrlKey","stopPropagation","currentYearElement","elems","pluginElements","shiftKey","hoverDate","firstElementChild","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","_loop_1","ts","ts1","ts2","dayElem","timestamp","outOfRange","onResize","positionCalendar","minMaxDateSetter","inverseDateObj","removeAttribute","setupLocale","l10ns","dataset","customPositionElement","_positionElement","calendarHeight","acc","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","getBoundingClientRect","distanceFromBottom","innerHeight","bottom","showOnTop","top","pageYOffset","pageXOffset","rightMost","centerMost","styleSheets","bodyWidth","centerLeft","centerIndex","cssRules","centerStyle","insertRule","centerBefore","msMaxTouchPoints","findParent","selectedDate","shouldChangeMonth","selectedIndex","showTimeInput","single","range","loadedPlugins","_bind","_setHoursFromDate","_positionCalendar","triggerChangeEvent","toInitial","mobileInput","_initialDate","_createElement","destroy","lastChild","insertBefore","_type","click","wasOpen","select","option","CALLBACKS","setSelectedDate","toggle","inputDate","parseDateRules","rule","initEvent","getDateStr","dObj","mobileFormatStr","onMonthNavClick","isPrevMonth","isNextMonth","boolOpts","userConfig","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","hook","pluginConf","parseConfig","nodeName","placeholder","required","nextSibling","preloadedDate","defaultDate","_showTimeInput","setupDates","yr","__hidePrevMonthArrow","__hideNextMonthArrow","innerContainer","buildWeeks","rContainer","hourInput","minuteInput","military2ampm","secondInput","title","buildTime","customAppend","nodeType","build","querySelectorAll","inputType","setupMobile","debouncedResize","ontouchstart","capture","bindEvents","isSafari","_flatpickr","nodeList","nodes","HTMLElement","instances","args_1","HTMLCollection","NodeList","Node","en","localize","setDefaults","jQuery","fp_incr","die","isDraft","DRAFT_STATE","isDraftable","DRAFTABLE","isSet","base_","each","getArchtype","thing","type_","is","hasMap","hasSet","latest","copy_","shallowCopy","invokeGetters","desc","deep","delete","dontMutateFrozenCollections","getPlugin","pluginKey","plugin","loadPlugin","implementation","getCurrentScope","currentScope","usePatchesInScope","scope","patchListener","patches_","inversePatches_","patchListener_","revokeScope","leaveScope","drafts_","revokeDraft","parent_","enterScope","immer","immer_","canAutoFreeze_","unfinalizedDrafts_","draft","revoke_","revoked_","processResult","baseDraft","isReplaced","useProxies_","willFinalizeES5_","modified_","finalize","maybeFreeze","generateReplacementPatches_","NOTHING","rootScope","childValue","finalizeProperty","scope_","finalized_","draft_","generatePatches_","parentState","targetObject","rootPath","assigned_","propOrOldValue","autoFreeze_","peek","Reflect","markChangedProxy","copy","prepareCopy","createProxy","proxyMap_","proxySet_","isManual_","traps","objectTraps","arrayTraps","Proxy","revocable","revoke","proxy","createES5Proxy_","enableES5","finalizing_","markChangedES5_","clonePotentialDraft","markChangesSweep","drafts","hasArrayChanges","hasObjectChanges","baseValue","descriptor","assertUnrevoked","descriptors","markChangesRecursively","hasSymbol","hasProxies","deleteProperty","owner","useProxies","setUseProxies","autoFreeze","setAutoFreeze","produceWithPatches","recipe","defaultBase","_this","hasError","arg1","arg2","patches","inversePatches","_this2","ip","createDraft","finishDraft","applyPatches","patch","applyPatchesImpl","applyPatches_","_inheritsLoose","subClass","superClass","absoluteFillObject","StyleSheet","absoluteFill","ReactNativePropRegistry","register","style1","style2","styles","flatten","flattenStyle","hairlineWidth","__REACT_DEVTOOLS_GLOBAL_HOOK__","resolveRNStyle","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","render","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","createEventEmitter","handlers","on","off","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","gud","_Component","emitter","getChildContext","componentWillReceiveProps","nextProps","oldValue","PropTypes","isRequired","_Component2","getValue","onUpdate","observedBits","_proto2","componentDidMount","componentWillUnmount","createNamedContext","Router","computeRootMatch","params","isExact","_pendingLocation","staticContext","Lifecycle","onMount","componentDidUpdate","prevProps","onUnmount","Prompt","when","cacheCount","generatePath","pathToRegexp","compilePath","pretty","Redirect","computedMatch","sensitive","pathCache","regexp","memo","Route","createURL","staticHandler","methodName","noop","Switch","useHistory","NetworkStatus","isNetworkRequestInFlight","LinkObservable","isNonEmptyArray","FetchType","networkError","extraInfo","graphQLError","generateErrorMessage","ApolloError","queryManager","shouldSubscribe","onSubscribe","observers","isTornDown","queryId","generateQueryId","opDef","queryName","removeQuery","storeValue","policy","queryStoreValue","queryStore","isNetworkFetchPolicy","errorPolicy","updateLastResult","isDifferentFromLastResult","newResult","lastResultSnapshot","snapshot","fetchQuery","combinedOptions","qid","normal","fetchMoreResult","stopQuery","startGraphQLSubscription","previous","setVariables","oldFetchPolicy","fetchResults","tryFetch","dataStore","markUpdateQueryResult","broadcastQueries","stopPollingQuery","assertNotCacheFirstOrOnly","startPollingQuery","assumeImmutableResults","subObserver","_subscription","_observer","defaultSubscriptionObserverErrorCallback","setUpQuery","tearDownQuery","addObservableQuery","iterateObserversSafely","observeQuery","transform","getLocalState","addExportedVariables","previousVariables","serverQuery","sub","removeObservableQuery","observersWithMethod","getStore","initMutation","markMutationError","markMutationResult","reset","initQuery","previousQuery","resolvers","fragmentMatcher","addResolvers","setFragmentMatcher","resolverGroup","setResolvers","getResolvers","runResolvers","remoteResult","onlyRunForcedResolvers","resolveDocument","localResult","getFragmentMatcher","clientQuery","prepareContext","getCacheKey","dataIdFromObject","buildRootValueFromCache","exportedVariables","shouldForceResolvers","forceResolvers","returnPartialData","optimistic","rootValue","mainDefinition","fragmentMap","definitionOperation","defaultOperationType","execContext","resolveSelectionSet","resultsToMerge","resolveField","fieldResult","typeCondition","fragmentResult","aliasedFieldName","aliasUsed","defaultResult","resultPromise","resolverType","__typename","resolverMap","resolveSubSelectedArray","multiplex","inner","queryDeduplication","onBroadcast","ssrMode","clientAwareness","localState","mutationStore","MutationStore","QueryStore","idCounter","fetchQueryRejectFns","transformCache","inFlightLinkObservables","pollingInfoByQueryId","LocalState","getCache","stop","_info","stopQueryNoBroadcast","updateQueries","setQuery","getVariables","generateUpdateQueriesInfo","updateQueriesByName","observableQuery","markMutationInit","updateWithProxyFn","storeResult","getObservableFromLink","markMutationComplete","refetchQueryPromises","refetchQuery","queryOptions","fetchType","fetchMoreForQueryId","needToFetch","isNetworkOnly","shouldFetch","requestId","cancel","updateQueryWatch","lastRequestId","invalidated","invalidate","storePreviousVariables","isPoll","poll","isRefetch","networkResult","fetchRequest","getQuery","markQueryError","markQueryResultClient","hasForcedResolvers","markQueryResult","newData","queryListenerForObserver","invoke","networkStatusChanged","shouldNotifyIfLoading","notifyOnNetworkStatusChange","hasGraphQLErrors","isMissing","errorStatusChanged","diffResult","resultFromStore","transformed","transformDocument","forLink","transformForLink","defaultVars","transformedOptions","ObservableQuery","watchedQuery","stopQueryInStore","stopQueryInStoreNoBroadcast","addQueryListener","watch","clearStore","resetIds","resetStore","reFetchObservableQueries","includeStandby","observableQueryPromises","startQuery","makeObservable","markSubscriptionResult","getCurrentQueryResult","getQueryWithPreviousResult","queryIdOrObservable","foundObserveableQuery","deduplication","forceFetch","activeNextCount","completed","asyncMap","errorsFromStore","fqrfId","newInfo","newContext","checkInFlight","interval","initialCache","ignoreErrors","writeWithErrors","dataId","recordOptimisticTransaction","orig","nextQueryResult","currentQueryResult","mutationResult","queryVariables","performTransaction","removeOptimistic","defaultOptions","resetStoreCallbacks","clearStoreCallbacks","ssrForceFetchDelay","connectToDevTools","typeDefs","DataStore","__APOLLO_CLIENT__","QueryManager","clientAwarenessName","clientAwarenessVersion","devToolsHookCb","dataWithOptimisticResults","extract","readQuery","readFragment","writeQuery","writeFragment","writeData","__actionHookForDevTools","cb","__requestRaw","payload","initQueryManager","onResetStore","onClearStore","restore","serializedState","setLocalStateFragmentMatcher","INIT_COORDS","BEGIN_DRAG","PUBLISH_DRAG_SOURCE","HOVER","DROP","END_DRAG","isObjectLike","checkDCE","without","items","xor","itemsA","itemsB","insertItem","intersection","_unsupportedIterableToArray","minLen","_classCallCheck","instance","Constructor","_defineProperties","_createClass","protoProps","staticProps","_getPrototypeOf","_isNativeReflectConstruct","construct","sham","_typeof","_possibleConstructorReturn","ReferenceError","_createSuper","Derived","Super","NewTarget","_setPrototypeOf","_inherits","_createForOfIteratorHelper","it","normalCompletion","didErr","_e2","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","nextTick","browser","argv","versions","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","umask","objA","objB","compareContext","keysA","keysB","bHasOwnProperty","idx","valueA","valueB","global","ponyfill","_arrayLikeToArray","arr2","createThunkMiddleware","extraArgument","thunk","withExtraArgument","for","emptyObject","objects","uniqueID","getByID","getStyle","styleLength","computedStyle","dnd_core_1","checkDecoratorArguments_1","isRefable_1","hoistStatics","createChildContext","backend","debugMode","dragDropManager","createDragDropManager","manager","backendFactory","backendContext","childContext","DecoratedComponent","Decorated","DragDropContextContainer","_super","createRef","getManager","getDecoratedComponentInstance","isRefable","beginDrag_1","publishDragSource_1","hover_1","drop_1","endDrag_1","__export","beginDrag","publishDragSource","hover","drop","endDrag","ADD_SOURCE","ADD_TARGET","REMOVE_SOURCE","REMOVE_TARGET","addSource","sourceId","addTarget","targetId","removeSource","removeTarget","functionName","signature","formatValue","seenValues","previouslySeenValues","customInspectFn","getCustomFn","customValue","remaining","formatArray","getObjectTag","formatObject","formatObjectValue","dedentBlockStringValue","rawString","lines","commonIndent","indent","leadingWhitespace","getBlockStringIndentation","isBlank","printBlockString","indentation","preferMultipleLines","isSingleLine","hasLeadingSpace","hasTrailingQuote","printAsMultipleLines","Events","EE","_events","_eventsCount","clearEvent","EventEmitter","eventNames","events","ee","a1","a2","a3","a4","a5","prefixed","InvalidCharacterError","atob","bs","bc","fromCharCode","code","charCodeAt","InvalidTokenError","header","base64_url_decode","HTML5Backend_1","getEmptyImage_1","getEmptyImage","NativeTypes","defaultEqualityCheck","areArgumentsShallowlyEqual","equalityCheck","getDependencies","dependencies","dep","dependencyTypes","memoize","memoizeOptions","createSelectorCreator","lastArgs","composeWithDevTools","configureStore","middlewareArray","immutableCheck","serializableCheck","thunkMiddleware","getDefaultMiddleware","devTools","enhancers","rootReducer","middlewareEnhancer","finalCompose","trace","storeEnhancers","composedEnhancer","createAction","prepareAction","prepared","meta","executeReducerBuilderCallback","builderCallback","actionsMap","builder","addCase","typeOrActionCreator","createSlice","initialState","extraReducers","reducerNames","sliceCaseReducersByName","sliceCaseReducersByType","reducerName","maybeReducerWithPrepare","caseReducer","prepareCallback","mapOrBuilderCallback","createNextState","createReducer","actions","caseReducers","asyncIterator","mergeRefs","useMergeRefs","propIsEnumerable","test1","test2","test3","letter","shouldUseNative","hexTable","arrayToObject","plainObjects","combine","compact","refs","compacted","compactQueue","decoder","charset","strWithoutPlus","unescape","encode","defaultEncoder","$0","isRegExp","maybeMap","mapped","allowPrototypes","mergeTarget","targetItem","isRefForwardingComponent","$$typeof","react_1","useDragDropManager","FILE","URL","TEXT","uppercasePattern","msPattern","toHyphenLower","hyphenateStyleName","hName","isarray","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","defaultDelimiter","delimiter","modifier","asterisk","repeat","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","segment","attachKeys","re","route","endsWithDelimiter","regexpToRegexp","arrayToRegexp","stringToRegexp","webpackPolyfill","paths","percentTwenties","util","Format","RFC1738","RFC3986","formatters","paramsSerializer","serializedParams","hashmarkIndex","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","adapter","XMLHttpRequest","getDefaultAdapter","transformRequest","transformResponse","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","status","common","settle","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","auth","username","password","Authorization","btoa","fullPath","baseURL","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","responseType","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","setRequestHeader","onDownloadProgress","onUploadProgress","upload","cancelToken","abort","send","enhanceError","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","axiosKeys","otherKeys","Cancel","HandlerRole","targetType","draggedItemType","strictEquality","areCoordsEqual","offsetA","offsetB","areArraysEqual","discount_lodash_1","NONE","ALL","__IS_NONE__","__IS_ALL__","areDirty","dirtyIds","handlerIds","disposables_1","shallowEqual","createHandler","createMonitor","createConnector","registerHandler","containerDisplayName","getType","collect","arePropsEqual","DragDropContainer","decoratedRef","handleChange","getCurrentState","disposable","SerialDisposable","receiveProps","dispose","getHandlerId","handlerId","shouldComponentUpdate","currentType","receiveType","handlerMonitor","handlerConnector","unregister","receiveHandlerId","getMonitor","subscribeToStateChange","setDisposable","CompositeDisposable","Disposable","receiveDragDropManager","reconnect","getBackend","registry","getRegistry","getDecoratedComponent","instanceRef","currentRef","isCallingCanDrag","isCallingIsDragging","DragSourceMonitorImpl","internalMonitor","canDrag","canDragSource","isDragging","isDraggingSource","isOverTarget","getTargetIds","isSourcePublic","getSourceId","subscribeToOffsetChange","canDropOnTarget","getItemType","getItem","getDropResult","didDrop","getInitialClientOffset","getInitialSourceClientOffset","getSourceClientOffset","getClientOffset","getDifferenceFromInitialOffset","wrapConnectorHooks_1","isRef_1","SourceConnector","dragSource","dragSourceOptions","isRef","dragSourceRef","dragSourceNode","reconnectDragSource","dragPreview","dragPreviewOptions","dragPreviewRef","dragPreviewNode","reconnectDragPreview","dragSourceOptionsInternal","dragPreviewOptionsInternal","lastConnectedHandlerId","lastConnectedDragSource","lastConnectedDragSourceOptions","lastConnectedDragPreview","lastConnectedDragPreviewOptions","newHandlerId","didChange","didHandlerIdChange","didConnectedDragSourceChange","didDragSourceOptionsChange","disconnectDragSource","dragSourceUnsubscribe","connectDragSource","didConnectedDragPreviewChange","didDragPreviewOptionsChange","disconnectDragPreview","dragPreviewUnsubscribe","connectDragPreview","cloneWithRef_1","wrapHookToRecognizeElement","elementOrNode","isValidElement","throwIfCompositeComponentElement","wrappedHooks","endsWith","wrappedHook_1","isValidType","allowArray","isCallingCanDrop","DropTargetMonitorImpl","canDrop","isOver","TargetConnector","dropTarget","dropTargetOptions","dropTargetRef","dropTargetNode","dropTargetOptionsInternal","lastConnectedDropTarget","lastConnectedDropTargetOptions","didDropTargetChange","didOptionsChange","disconnectDropTarget","unsubscribeDropTarget","connectDropTarget","useCollector_1","useMonitorOutput","monitor","onCollect","useCollector","collected","updateCollected","setCollected","nextValue","union","isFirefox","safari","symbolObservablePonyfill","super_","N","prefilter","lhs","rhs","color","groupCollapsed","log","text","groupEnd","logger","actionTransformer","titleFormatter","collapsed","colors","level","started","startedTime","prevState","took","A","O","T","stateTransformer","errorTransformer","predicate","logErrors","diffPredicate","getMilliseconds","performance","DeepDiff","observableDiff","applyDiff","applyChange","revertChange","isConflict","transformer","createLogger","cmp","cycles","aobj","bobj","seenIndex","formatRegExp","isNull","noDeprecation","warned","throwDeprecation","traceDeprecation","debugEnviron","debugs","ctx","stylize","stylizeNoColor","depth","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","styleType","recurseTimes","primitive","simple","formatPrimitive","visibleKeys","arrayToHash","isError","formatError","braces","formatProperty","cur","numLinesEst","reduceToSingleString","ar","objectToString","debuglog","NODE_DEBUG","pid","isNullOrUndefined","isSymbol","isPrimitive","inherits","origin","kCustomPromisifiedSymbol","callbackifyOnRejected","reason","newReason","promisify","original","promiseResolve","promiseReject","custom","callbackify","callbackified","maybeCb","rej","prefixMap","property","_isObject2","combinedValue","processedValue","_prefixValue2","_addNewValuesOnly2","_processedValue","_prefixProperty2","_interopRequireDefault","__esModule","_isPrefixedValue2","prefixes","_isPrefixedValue","grab","grabbing","flex","alternativeProps","alternativeValues","flexShorthandMappings","msFlex","isUnitlessNumber","flexValues","alignContent","alignSelf","alignItems","justifyContent","order","flexGrow","flexShrink","flexBasis","auto","inherit","initial","none","unset","WebkitBoxOrient","WebkitBoxDirection","flexWrap","grad","sliceIterator","isSimplePositionValue","isComplexSpanValue","includes","displayValues","propertyConverters","propertyConverter","alignmentValues","grid","msGridRowAlign","gridColumn","msGridColumn","_value$split","_value$split2","gridColumnStart","_end$split","_end$split2","maybeSpan","maybeNumber","gridColumnEnd","msGridColumnSpan","gridRow","msGridRow","_value$split3","_value$split4","gridRowStart","_end$split3","_end$split4","gridRowEnd","msGridRowSpan","gridTemplateColumns","msGridColumns","gridTemplateRows","msGridRows","justifySelf","msGridColumnAlign","alternativePropList","marginBlockStart","marginBlockEnd","marginInlineStart","marginInlineEnd","paddingBlockStart","paddingBlockEnd","paddingInlineStart","paddingInlineEnd","borderBlockStart","borderBlockStartColor","borderBlockStartStyle","borderBlockStartWidth","borderBlockEnd","borderBlockEndColor","borderBlockEndStyle","borderBlockEndWidth","borderInlineStart","borderInlineStartColor","borderInlineStartStyle","borderInlineStartWidth","borderInlineEnd","borderInlineEndColor","borderInlineEndStyle","borderInlineEndWidth","properties","maxHeight","maxWidth","height","columnWidth","minWidth","minHeight","propertyPrefixMap","outputValue","multipleValues","singleValue","dashCaseProperty","_hyphenateProperty2","pLen","prefixMapping","prefixValue","webkitOutput","mozOutput","_capitalizeString2","transition","transitionProperty","WebkitTransition","WebkitTransitionProperty","MozTransition","MozTransitionProperty","Webkit","Moz","normalizeColor","matchers","hex6","rgb","parse255","rgba","parse1","hex3","hex8","hex4","hsl","hslToRgb","parse360","parsePercentage","hsla","hue2rgb","q","NUMBER","arrayLike","num","transparent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","colorInt","stringifiable","getAllKeys","commands","defaultCommands","isEquals","$spec","spec","$apply","nextObject","objectWasNextObject","nextValueForKey","nextObjectValue","$push","invariantPushAndUnshift","$unshift","$splice","originalObject","invariantSplice","invariantSplices","$set","_nextObject","invariantSet","$toggle","targets","invariantSpecArray","nextObjectCopy","$unset","_spec","$add","invariantMapOrSet","$remove","$merge","specValue","defaultContext","command","typeOfTarget","accessibilityRoleToWebRole","adjustable","button","image","imagebutton","keyboardkey","summary","propsToAriaRole","accessibilityRole","inferredRole","roleComponents","article","banner","blockquote","complementary","contentinfo","deletion","emphasis","figure","insertion","form","listitem","main","navigation","region","strong","AccessibilityUtil","buttonLikeRoles","menuitem","isDisabled","accessibilityStates","propsToAccessibilityComponent","role","accessibilityLevel","unitlessNumbers","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flexOrder","flexPositive","flexNegative","fontWeight","gridRowGap","gridColumnGap","lineClamp","opacity","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","scale","scaleX","scaleY","scaleZ","shadowOpacity","prefixKey","isWebColor","processColor","int32Color","colorProps","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","shadowColor","textDecorationColor","textShadowColor","normalizeValueWithProperty","returnValue","defaultOffset","resolveShadowValue","shadowOffset","shadowRadius","offsetX","offsetY","blurRadius","createCompileableStyle","textShadowOffset","textShadowRadius","nextStyles","resolvedStyle","boxShadow","shadow","boxShadowReducer","radius","textShadow","textShadowReducer","createOrderedCSSStyleSheet","sheet","selectors","cssRule","cssText","selectorText","decodeGroupRule","rules","getSelectorText","sheetInsert","orderedGroups","getOrderedGroups","nextGroupIndex","nextGroup","isInserted","insertRuleAt","groupNumber","previousStart","getTextContent","insert","groupValue","markerRule","encodeGroupRule","flattenArray","flattenDown","doLeftAndRightSwapInRTL","isPreferredLanguageRTL","isRTLAllowed","isRTLForced","isRTL","onDirectionChange","documentElement","I18nManager","allowRTL","forceRTL","getConstants","setPreferredLanguageRTL","swapLeftAndRightInRTL","CSS_UNIT_RE","multiplyStyleLengthValue","multiple","PROPERTIES_FLIP","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","borderLeftStyle","borderLeftWidth","borderRightStyle","borderRightWidth","marginLeft","marginRight","paddingLeft","paddingRight","PROPERTIES_I18N","borderTopStartRadius","borderTopEndRadius","borderBottomStartRadius","borderBottomEndRadius","borderStartColor","borderStartStyle","borderStartWidth","borderEndColor","borderEndStyle","borderEndWidth","marginStart","marginEnd","paddingStart","paddingEnd","PROPERTIES_VALUE","float","textAlign","additiveInverse","i18nStyle","originalStyle","_I18nManager$getConst","frozenProps","nextStyle","originalProp","originalValue","convertedProp","convertedValue","flippedValue","invertedValue","STYLE_GROUPS","modality","classicReset","classic","atomic","borderRadius","borderStyle","borderWidth","margin","overscrollBehavior","padding","marginHorizontal","marginVertical","paddingHorizontal","paddingVertical","STYLE_SHORT_FORM_EXPANSIONS","SYSTEM_FONT_STACK","supportsCSS3TextDecoration","CSS","supports","mapTransform","createReactDOMStyle","backgroundClip","WebkitBackgroundClip","fontVariant","verticalAlign","textDecorationLine","textDecoration","resolveTransform","longFormProperties","longForm","seed","murmurhash2_32_gc","wm","wms","wmms","crossFade","cursor","flexboxIE","flexboxOld","gradient","imageSet","logical","sizing","animation","animationDelay","animationDirection","animationFillMode","animationDuration","animationName","animationPlayState","animationTimingFunction","appearance","userSelect","textEmphasisPosition","textEmphasis","textEmphasisStyle","textEmphasisColor","boxDecorationBreak","clipPath","maskImage","maskMode","maskRepeat","maskPosition","maskClip","maskOrigin","maskSize","maskComposite","mask","maskBorderSource","maskBorderMode","maskBorderSlice","maskBorderWidth","maskBorderOutset","maskBorderRepeat","maskBorder","maskType","textDecorationStyle","textDecorationSkip","fontFeatureSettings","breakAfter","breakBefore","breakInside","columnFill","columnGap","columnRule","columnRuleColor","columnRuleStyle","columnRuleWidth","columns","columnSpan","writingMode","flexDirection","flexFlow","transformOrigin","transformOriginX","transformOriginY","backfaceVisibility","perspective","perspectiveOrigin","transformStyle","transformOriginZ","backdropFilter","fontKerning","scrollSnapType","scrollSnapPointsX","scrollSnapPointsY","scrollSnapDestination","scrollSnapCoordinate","shapeImageThreshold","shapeImageMargin","shapeImageOutside","hyphens","flowInto","flowFrom","regionFragment","textOrientation","textAlignLast","wrapFlow","wrapThrough","wrapMargin","touchAction","textSizeAdjust","borderImage","borderImageRepeat","borderImageSource","transitionDelay","transitionDuration","transitionTimingFunction","prefixAll","createPrefixer","staticData","_objectSpread","valueString","stringifyValueWithProperty","cachedResult","identifier","_identifier","createIdentifier","_processKeyframesValu2","processKeyframesValue","animationNames","keyframesRules","createDeclarationBlock","_block","_createDeclarationBlo3","finalValue","_createDeclarationBlo","_block3","_createDeclarationBlo2","_block4","_block2","_createDeclarationBlo4","_block5","_createDeclarationBlo5","_block6","createAtomicRules","_cachedResult","animationKeyframes","_processKeyframesValu","prefixedStyles","prefixInlineStyles","normalizedValue","domStyle","prefixStyles","keyframesValue","keyframes","_createKeyframes","steps","stepName","createKeyframes","resets","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","tel","email","datetime","metaKey","altKey","isValidFocusTarget","addFocusVisibleAttribute","onPointerDown","tagName","isReadOnly","readOnly","isContentEditable","focusTriggersKeyboardModality","hasAttribute","removeFocusVisibleAttribute","visibilityState","addInitialPointerMoveListeners","removeAllFocusVisibleAttributes","onInitialPointerMove","createCacheKey","classListToString","styleResolver","inserted","resolved","css","ltr","rtl","rtlNoSwap","getElementById","_element","head","createCSSStyleSheet","initialRules","_injectRegisteredStyle","results","_results$key","addToCache","_resolveStyle","_I18nManager$getConst2","flatStyle","localizedStyle","getClassName","_atomic","_a$key","getStyleSheet","createCSS","compiled","_compiled$key","nextClassList","flatArray","isArrayOfNumbers","finalProps","createStyleResolver","classes","font","listStyle","pointerEventsStyles","pointerEvents","createDOMProps","elementType","accessibilityActiveDescendant","accessibilityAtomic","accessibilityAutoComplete","accessibilityBusy","accessibilityChecked","accessibilityColumnCount","accessibilityColumnIndex","accessibilityColumnSpan","accessibilityControls","accessibilityCurrent","accessibilityDescribedBy","accessibilityDetails","accessibilityDisabled","accessibilityErrorMessage","accessibilityExpanded","accessibilityFlowTo","accessibilityHasPopup","accessibilityHidden","accessibilityInvalid","accessibilityKeyShortcuts","accessibilityLabel","accessibilityLabelledBy","accessibilityLiveRegion","accessibilityModal","accessibilityMultiline","accessibilityMultiSelectable","accessibilityOrientation","accessibilityOwns","accessibilityPlaceholder","accessibilityPosInSet","accessibilityPressed","accessibilityReadOnly","accessibilityRequired","accessibilityRoleDescription","accessibilityRowCount","accessibilityRowIndex","accessibilityRowSpan","accessibilitySelected","accessibilitySetSize","accessibilitySort","accessibilityValueMax","accessibilityValueMin","accessibilityValueNow","accessibilityValueText","dataSet","focusable","nativeID","providedStyle","testID","accessible","accessibilityState","accessibilityValue","domProps","isNativeInteractiveElement","contentEditable","_prop","_value","dataProp","dataName","dataValue","_focusable","reactNativeStyle","needsCursor","finalClassList","_styleResolver$resolv","isSpacebarKey","isButtonRole","accessibilityComponent","useLayoutEffectImpl","dangerousStyleValue","isCustomProperty","setValueForStyles","styleName","styleValue","setProperty","getRect","_getBoundingClientRec","_measureLayout","relativeToNativeNode","relativeNode","relativeRect","_getRect","focusableElements","INPUT","SELECT","TEXTAREA","UIManager","measure","measureInWindow","_getRect2","measureLayout","onFail","onSuccess","updateView","configureNextLayoutAnimation","onAnimationDidEnd","setLayoutAnimationEnabledExperimental","resizeObserver","useElementLayout","onLayout","ResizeObserver","nativeEvent","layout","timeStamp","observe","unobserve","UNINITIALIZED","usePlatformMethods","previousStyleRef","setNativePropsArgsRef","getInitialValue","useStable","hostNode","relativeToNode","success","failure","setNativeProps","nativeProps","previousStyle","nextDomStyle","isStartish","eventType","isMoveish","isEndish","isCancelish","touchBank","touchHistory","numberActiveTouches","indexOfSingleActiveTouch","mostRecentTimeStamp","timestampForTouch","touch","getTouchIdentifier","recordTouchStart","touchRecord","touchActive","startPageX","pageX","startPageY","pageY","startTimeStamp","currentPageX","currentPageY","currentTimeStamp","previousPageX","previousPageY","previousTimeStamp","resetTouchRecord","createTouchRecord","recordTouchMove","printTouch","printTouchBank","recordTouchEnd","printed","ResponderTouchHistoryStore","recordTouchTrack","topLevelType","changedTouches","touches","touchTrackToCheck","emptyFunction","emptyArray","normalizeIdentifier","createResponderEvent","domEvent","rect","propagationWasStopped","domEventChangedTouches","domEventType","force","clientX","clientY","normalizeTouches","locationX","locationY","emulatedTouches","responderEvent","bubbles","cancelable","defaultPrevented","dispatchConfig","eventPhase","isDefaultPrevented","isPropagationStopped","isTrusted","persist","composedPathFallback","getResponderId","getResponderPaths","idPath","nodePath","eventPath","getSelection","anchorNode","getEventPath","hasValidSelection","focusNode","isTextNode","TEXT_NODE","isSelectionValid","startRegistration","moveRegistration","shouldSetResponderEvents","touchstart","mousedown","touchmove","mousemove","emptyResponder","responderListenersMap","isEmulatingMouseEvents","trackedTouchCount","currentResponder","changeCurrentResponder","responder","getResponderConfig","eventListener","eventTarget","isStartEvent","buttons","noModifiers","isPrimaryPointerDown","isMoveEvent","isEndEvent","isScrollEvent","isScroll","isSelectionChangeEvent","isSelectionChange","wantsResponder","eventPaths","wasNegotiated","currentResponderIdPath","eventIdPath","lowestCommonAncestor","pathA","pathB","pathALength","pathBLength","itemA","indexA","itemB","indexB","getLowestCommonAncestor","shouldSetCallbacks","shouldSetCallbackCaptureName","shouldSetCallbackBubbleName","callbackName","shouldSetCallback","_id","_result","_id2","_node2","findWantsResponder","_currentResponder2","currentId","currentNode","_getResponderConfig2","onResponderGrant","onResponderReject","registrationName","_getResponderConfig3","onResponderTerminate","onResponderTerminationRequest","allowTransfer","attemptTransfer","_currentResponder","_getResponderConfig","onResponderStart","onResponderMove","onResponderEnd","onResponderRelease","isTerminateEvent","isReleaseEvent","hasTargetTouches","shouldTerminate","documentEventsCapturePhase","documentEventsBubblePhase","removeNode","_currentResponder3","terminateResponder","useResponderEvents","hostRef","isAttachedRef","__reactResponderSystemActive","ResponderSystem","onMoveShouldSetResponder","onMoveShouldSetResponderCapture","onScrollShouldSetResponder","onScrollShouldSetResponderCapture","onSelectionChangeShouldSetResponder","onSelectionChangeShouldSetResponderCapture","onStartShouldSetResponder","onStartShouldSetResponderCapture","requiresResponderSystem","setResponderId","isResponder","TextAncestorContext","forwardPropsList","suppressHydrationWarning","onClickCapture","onContextMenu","onBlur","onFocus","onKeyDownCapture","onKeyUp","onKeyUpCapture","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseUp","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","View","hrefAttrs","hasTextAncestor","supportedProps","nextObj","pick","pickProps","download","rel","platformMethodsRef","setRef","view","border","boxSizing","queryFromPojo","selectionSetFromObj","Cache","justTypenameQuery","currentContext","MISSING_VALUE","host","Slot","hasValue","slots","withValue","saved","noContext","defaultDispose","newest","oldest","getEntry","older","newer","clean","parentEntrySlot","reusableEmptyArray","emptySetPool","assert","optionalMessage","valueGet","parents","childValues","dirtyChildren","dirty","recomputing","Entry","recompute","mightBeDirty","reportDirtyChild","reportCleanChild","rememberParent","maybeReportOrphan","originalChildren","forgetChildren","recomputeNewValue","maybeUnsubscribe","setDirty","maybeSubscribe","reportClean","setClean","reallyRecompute","reportDirty","forgetChild","valueIs","removeDirtyChild","dc","reportOrphan","weakness","lookup","lookupArray","getChildTrie","isObjRef","weak","KeyTrie","haveWarned","shouldWarn","answer","ensureReady","canBypassInit","idValue","isRootQuery","hasOwn","introspectionQueryResultData","possibleTypesMap","parseIntrospectionResult","isReady","implementingTypes","introspectionResultData","typeMap","__schema","types","possibleTypes","implementingType","depend","makeCacheKey","defaultNormalizedCacheFactory","cacheKeyRoot","freezeResults","executeStoreQuery","executeSelectionSet","executeSubSelectedArray","variableValues","readQueryFromStore","diffQueryAgainstStore","rootId","fragmentMatcherFunction","queryDefinition","cacheRedirects","execResult","hasMissingFields","missing","tolerable","finalResult","objectsToMerge","handleMissing","executeField","fragmentExecResult","readStoreResult","resultKey","storeKeyName","fieldValue","resolver","storeObj","readStoreResolver","combineExecResults","assertSelectionSetForIdValue","execResults","childResult","defaultFragmentMatcher","writeQueryToStore","writeResultToStore","operationDefinition","writeSelectionSetToStore","processedData","enhancedError","enhanceErrorWithDocument","resultFieldKey","writeFieldToStore","isDefered","isClient","fakeContext","ObjectCache","storeObject","storeFieldName","generatedId","processArrayValue","valueDataId","isGeneratedId","semanticId","isDataProcessed","escapedId","hadTypename","hasTypename","typenameChanged","mergeWithGenerated","generatedKey","realKey","real","madeChanges","realValue","newRealValue","itemDataId","HeuristicFragmentMatcher","addTypename","resultCaching","optimisticId","transaction","watches","typenameDocumentCache","silenceBroadcast","customResolvers","cacheResolvers","optimisticData","storeWriter","storeReader","maybeBroadcastWatch","broadcastWatches","evict","idToRemove","toReapply","removedCount","layer","print","printDocASTReducer","varDefs","_ref3","_ref4","_ref5","_ref6","_ref7","_ref8","_ref9","_ref10","_ref11","_ref12","_ref13","_ref14","_ref15","_ref16","_ref17","_ref18","_ref19","addDescription","_ref20","operationTypes","_ref21","_ref22","_ref23","interfaces","_ref24","hasMultilineItems","_ref25","_ref26","_ref27","_ref28","_ref29","_ref30","_ref31","repeatable","locations","_ref32","_ref33","_ref34","_ref35","_ref36","_ref37","_ref38","description","maybeArray","_maybeArray$filter$jo","maybeString","isMultiline","fallbackHttpConfig","http","includeQuery","includeExtensions","accept","throwServerError","statusCode","serialized","parseError","linkOptions","uri","fetch","useGETForQueries","fetcher","linkConfig","requestOptions","fetchOptions","credentials","chosenURI","fallbackURI","contextURI","getContext","selectURI","clientAwarenessHeaders","controller","contextHeaders","contextConfig","fallbackConfig","configs","signal","AbortController","_controller","queryParams","addQueryParam","serializedVariables","serializedExtensions","preFragment","fragmentStart","queryParamsPrefix","newURI","setContext","bodyText","z","B","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","isReactComponent","I","isPureReactComponent","__self","__source","_owner","Q","R","keyPrefix","V","aa","X","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","_context","createFactory","_ctor","_status","useDebugValue","useImperativeHandle","da","ea","fa","ha","ia","ja","la","ma","na","oa","ka","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","va","wa","xa","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","Ua","Va","xlinkHref","Wa","Xa","Sa","Ta","Ra","setAttributeNS","Ya","Za","$a","ab","bb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","pb","qb","_debugOwner","_debugSource","fileName","lineNumber","return","rb","sb","xb","_valueTracker","setValue","stopTracking","tb","yb","checked","zb","defaultChecked","_wrapperState","initialChecked","Ab","controlled","Bb","Cb","Db","Eb","ownerDocument","Gb","Fb","Hb","defaultSelected","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","namespaceURI","Rb","nodeValue","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","cc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","sibling","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPersistent","release","mc","nc","srcElement","correspondingUseElement","oc","pc","qc","targetInst","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","gridArea","gridRowSpan","gridColumnSpan","lineHeight","kd","ld","md","nd","area","br","col","embed","hr","img","keygen","param","track","wbr","od","pd","qd","rd","sd","td","ud","vd","xd","HTMLIFrameElement","contentWindow","yd","Dd","Ed","Fd","autoFocus","Gd","__html","Hd","Id","Jd","Kd","previousSibling","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","Interface","eventPool","fe","destructor","de","getPooled","cancelBubble","ge","he","ie","je","ke","documentMode","le","me","ne","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","pe","qe","detail","se","ve","te","char","ue","we","xe","ye","change","ze","Ae","Be","Ce","De","Ee","Fe","Ge","detachEvent","He","Ie","Je","Ke","Le","Me","_isInputEventSupported","Ne","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Te","Ue","Ve","screenX","screenY","fromElement","toElement","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","defaultView","parentWindow","$e","af","bf","cf","df","ef","ff","gf","hf","jf","selectionStart","selectionEnd","anchorOffset","focusOffset","kf","onSelect","lf","elapsedTime","pseudoElement","mf","clipboardData","nf","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","rf","sf","dataTransfer","tf","targetTouches","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","responders","tg","ug","updateQueue","baseState","baseQueue","shared","pending","effects","vg","wg","suspenseConfig","xg","yg","zg","ca","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","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","$g","ah","bh","ch","dh","eh","fh","gh","memoizedProps","revealOrder","ih","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","xh","yh","zh","Ah","deps","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","fallback","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","tail","tailExpiration","tailMode","mi","ri","si","wasMultiple","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","_reactRootContainer","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","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","wd","compareDocumentPosition","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","Lj","lk","findFiberByHostInstance","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","startTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","ReactPropTypesSecret","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","symbol","any","arrayOf","instanceOf","objectOf","oneOf","oneOfType","shape","checkPropTypes","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","originalModule","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","toStringTag","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","async","reverse","skipTempReset","rootRecord","rval","exception","handle","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","hasSymbols","getSymbol","SymbolIterator","SymbolObservable","SymbolSpecies","getMethod","getSpecies","isObservable","hostReportError","enqueue","cleanupSubscription","_cleanup","closeSubscription","_queue","_state","notifySubscription","onNotify","flushSubscription","subscriber","subscriptionObserver","SubscriptionObserver","_subscriber","_this3","_this4","hasSeed","_this5","startNext","_this6","outer","completeIfDone","closed","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_item","_len2","_key2","unstable_flushAllWithoutAsserting","setImmediate","renderIntoDocument","isElementOfType","isDOMComponent","isDOMComponentElement","isCompositeComponent","isCompositeComponentWithType","findAllInRenderedTree","scryRenderedDOMComponentsWithClass","findRenderedDOMComponentWithClass","scryRenderedDOMComponentsWithTag","findRenderedDOMComponentWithTag","scryRenderedComponentsWithType","findRenderedComponentWithType","mockComponent","mockTagName","mockImplementation","nativeTouchData","Simulate","SimulateNative","act","fill","readUInt8","superCtor","TempCtor","arrayPrefixGenerators","brackets","comma","indices","pushToArray","valueOrArray","toISO","addQueryPrefix","allowDots","charsetSentinel","encoder","encodeValuesOnly","formatter","serializeDate","skipNulls","strictNullHandling","generateArrayPrefix","objKeys","normalizeStringifyOptions","arrayFormat","joined","arrayLimit","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","numberStr","parseArrayValue","parseKeys","givenKey","valuesParsed","leaf","cleanRoot","0","parseObject","normalizeParseOptions","tempObj","cleanStr","Infinity","skipIndex","bracketEqualsPos","encodedVal","parseValues","newObj","Axios","mergeConfig","createInstance","axios","CancelToken","isCancel","spread","InterceptorManager","dispatchRequest","interceptors","interceptor","getUri","use","eject","transformData","throwIfCancellationRequested","throwIfRequested","fns","normalizedName","isAxiosError","columnNumber","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","originURL","msie","urlParsingNode","resolveURL","protocol","hostname","port","requestURL","domain","secure","toGMTString","executor","resolvePromise","DragDropManagerImpl_1","redux_1","reducers_1","dragDrop_1","DragDropMonitorImpl_1","HandlerRegistryImpl_1","DragDropManagerImpl","createBackend","isSetUp","handleRefCountChange","shouldSetUp","refCount","setup","teardown","reduxDevTools","__REDUX_DEVTOOLS_EXTENSION__","instanceId","makeStoreInstance","getActions","boundActions","dragOffset_1","dragOperation_1","refCount_1","dirtyHandlerIds_1","stateId_1","dirtyHandlerIds","prevTargetIds","dragOffset","dragOperation","stateId","equality_1","initialSourceClientOffset","initialClientOffset","clientOffset","sourceClientOffset","setClientOffset_1","types_1","ResetCoordinatesAction","sourceIds","publishSource","setClientOffset","sourceIds_1","getSource","verifyInvariants","getDraggableSource","verifyGetSourceClientOffsetIsFunction","verifyItemIsObject","pinSource","itemType","getSourceType","matchesType_1","targetIdsArg","verifyTargetIdsIsArray","targetIds","getTarget","checkInvariants","getTargetType","removeNonMatchingTargetIds","targetIds_1","hoverAllTargets","getDroppableTargets","dropResult","verifyDropResultType","determineDropResult","verifyIsDragging","unpinSource","registry_1","dirtiness_1","prevInnermostTargetId","innermostTargetId","coords_1","DragDropMonitorImpl","prevStateId","currentStateId","shallow","getNextUniqueId_1","interfaces_1","contracts_1","asap","parseRoleFromHandlerId","SOURCE","TARGET","mapContainsValue","searchValue","isDone","HandlerRegistryImpl","dragSources","dropTargets","pinnedSourceId","pinnedSource","validateType","validateSourceContract","addHandler","validateTargetContract","containsHandler","includePinned","isSourceId","isTargetId","getNextHandlerId","nextUniqueId","rawAsap","freeTasks","pendingErrors","requestErrorThrow","makeRequestCallFromTimer","task","rawTask","RawTask","requestFlush","flush","currentIndex","scan","newLength","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","handleTimer","intervalHandle","setInterval","clearInterval","characterData","makeRequestCallFromMutationObserver","DragLayerContainer","isCurrentlyMounted","unsubscribeFromOffsetChange","unsubscribeFromStateChange","decorateHandler_1","registerSource_1","createSourceFactory_1","DragSourceMonitorImpl_1","SourceConnector_1","isValidType_1","createSource","isDisposed","isDisposable","_fixup","getDisposable","shouldDispose","old","disposables","currentDisposables","getDecoratedComponent_1","ALLOWED_SPEC_METHODS","REQUIRED_SPEC_METHODS","SourceImpl","globalMonitor","newRef","previousRef","thisLen","registerTarget_1","createTargetFactory_1","DropTargetMonitorImpl_1","TargetConnector_1","createTarget","TargetImpl","receiveMonitor","connect","src","Image","img_1","onload","useMonitorOutput_1","drag_1","specRef","useDragSourceMonitor","connector","useDragHandler","previewOptions","useDragDropManager_1","begin","beginResult","useDropTargetMonitor","useDropHandler","EnterLeaveCounter_1","BrowserDetector_1","OffsetUtils_1","NativeDragSources_1","HTML5Backend","sourcePreviewNodes","sourcePreviewNodeOptions","sourceNodes","sourceNodeOptions","dragStartSourceIds","dropTargetIds","dragEnterTargetIds","currentNativeSource","currentNativeHandle","currentDragSourceNode","altKeyPressed","mouseMoveTimeoutTimer","asyncEndDragFrameId","dragOverTargetIds","getNodeClientOffset","endDragNativeItem","isDraggingNativeItem","isNodeInDocument","endDragIfSourceWasRemovedFromDOM","clearCurrentDragSourceNode","handleTopDragStartCapture","handleTopDragStart","getEventClientOffset","nativeType","matchNativeItemType","setDragImage","sourceNode","getCurrentSourcePreviewNodeOptions","anchorPoint","anchorX","anchorY","offsetPoint","dragPreviewOffset","getDragPreviewOffset","setData","setCurrentDragSourceNode","captureDraggingState","beginDragNativeItem","handleTopDragEndCapture","handleTopDragEnterCapture","enterLeaveCounter","handleTopDragEnter","dropEffect","getCurrentDropEffect","handleTopDragOverCapture","handleTopDragOver","handleTopDragLeaveCapture","handleTopDropCapture","mutateItemByReadingDataTransfer","handleTopDrop","handleSelectStart","dragDrop","__isReactDndBackendSetUp","addEventListeners","removeEventListeners","handleDragStart","handleDragEnter","handleDragOver","handleDrop","getCurrentSourceNodeOptions","createNativeDragSource","EnterLeaveCounter","entered","enteringNode","previousLength","leavingNode","MonotonicInterpolant_1","parentElement","isImage","dragPreviewNodeOffsetFromClient","offsetFromDragPreview","sourceWidth","sourceHeight","dragPreviewWidth","dragPreviewHeight","devicePixelRatio","getDragPreviewSize","isManualOffsetY","interpolate","calculateYOffset","MonotonicInterpolant","xs","ys","indexes","dx","dy","dys","dxs","c1s","m2","mNext","dxNext","c2s","c3s","c1","invDx","mid","low","high","xHere","diffSq","nativeTypesConfig_1","NativeDragSource_1","NativeDragSource","nativeTypesConfig","dataTransferTypes","nativeItemType","matchesTypes","getDataFromDataTransfer_1","exposeProperties","files","urls","getDataFromDataTransfer","typesToTry","resultSoFar","typeToTry","getData","newProperties","emptyImage","validateFormat","prefixProperties","newStyle","requiredPrefixes","capitalizedProperty","styleProperty","_capitalizeString","metaData","addIfNew","_hyphenateStyleName2","_hyphenateStyleName","devAssert","SYMBOL_TO_STRING_TAG","getLocation","lineRegexp","printLocation","printSourceLocation","sourceLocation","firstLineColumnOffset","locationOffset","whitespace","lineIndex","lineOffset","lineNum","columnOffset","columnNum","locationStr","locationLine","subLineIndex","subLineColumnNum","subLines","printPrefixedLines","subLine","existingLines","padLen","_assertThisInitialized","_wrapNativeSuper","Class","_cache","Wrapper","_construct","Parent","GraphQLError","_Error","positions","originalError","_locations2","_source2","_positions2","_extensions2","_nodes$0$loc","_nodes","_source","_locations","_positions","_extensions","originalExtensions","captureStackTrace","_error$nodes2","_i4","_error$locations2","printError","syntaxError","Kind","NAME","DOCUMENT","OPERATION_DEFINITION","VARIABLE_DEFINITION","SELECTION_SET","FIELD","ARGUMENT","FRAGMENT_SPREAD","INLINE_FRAGMENT","FRAGMENT_DEFINITION","VARIABLE","INT","FLOAT","STRING","BOOLEAN","NULL","ENUM","LIST","OBJECT","OBJECT_FIELD","DIRECTIVE","NAMED_TYPE","LIST_TYPE","NON_NULL_TYPE","SCHEMA_DEFINITION","OPERATION_TYPE_DEFINITION","SCALAR_TYPE_DEFINITION","OBJECT_TYPE_DEFINITION","FIELD_DEFINITION","INPUT_VALUE_DEFINITION","INTERFACE_TYPE_DEFINITION","UNION_TYPE_DEFINITION","ENUM_TYPE_DEFINITION","ENUM_VALUE_DEFINITION","INPUT_OBJECT_TYPE_DEFINITION","DIRECTIVE_DEFINITION","SCHEMA_EXTENSION","SCALAR_TYPE_EXTENSION","OBJECT_TYPE_EXTENSION","INTERFACE_TYPE_EXTENSION","UNION_TYPE_EXTENSION","ENUM_TYPE_EXTENSION","INPUT_OBJECT_TYPE_EXTENSION","Source","DirectiveLocation","QUERY","MUTATION","SUBSCRIPTION","SCHEMA","SCALAR","ARGUMENT_DEFINITION","INTERFACE","UNION","ENUM_VALUE","INPUT_OBJECT","INPUT_FIELD_DEFINITION","TokenKind","SOF","EOF","BANG","DOLLAR","AMP","PAREN_L","PAREN_R","SPREAD","COLON","EQUALS","AT","BRACKET_L","BRACKET_R","BRACE_L","PIPE","BRACE_R","BLOCK_STRING","COMMENT","Lexer","startOfFileToken","lastToken","lineStart","advance","lookahead","_token$next","readToken","printCharCode","lexer","bodyLength","startPosition","positionAfterWhitespace","readComment","readName","firstCode","isFloat","readDigits","isNameStart","readNumber","chunkStart","rawValue","readBlockString","char2hex","invalidSequence","readString","unexpectedCharacterMessage","Parser","parseValue","expectToken","parseValueLiteral","parseType","parseTypeReference","sourceObj","_lexer","_options","parseName","many","parseDefinition","parseOperationDefinition","parseFragmentDefinition","parseTypeSystemDefinition","parseTypeSystemExtension","peekDescription","unexpected","parseSelectionSet","parseOperationType","parseVariableDefinitions","parseDirectives","operationToken","optionalMany","parseVariableDefinition","parseVariable","expectOptionalToken","parseSelection","parseFragment","parseField","nameOrAlias","parseArguments","isConst","parseConstArgument","parseArgument","hasTypeCondition","expectOptionalKeyword","parseFragmentName","parseNamedType","_this$_options","expectKeyword","parseList","parseStringLiteral","parseObjectField","parseDirective","keywordToken","parseSchemaDefinition","parseScalarTypeDefinition","parseObjectTypeDefinition","parseInterfaceTypeDefinition","parseUnionTypeDefinition","parseEnumTypeDefinition","parseInputObjectTypeDefinition","parseDirectiveDefinition","parseDescription","parseOperationTypeDefinition","parseImplementsInterfaces","parseFieldsDefinition","_this$_options2","allowLegacySDLImplementsInterfaces","_this$_options3","allowLegacySDLEmptyFields","parseFieldDefinition","parseArgumentDefs","parseInputValueDef","parseUnionMemberTypes","parseEnumValuesDefinition","parseEnumValueDefinition","parseInputFieldsDefinition","parseSchemaExtension","parseScalarTypeExtension","parseObjectTypeExtension","parseInterfaceTypeExtension","parseUnionTypeExtension","parseEnumTypeExtension","parseInputObjectTypeExtension","parseDirectiveLocations","parseDirectiveLocation","_this$_options4","noLocation","getTokenKindDesc","getTokenDesc","atToken","openKind","parseFn","closeKind","isPunctuatorTokenKind","getRandomValues","crypto","msCrypto","rnds8","Uint8Array","rng","byteToHex","bytesToUuid","buf","bth","v4","rnds","ERROR","Transitions","NOT_RESPONDER","DELAY","RESPONDER_GRANT","RESPONDER_RELEASE","RESPONDER_TERMINATED","LONG_PRESS_DETECTED","RESPONDER_INACTIVE_PRESS_START","RESPONDER_ACTIVE_PRESS_START","RESPONDER_ACTIVE_LONG_PRESS_START","isActiveSignal","isPressStartSignal","PressResponder","_eventHandlers","_isPointerTouch","_longPressDelayTimeout","_longPressDispatched","_pressDelayTimeout","_pressOutDelayTimeout","_touchState","configure","_cancelLongPressDelayTimeout","_cancelPressDelayTimeout","_cancelPressOutDelayTimeout","getEventHandlers","_createEventHandlers","shouldDelay","_responder","_selectionTerminated","_receiveSignal","delayPressStart","normalizeDelay","delayLongPress","_handleLongPress","keyupHandler","isSpacebar","isValidKeyPress","onPressMove","getTouchFromResponderEvent","_touchActivatePosition","hypot","_this$_config","onLongPress","_this$_config2","onPress","_this$_config3","_performTransitionSideEffects","isTerminalSignal","isPrevActive","isNextActive","_activate","_deactivate","_this$_config4","_onLongPress","_this$_config5","onPressChange","onPressStart","_this$_config6","onPressEnd","delayPressEnd","_event$nativeEvent","createExtraStyles","activeOpacity","underlayColor","underlay","hasPressHandler","onPressIn","onPressOut","TouchableHighlight","delayPressIn","delayPressOut","onHideUnderlay","onShowUnderlay","rejectResponderTermination","testOnly_pressed","_useState","extraStyles","setExtraStyles","showUnderlay","hideUnderlay","pressEventHandlers","pressResponderRef","pressResponder","usePressEvents","actionable","MemoedTouchableHighlight"],"mappings":"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","file":"static/js/2.619f01c2.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","//! moment.js\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks () {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback (callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return (Object.getOwnPropertyNames(obj).length === 0);\n } else {\n var k;\n for (k in obj) {\n if (obj.hasOwnProperty(k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [], i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty : false,\n unusedTokens : [],\n unusedInput : [],\n overflow : -2,\n charsLeftOver : 0,\n nullInput : false,\n invalidMonth : null,\n invalidFormat : false,\n userInvalidated : false,\n iso : false,\n parsedDateParts : [],\n meridiem : null,\n rfc2822 : false,\n weekdayMismatch : false\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this);\n var len = t.length >>> 0;\n\n for (var i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m);\n var parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n var isNowValid = !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid = isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n }\n else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid (flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n }\n else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = hooks.momentProperties = [];\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n var updateInProgress = false;\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment (obj) {\n return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);\n }\n\n function absFloor (number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if ((dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false &&\n (typeof console !== 'undefined') && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [];\n var arg;\n for (var i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (var key in arguments[0]) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + (new Error()).stack);\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set (config) {\n var prop, i;\n for (i in config) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' + (/\\d{1,2}/).source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig), prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i, res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n };\n\n function calendar (key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n var defaultLongDateFormat = {\n LTS : 'h:mm:ss A',\n LT : 'h:mm A',\n L : 'MM/DD/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY h:mm A',\n LLLL : 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat (key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\n });\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate () {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d';\n var defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal (number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n };\n\n function relativeTime (number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return (isFunction(output)) ?\n output(number, withoutSuffix, string, isFuture) :\n output.replace(/%d/i, number);\n }\n\n function pastFuture (diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias (unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [];\n for (var u in unitsObj) {\n units.push({unit: u, priority: priorities[u]});\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n\n var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\n var formatFunctions = {};\n\n var formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken (token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens), i, length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '', i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var match1 = /\\d/; // 0 - 9\n var match2 = /\\d\\d/; // 00 - 99\n var match3 = /\\d{3}/; // 000 - 999\n var match4 = /\\d{4}/; // 0000 - 9999\n var match6 = /[+-]?\\d{6}/; // -999999 - 999999\n var match1to2 = /\\d\\d?/; // 0 - 99\n var match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\n var match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\n var match1to3 = /\\d{1,3}/; // 0 - 999\n var match1to4 = /\\d{1,4}/; // 0 - 9999\n var match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\n var matchUnsigned = /\\d+/; // 0 - inf\n var matchSigned = /[+-]?\\d+/; // -inf - inf\n\n var matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\n var matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\n var matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n var matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i;\n\n var regexes = {};\n\n function addRegexToken (token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return (isStrict && strictRegex) ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken (token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken (token, callback) {\n var i, func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken (token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0;\n var MONTH = 1;\n var DATE = 2;\n var HOUR = 3;\n var MINUTE = 4;\n var SECOND = 5;\n var MILLISECOND = 6;\n var WEEK = 7;\n var WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? '' + y : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear () {\n return isLeapYear(this.year());\n }\n\n function makeGetSet (unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get (mom, unit) {\n return mom.isValid() ?\n mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1 (mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n }\n else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet (units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n\n function stringSet (units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units);\n for (var i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\n function localeMonths (m, format) {\n if (!m) {\n return isArray(this._months) ? this._months :\n this._months['standalone'];\n }\n return isArray(this._months) ? this._months[m.month()] :\n this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\n function localeMonthsShort (m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort :\n this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] :\n this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i, ii, mom, llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse (monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth (mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth (value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth () {\n return daysInMonth(this.year(), this.month());\n }\n\n var defaultMonthsShortRegex = matchWord;\n function monthsShortRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict ?\n this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n var defaultMonthsRegex = matchWord;\n function monthsRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict ?\n this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n }\n\n function createDate (y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate (y) {\n var date;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n var args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear, resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek, resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek (mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek () {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear () {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek (input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek (input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays (ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n function localeWeekdays (m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays :\n this._weekdays[(m && m !== true && this._weekdays.isFormat.test(format)) ? 'format' : 'standalone'];\n return (m === true) ? shiftWeekdays(weekdays, this._week.dow)\n : (m) ? weekdays[m.day()] : weekdays;\n }\n\n var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n function localeWeekdaysShort (m) {\n return (m === true) ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\n function localeWeekdaysMin (m) {\n return (m === true) ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i, ii, mom, llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse (weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n var defaultWeekdaysRegex = matchWord;\n function weekdaysRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict ?\n this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n var defaultWeekdaysShortRegex = matchWord;\n function weekdaysShortRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict ?\n this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n var defaultWeekdaysMinRegex = matchWord;\n function weekdaysMinRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict ?\n this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n\n function computeWeekdaysParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom, minp, shortp, longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = this.weekdaysMin(mom, '');\n shortp = this.weekdaysShort(mom, '');\n longp = this.weekdays(mom, '');\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n function meridiem (token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem (isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM (input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return ((input + '').toLowerCase().charAt(0) === 'p');\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\n function localeMeridiem (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n\n // MOMENTS\n\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n var getSetHour = makeGetSet('Hours', true);\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse\n };\n\n // internal storage for locale config files\n var locales = {};\n var localeFamilies = {};\n var globalLocale;\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0, j, next, locale, split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && (typeof module !== 'undefined') &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n var aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {}\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale (key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n }\n else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n }\n else {\n if ((typeof console !== 'undefined') && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale (name, config) {\n if (config !== null) {\n var locale, parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale, tmpLocale, parentConfig = baseConfig;\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale (key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow (m) {\n var overflow;\n var a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray (config) {\n var i, date, input = [], currentDate, expectedWeekday, yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n var curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n var basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n\n var tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n\n var isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/]\n ];\n\n // iso time formats and regexes\n var isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/]\n ];\n\n var aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\n // date from iso format\n function configFromISO(config) {\n var i, l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime, dateFormat, timeFormat, tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;\n\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10)\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n var obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n };\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10);\n var m = hm % 100, h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i));\n if (match) {\n var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from iso format or fallback\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i, parsedInput, tokens, token, skipped,\n stringLength = string.length,\n totalParsedInputLength = 0;\n\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n // console.log('token', token, 'parsedInput', parsedInput,\n // 'regex', getParseRegexForToken(token, config));\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n }\n else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n }\n else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n\n function meridiemFixWrap (locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n\n scoreToBeat,\n i,\n currentScore;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (!isValid(tempConfig)) {\n continue;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i);\n config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n\n configFromArray(config);\n }\n\n function createFromConfig (config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig (config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({nullInput: true});\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC (input, format, locale, strict, isUTC) {\n var c = {};\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if ((isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n var prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +(new Date());\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n for (var key in m) {\n if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n var unitHasDecimal = false;\n for (var i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration (duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days +\n weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months +\n quarters * 3 +\n years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration (obj) {\n return obj instanceof Duration;\n }\n\n function absRound (number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // FORMATTING\n\n function offset (token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset();\n var sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher);\n\n if (matches === null) {\n return null;\n }\n\n var chunk = matches[matches.length - 1] || [];\n var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n var minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ?\n 0 :\n parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset (m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset() / 15) * 15;\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset (input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone (input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC (keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal (keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset () {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n }\n else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset (input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime () {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted () {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {};\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal () {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset () {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc () {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;\n\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n var isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration (input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms : input._milliseconds,\n d : input._days,\n M : input._months\n };\n } else if (isNumber(input)) {\n duration = {};\n if (key) {\n duration[key] = input;\n } else {\n duration.milliseconds = input;\n }\n } else if (!!(match = aspNetRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : 0,\n d : toInt(match[DATE]) * sign,\n h : toInt(match[HOUR]) * sign,\n m : toInt(match[MINUTE]) * sign,\n s : toInt(match[SECOND]) * sign,\n ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n };\n } else if (!!(match = isoRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : parseIso(match[2], sign),\n M : parseIso(match[3], sign),\n w : parseIso(match[4], sign),\n d : parseIso(match[5], sign),\n h : parseIso(match[6], sign),\n m : parseIso(match[7], sign),\n s : parseIso(match[8], sign)\n };\n } else if (duration == null) {// checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso (inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months = other.month() - base.month() +\n (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +(base.clone().add(res.months, 'M'));\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return {milliseconds: 0, months: 0};\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val; val = period; period = tmp;\n }\n\n val = typeof val === 'string' ? +val : val;\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract (mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add');\n var subtract = createAdder(-1, 'subtract');\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' :\n diff < -1 ? 'lastWeek' :\n diff < 0 ? 'lastDay' :\n diff < 1 ? 'sameDay' :\n diff < 2 ? 'nextDay' :\n diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1 (time, formats) {\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse';\n\n var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n\n function clone () {\n return new Moment(this);\n }\n\n function isAfter (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween (from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n }\n\n function isSame (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter (input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore (input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff (input, units, asFloat) {\n var that,\n zoneDelta,\n output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year': output = monthDiff(this, that) / 12; break;\n case 'month': output = monthDiff(this, that); break;\n case 'quarter': output = monthDiff(this, that) / 3; break;\n case 'second': output = (this - that) / 1e3; break; // 1000\n case 'minute': output = (this - that) / 6e4; break; // 1000 * 60\n case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60\n case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst\n case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default: output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff (a, b) {\n // difference in months\n var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2, adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString () {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true;\n var m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect () {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment';\n var zone = '';\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n var prefix = '[' + func + '(\"]';\n var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';\n var datetime = '-MM-DD[T]HH:mm:ss.SSS';\n var suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format (inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow (withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow (withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale (key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData () {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000;\n var MS_PER_MINUTE = 60 * MS_PER_SECOND;\n var MS_PER_HOUR = 60 * MS_PER_MINUTE;\n var MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return (dividend % divisor + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf (units) {\n var time;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf (units) {\n var time;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf () {\n return this._d.valueOf() - ((this._offset || 0) * 60000);\n }\n\n function unix () {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate () {\n return new Date(this.valueOf());\n }\n\n function toArray () {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject () {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON () {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2 () {\n return isValid(this);\n }\n\n function parsingFlags () {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt () {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken (token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear () {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getWeeksInYear () {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter (input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ?\n (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :\n locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear (input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n // MOMENTS\n\n var getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr () {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName () {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n function createUnix (input) {\n return createLocal(input * 1000);\n }\n\n function createInZone () {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat (string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1 (format, index, field, setter) {\n var locale = getLocale();\n var utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl (format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl (localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0;\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths (format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort (format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (toInt(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n\n var mathAbs = Math.abs;\n\n function abs () {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1 (duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1 (input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1 (input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil (number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble () {\n var milliseconds = this._milliseconds;\n var days = this._days;\n var months = this._months;\n var data = this._data;\n var seconds, minutes, hours, years, monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths (days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays (months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as (units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days;\n var months;\n var milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month': return months;\n case 'quarter': return months / 3;\n case 'year': return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week' : return days / 7 + milliseconds / 6048e5;\n case 'day' : return days + milliseconds / 864e5;\n case 'hour' : return days * 24 + milliseconds / 36e5;\n case 'minute' : return days * 1440 + milliseconds / 6e4;\n case 'second' : return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond': return Math.floor(days * 864e5) + milliseconds;\n default: throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1 () {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs (alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms');\n var asSeconds = makeAs('s');\n var asMinutes = makeAs('m');\n var asHours = makeAs('h');\n var asDays = makeAs('d');\n var asWeeks = makeAs('w');\n var asMonths = makeAs('M');\n var asQuarters = makeAs('Q');\n var asYears = makeAs('y');\n\n function clone$1 () {\n return createDuration(this);\n }\n\n function get$2 (units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds');\n var seconds = makeGetter('seconds');\n var minutes = makeGetter('minutes');\n var hours = makeGetter('hours');\n var days = makeGetter('days');\n var months = makeGetter('months');\n var years = makeGetter('years');\n\n function weeks () {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round;\n var thresholds = {\n ss: 44, // a few seconds to seconds\n s : 45, // seconds to minute\n m : 45, // minutes to hour\n h : 22, // hours to day\n d : 26, // days to month\n M : 11 // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1 (posNegDuration, withoutSuffix, locale) {\n var duration = createDuration(posNegDuration).abs();\n var seconds = round(duration.as('s'));\n var minutes = round(duration.as('m'));\n var hours = round(duration.as('h'));\n var days = round(duration.as('d'));\n var months = round(duration.as('M'));\n var years = round(duration.as('y'));\n\n var a = seconds <= thresholds.ss && ['s', seconds] ||\n seconds < thresholds.s && ['ss', seconds] ||\n minutes <= 1 && ['m'] ||\n minutes < thresholds.m && ['mm', minutes] ||\n hours <= 1 && ['h'] ||\n hours < thresholds.h && ['hh', hours] ||\n days <= 1 && ['d'] ||\n days < thresholds.d && ['dd', days] ||\n months <= 1 && ['M'] ||\n months < thresholds.M && ['MM', months] ||\n years <= 1 && ['y'] || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding (roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof(roundingFunction) === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold (threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize (withSuffix) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var locale = this.localeData();\n var output = relativeTime$1(this, !withSuffix, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return ((x > 0) - (x < 0)) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000;\n var days = abs$1(this._days);\n var months = abs$1(this._months);\n var minutes, hours, years;\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n var Y = years;\n var M = months;\n var D = days;\n var h = hours;\n var m = minutes;\n var s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n var total = this.asSeconds();\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n var totalSign = total < 0 ? '-' : '';\n var ymSign = sign(this._months) !== sign(total) ? '-' : '';\n var daysSign = sign(this._days) !== sign(total) ? '-' : '';\n var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return totalSign + 'P' +\n (Y ? ymSign + Y + 'Y' : '') +\n (M ? ymSign + M + 'M' : '') +\n (D ? daysSign + D + 'D' : '') +\n ((h || m || s) ? 'T' : '') +\n (h ? hmsSign + h + 'H' : '') +\n (m ? hmsSign + m + 'M' : '') +\n (s ? hmsSign + s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang;\n\n // Side effect imports\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input, 10) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n // Side effect imports\n\n\n hooks.version = '2.24.0';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM' // \n };\n\n return hooks;\n\n})));\n","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import React from 'react';\nexport var ReactReduxContext =\n/*#__PURE__*/\nReact.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\nvar nullListeners = {\n notify: function notify() {}\n};\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 Subscription =\n/*#__PURE__*/\nfunction () {\n function Subscription(store, parentSub) {\n this.store = store;\n this.parentSub = parentSub;\n this.unsubscribe = null;\n this.listeners = nullListeners;\n this.handleChangeWrapper = this.handleChangeWrapper.bind(this);\n }\n\n var _proto = Subscription.prototype;\n\n _proto.addNestedSub = function addNestedSub(listener) {\n this.trySubscribe();\n return this.listeners.subscribe(listener);\n };\n\n _proto.notifyNestedSubs = function notifyNestedSubs() {\n this.listeners.notify();\n };\n\n _proto.handleChangeWrapper = function handleChangeWrapper() {\n if (this.onStateChange) {\n this.onStateChange();\n }\n };\n\n _proto.isSubscribed = function isSubscribed() {\n return Boolean(this.unsubscribe);\n };\n\n _proto.trySubscribe = function trySubscribe() {\n if (!this.unsubscribe) {\n this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.handleChangeWrapper) : this.store.subscribe(this.handleChangeWrapper);\n this.listeners = createListenerCollection();\n }\n };\n\n _proto.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n this.listeners.clear();\n this.listeners = nullListeners;\n }\n };\n\n return Subscription;\n}();\n\nexport { Subscription as default };","import React, { useMemo, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport Subscription from '../utils/Subscription';\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 = new Subscription(store);\n subscription.onStateChange = subscription.notifyNestedSubs;\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useEffect(function () {\n var subscription = contextValue.subscription;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return 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 { 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 { 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 =\n/*#__PURE__*/\ncreateStoreHook();","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 =\n/*#__PURE__*/\ncreateDispatchHook();","import { useReducer, useRef, useMemo, useContext } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport Subscription 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 new Subscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestSelectedState = useRef();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || latestSubscriptionCallbackError.current) {\n selectedState = selector(store.getState());\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 latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newSelectedState = latestSelector.current(store.getState());\n\n if (equalityFn(newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = newSelectedState;\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' && !selector) {\n throw new Error(\"You must pass a selector to useSelectors\");\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n return useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\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 =\n/*#__PURE__*/\ncreateSelectorHook();","import Provider from './components/Provider';\nimport connectAdvanced from './components/connectAdvanced';\nimport { ReactReduxContext } from './components/Context';\nimport connect from './connect/connect';\nimport { useDispatch, createDispatchHook } from './hooks/useDispatch';\nimport { useSelector, createSelectorHook } from './hooks/useSelector';\nimport { useStore, createStoreHook } from './hooks/useStore';\nimport { setBatch } from './utils/batch';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport shallowEqual from './utils/shallowEqual';\nsetBatch(batch);\nexport { Provider, connectAdvanced, ReactReduxContext, connect, batch, useDispatch, createDispatchHook, useSelector, createSelectorHook, useStore, createStoreHook, shallowEqual };","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { ApolloClient } from 'apollo-client';\nimport { equal as isEqual } from '@wry/equality';\nimport { invariant } from 'ts-invariant';\nimport {\n ApolloContextValue,\n parser,\n DocumentType,\n operationName\n} from '@apollo/react-common';\nimport { DocumentNode } from 'graphql';\n\nimport { CommonOptions } from '../types';\n\nexport abstract class OperationData {\n public isMounted: boolean = false;\n public previousOptions: CommonOptions = {} as CommonOptions<\n TOptions\n >;\n public context: ApolloContextValue = {};\n public client: ApolloClient | undefined;\n\n private options: CommonOptions = {} as CommonOptions;\n\n constructor(options?: CommonOptions, context?: ApolloContextValue) {\n this.options = options || ({} as CommonOptions);\n this.context = context || {};\n }\n\n public getOptions(): CommonOptions {\n return this.options;\n }\n\n public setOptions(\n newOptions: CommonOptions,\n storePrevious: boolean = false\n ) {\n if (storePrevious && !isEqual(this.options, newOptions)) {\n this.previousOptions = this.options;\n }\n this.options = newOptions;\n }\n\n public abstract execute(...args: any): any;\n public abstract afterExecute(...args: any): void | (() => void);\n public abstract cleanup(): void;\n\n protected unmount() {\n this.isMounted = false;\n }\n\n protected refreshClient() {\n const client =\n (this.options && this.options.client) ||\n (this.context && this.context.client);\n\n invariant(\n !!client,\n 'Could not find \"client\" in the context or passed in as an option. ' +\n 'Wrap the root component in an , or pass an ' +\n 'ApolloClient instance in via options.'\n );\n\n let isNew = false;\n if (client !== this.client) {\n isNew = true;\n this.client = client;\n this.cleanup();\n }\n return {\n client: this.client as ApolloClient,\n isNew\n };\n }\n\n protected verifyDocumentType(document: DocumentNode, type: DocumentType) {\n const operation = parser(document);\n const requiredOperationName = operationName(type);\n const usedOperationName = operationName(operation.type);\n invariant(\n operation.type === type,\n `Running a ${requiredOperationName} requires a graphql ` +\n `${requiredOperationName}, but a ${usedOperationName} was used instead.`\n );\n }\n}\n","import {\n ApolloQueryResult,\n ApolloError,\n NetworkStatus,\n FetchMoreOptions,\n FetchMoreQueryOptions,\n UpdateQueryOptions,\n SubscribeToMoreOptions,\n} from 'apollo-client';\nimport { equal as isEqual } from '@wry/equality';\nimport {\n ApolloContextValue,\n DocumentType,\n QueryResult,\n ObservableQueryFields,\n} from '@apollo/react-common';\n\nimport {\n QueryPreviousData,\n QueryOptions,\n QueryCurrentObservable,\n QueryTuple,\n QueryLazyOptions,\n} from '../types';\nimport { OperationData } from './OperationData';\n\nexport class QueryData extends OperationData {\n public onNewData: () => void;\n\n private previousData: QueryPreviousData = {};\n private currentObservable: QueryCurrentObservable = {};\n private runLazy: boolean = false;\n private lazyOptions?: QueryLazyOptions;\n\n constructor({\n options,\n context,\n onNewData,\n }: {\n options: QueryOptions;\n context: ApolloContextValue;\n onNewData: () => void;\n }) {\n super(options, context);\n this.onNewData = onNewData;\n }\n\n public execute(): QueryResult {\n this.refreshClient();\n\n const { skip, query } = this.getOptions();\n if (skip || query !== this.previousData.query) {\n this.removeQuerySubscription();\n this.previousData.query = query;\n }\n\n this.updateObservableQuery();\n\n if (this.isMounted) this.startQuerySubscription();\n\n return this.getExecuteSsrResult() || this.getExecuteResult();\n }\n\n public executeLazy(): QueryTuple {\n return !this.runLazy\n ? [\n this.runLazyQuery,\n {\n loading: false,\n networkStatus: NetworkStatus.ready,\n called: false,\n data: undefined,\n } as QueryResult,\n ]\n : [this.runLazyQuery, this.execute()];\n }\n\n // For server-side rendering\n public fetchData(): Promise> | boolean {\n const options = this.getOptions();\n if (options.skip || options.ssr === false) return false;\n\n // currentObservable.query is already assigned the registered SSR observable in initializeObservableQuery.\n const obs = this.currentObservable.query!;\n const currentResult = obs.getCurrentResult();\n return currentResult.loading ? obs.result() : false;\n }\n\n public afterExecute({ lazy = false }: { lazy?: boolean } = {}) {\n this.isMounted = true;\n\n if (!lazy || this.runLazy) {\n this.handleErrorOrCompleted();\n }\n\n this.previousOptions = this.getOptions();\n return this.unmount.bind(this);\n }\n\n public cleanup() {\n this.removeQuerySubscription();\n delete this.currentObservable.query;\n delete this.previousData.result;\n }\n\n public getOptions() {\n const options = super.getOptions();\n\n if (this.lazyOptions) {\n options.variables = {\n ...options.variables,\n ...this.lazyOptions.variables,\n };\n options.context = {\n ...options.context,\n ...this.lazyOptions.context,\n };\n }\n\n // skip is not supported when using lazy query execution.\n if (this.runLazy) {\n delete options.skip;\n }\n\n return options;\n }\n\n public ssrInitiated() {\n return this.context && this.context.renderPromises;\n }\n\n private runLazyQuery = (options?: QueryLazyOptions) => {\n this.cleanup();\n this.runLazy = true;\n this.lazyOptions = options;\n this.onNewData();\n };\n\n private getExecuteResult = (): QueryResult => {\n const result = this.getQueryResult();\n this.startQuerySubscription();\n return result;\n };\n\n private getExecuteSsrResult() {\n const ssrDisabled = this.getOptions().ssr === false;\n const fetchDisabled = this.refreshClient().client.disableNetworkFetches;\n\n const ssrLoading = {\n loading: true,\n networkStatus: NetworkStatus.loading,\n called: true,\n data: undefined,\n stale: false,\n client: this.client,\n ...this.observableQueryFields(),\n } as QueryResult;\n\n // If SSR has been explicitly disabled, and this function has been called\n // on the server side, return the default loading state.\n if (ssrDisabled && (this.ssrInitiated() || fetchDisabled)) {\n this.previousData.result = ssrLoading;\n return ssrLoading;\n }\n\n let result;\n if (this.ssrInitiated()) {\n result =\n this.context.renderPromises!.addQueryPromise(\n this,\n this.getExecuteResult\n ) || ssrLoading;\n }\n\n return result;\n }\n\n private prepareObservableQueryOptions() {\n const options = this.getOptions();\n this.verifyDocumentType(options.query, DocumentType.Query);\n const displayName = options.displayName || 'Query';\n\n // Set the fetchPolicy to cache-first for network-only and cache-and-network\n // fetches for server side renders.\n if (\n this.ssrInitiated() &&\n (options.fetchPolicy === 'network-only' ||\n options.fetchPolicy === 'cache-and-network')\n ) {\n options.fetchPolicy = 'cache-first';\n }\n\n return {\n ...options,\n displayName,\n context: options.context,\n metadata: { reactComponent: { displayName } },\n };\n }\n\n private initializeObservableQuery() {\n // See if there is an existing observable that was used to fetch the same\n // data and if so, use it instead since it will contain the proper queryId\n // to fetch the result set. This is used during SSR.\n if (this.ssrInitiated()) {\n this.currentObservable.query = this.context!.renderPromises!.getSSRObservable(\n this.getOptions()\n );\n }\n\n if (!this.currentObservable.query) {\n const observableQueryOptions = this.prepareObservableQueryOptions();\n\n this.previousData.observableQueryOptions = {\n ...observableQueryOptions,\n children: null,\n };\n this.currentObservable.query = this.refreshClient().client.watchQuery({\n ...observableQueryOptions,\n });\n\n if (this.ssrInitiated()) {\n this.context?.renderPromises?.registerSSRObservable(\n this.currentObservable.query,\n observableQueryOptions\n );\n }\n }\n }\n\n private updateObservableQuery() {\n // If we skipped initially, we may not have yet created the observable\n if (!this.currentObservable.query) {\n this.initializeObservableQuery();\n return;\n }\n\n const newObservableQueryOptions = {\n ...this.prepareObservableQueryOptions(),\n children: null,\n };\n\n if (\n !isEqual(\n newObservableQueryOptions,\n this.previousData.observableQueryOptions\n )\n ) {\n this.previousData.observableQueryOptions = newObservableQueryOptions;\n this.currentObservable\n .query!.setOptions(newObservableQueryOptions)\n // The error will be passed to the child container, so we don't\n // need to log it here. We could conceivably log something if\n // an option was set. OTOH we don't log errors w/ the original\n // query. See https://github.com/apollostack/react-apollo/issues/404\n .catch(() => {});\n }\n }\n\n private startQuerySubscription() {\n if (this.currentObservable.subscription || this.getOptions().skip) return;\n\n const obsQuery = this.currentObservable.query!;\n this.currentObservable.subscription = obsQuery.subscribe({\n next: ({ loading, networkStatus, data }) => {\n const previousResult = this.previousData.result;\n\n // Make sure we're not attempting to re-render similar results\n if (\n previousResult &&\n previousResult.loading === loading &&\n previousResult.networkStatus === networkStatus &&\n isEqual(previousResult.data, data)\n ) {\n return;\n }\n\n this.onNewData();\n },\n error: (error) => {\n this.resubscribeToQuery();\n if (!error.hasOwnProperty('graphQLErrors')) throw error;\n\n const previousResult = this.previousData.result;\n if (\n (previousResult && previousResult.loading) ||\n !isEqual(error, this.previousData.error)\n ) {\n this.previousData.error = error;\n this.onNewData();\n }\n },\n });\n }\n\n private resubscribeToQuery() {\n this.removeQuerySubscription();\n\n // Unfortunately, if `lastError` is set in the current\n // `observableQuery` when the subscription is re-created,\n // the subscription will immediately receive the error, which will\n // cause it to terminate again. To avoid this, we first clear\n // the last error/result from the `observableQuery` before re-starting\n // the subscription, and restore it afterwards (so the subscription\n // has a chance to stay open).\n const lastError = this.currentObservable.query!.getLastError();\n const lastResult = this.currentObservable.query!.getLastResult();\n this.currentObservable.query!.resetLastResults();\n this.startQuerySubscription();\n Object.assign(this.currentObservable.query!, {\n lastError,\n lastResult,\n });\n }\n\n private getQueryResult(): QueryResult {\n let result: any = this.observableQueryFields();\n const options = this.getOptions();\n\n // When skipping a query (ie. we're not querying for data but still want\n // to render children), make sure the `data` is cleared out and\n // `loading` is set to `false` (since we aren't loading anything).\n if (options.skip) {\n result = {\n ...result,\n data: undefined,\n error: undefined,\n loading: false,\n called: true,\n };\n } else {\n // Fetch the current result (if any) from the store.\n const currentResult = this.currentObservable.query!.getCurrentResult();\n const { loading, partial, networkStatus, errors } = currentResult;\n let { error, data } = currentResult;\n\n // Until a set naming convention for networkError and graphQLErrors is\n // decided upon, we map errors (graphQLErrors) to the error options.\n if (errors && errors.length > 0) {\n error = new ApolloError({ graphQLErrors: errors });\n }\n\n result = {\n ...result,\n loading,\n networkStatus,\n error,\n called: true,\n };\n\n if (loading) {\n const previousData =\n this.previousData.result && this.previousData.result.data;\n result.data =\n previousData && data\n ? {\n ...previousData,\n ...data,\n }\n : previousData || data;\n } else if (error) {\n Object.assign(result, {\n data: (this.currentObservable.query!.getLastResult() || ({} as any))\n .data,\n });\n } else {\n const { fetchPolicy } = this.currentObservable.query!.options;\n const { partialRefetch } = options;\n if (\n partialRefetch &&\n !data &&\n partial &&\n fetchPolicy !== 'cache-only'\n ) {\n // When a `Query` component is mounted, and a mutation is executed\n // that returns the same ID as the mounted `Query`, but has less\n // fields in its result, Apollo Client's `QueryManager` returns the\n // data as `undefined` since a hit can't be found in the cache.\n // This can lead to application errors when the UI elements rendered by\n // the original `Query` component are expecting certain data values to\n // exist, and they're all of a sudden stripped away. To help avoid\n // this we'll attempt to refetch the `Query` data.\n Object.assign(result, {\n loading: true,\n networkStatus: NetworkStatus.loading,\n });\n result.refetch();\n return result;\n }\n\n result.data = data;\n }\n }\n\n result.client = this.client;\n this.previousData.loading =\n (this.previousData.result && this.previousData.result.loading) || false;\n this.previousData.result = result;\n\n // Any query errors that exist are now available in `result`, so we'll\n // remove the original errors from the `ObservableQuery` query store to\n // make sure they aren't re-displayed on subsequent (potentially error\n // free) requests/responses.\n this.currentObservable.query &&\n this.currentObservable.query.resetQueryStoreErrors();\n\n return result;\n }\n\n private handleErrorOrCompleted() {\n const obsQuery = this.currentObservable.query;\n if (!obsQuery || !this.previousData.result) return;\n\n const { data, loading, error } = this.previousData.result;\n\n if (!loading) {\n const { query, variables, onCompleted, onError } = this.getOptions();\n\n // No changes, so we won't call onError/onCompleted.\n if (\n this.previousOptions &&\n !this.previousData.loading &&\n isEqual(this.previousOptions.query, query) &&\n isEqual(this.previousOptions.variables, variables)\n ) {\n return;\n }\n\n if (onCompleted && !error) {\n onCompleted(data);\n } else if (onError && error) {\n onError(error);\n }\n }\n }\n\n private removeQuerySubscription() {\n if (this.currentObservable.subscription) {\n this.currentObservable.subscription.unsubscribe();\n delete this.currentObservable.subscription;\n }\n }\n\n private obsRefetch = (variables?: TVariables) =>\n this.currentObservable.query!.refetch(variables);\n\n private obsFetchMore = (\n fetchMoreOptions: FetchMoreQueryOptions &\n FetchMoreOptions\n ) => this.currentObservable.query!.fetchMore(fetchMoreOptions);\n\n private obsUpdateQuery = (\n mapFn: (\n previousQueryResult: TData,\n options: UpdateQueryOptions\n ) => TData\n ) => this.currentObservable.query!.updateQuery(mapFn);\n\n private obsStartPolling = (pollInterval: number) => {\n this.currentObservable &&\n this.currentObservable.query! &&\n this.currentObservable.query!.startPolling(pollInterval);\n };\n\n private obsStopPolling = () => {\n this.currentObservable &&\n this.currentObservable.query! &&\n this.currentObservable.query!.stopPolling();\n };\n\n private obsSubscribeToMore = <\n TSubscriptionData = TData,\n TSubscriptionVariables = TVariables\n >(\n options: SubscribeToMoreOptions<\n TData,\n TSubscriptionVariables,\n TSubscriptionData\n >\n ) => this.currentObservable.query!.subscribeToMore(options);\n\n private observableQueryFields() {\n const observable = this.currentObservable.query!;\n return {\n variables: observable.variables,\n refetch: this.obsRefetch,\n fetchMore: this.obsFetchMore,\n updateQuery: this.obsUpdateQuery,\n startPolling: this.obsStartPolling,\n stopPolling: this.obsStopPolling,\n subscribeToMore: this.obsSubscribeToMore,\n } as ObservableQueryFields;\n }\n}\n","import { useContext, useEffect, useReducer, useRef } from 'react';\nimport {\n getApolloContext,\n OperationVariables,\n QueryResult,\n} from '@apollo/react-common';\nimport { DocumentNode } from 'graphql';\n\nimport { QueryHookOptions, QueryOptions, QueryTuple } from '../types';\nimport { QueryData } from '../data/QueryData';\nimport { useDeepMemo } from './useDeepMemo';\n\nexport function useBaseQuery(\n query: DocumentNode,\n options?: QueryHookOptions,\n lazy = false\n) {\n const context = useContext(getApolloContext());\n const [tick, forceUpdate] = useReducer((x) => x + 1, 0);\n const updatedOptions = options ? { ...options, query } : { query };\n\n const queryDataRef = useRef>();\n const queryData =\n queryDataRef.current ||\n new QueryData({\n options: updatedOptions as QueryOptions,\n context,\n onNewData() {\n if (!queryData.ssrInitiated()) {\n // When new data is received from the `QueryData` object, we want to\n // force a re-render to make sure the new data is displayed. We can't\n // force that re-render if we're already rendering however so to be\n // safe we'll trigger the re-render in a microtask.\n Promise.resolve().then(forceUpdate);\n } else {\n // If we're rendering on the server side we can force an update at\n // any point.\n forceUpdate();\n }\n },\n });\n\n queryData.setOptions(updatedOptions);\n queryData.context = context;\n\n // SSR won't trigger the effect hook below that stores the current\n // `QueryData` instance for future renders, so we'll handle that here if\n // the current render is happening server side.\n if (queryData.ssrInitiated() && !queryDataRef.current) {\n queryDataRef.current = queryData;\n }\n\n // `onError` and `onCompleted` callback functions will not always have a\n // stable identity, so we'll exclude them from the memoization key to\n // prevent `afterExecute` from being triggered un-necessarily.\n const memo = {\n options: { ...updatedOptions, onError: undefined, onCompleted: undefined },\n context,\n tick,\n };\n\n const result = useDeepMemo(\n () => (lazy ? queryData.executeLazy() : queryData.execute()),\n memo\n );\n\n const queryResult = lazy\n ? (result as QueryTuple)[1]\n : (result as QueryResult);\n\n useEffect(() => {\n // We only need one instance of the `QueryData` class, so we'll store it\n // as a ref to make it available on subsequent renders.\n if (!queryDataRef.current) {\n queryDataRef.current = queryData;\n }\n\n return () => queryData.cleanup();\n }, []);\n\n useEffect(() => queryData.afterExecute({ lazy }), [\n queryResult.loading,\n queryResult.networkStatus,\n queryResult.error,\n queryResult.data,\n ]);\n\n return result;\n}\n","import { useRef } from 'react';\nimport { equal as isEqual } from '@wry/equality';\n\n/**\n * Memoize a result using deep equality. This hook has two advantages over\n * React.useMemo: it uses deep equality to compare memo keys, and it guarantees\n * that the memo function will only be called if the keys are unequal.\n * React.useMemo cannot be relied on to do this, since it is only a performance\n * optimization (see https://reactjs.org/docs/hooks-reference.html#usememo).\n */\nexport function useDeepMemo(\n memoFn: () => TValue,\n key: TKey\n): TValue {\n const ref = useRef<{ key: TKey; value: TValue }>();\n\n if (!ref.current || !isEqual(key, ref.current.key)) {\n ref.current = { key, value: memoFn() };\n }\n\n return ref.current.value;\n}\n","import { OperationVariables, QueryResult } from '@apollo/react-common';\nimport { DocumentNode } from 'graphql';\n\nimport { QueryHookOptions } from './types';\nimport { useBaseQuery } from './utils/useBaseQuery';\n\nexport function useQuery(\n query: DocumentNode,\n options?: QueryHookOptions\n) {\n return useBaseQuery(query, options, false) as QueryResult<\n TData,\n TVariables\n >;\n}\n","import { OperationVariables } from '@apollo/react-common';\nimport { DocumentNode } from 'graphql';\n\nimport { LazyQueryHookOptions, QueryTuple } from './types';\nimport { useBaseQuery } from './utils/useBaseQuery';\n\nexport function useLazyQuery(\n query: DocumentNode,\n options?: LazyQueryHookOptions\n) {\n return useBaseQuery(query, options, true) as QueryTuple<\n TData,\n TVariables\n >;\n}\n","import { ApolloError } from 'apollo-client';\nimport { equal as isEqual } from '@wry/equality';\nimport {\n ApolloContextValue,\n DocumentType,\n OperationVariables,\n ExecutionResult,\n MutationFunctionOptions,\n MutationResult\n} from '@apollo/react-common';\n\nimport { MutationOptions, MutationTuple } from '../types';\nimport { OperationData } from './OperationData';\n\nexport class MutationData<\n TData = any,\n TVariables = OperationVariables\n> extends OperationData {\n private mostRecentMutationId: number;\n private result: MutationResult;\n private previousResult?: MutationResult;\n private setResult: (result: MutationResult) => any;\n\n constructor({\n options,\n context,\n result,\n setResult\n }: {\n options: MutationOptions;\n context: ApolloContextValue;\n result: MutationResult;\n setResult: (result: MutationResult) => any;\n }) {\n super(options, context);\n this.verifyDocumentType(options.mutation, DocumentType.Mutation);\n this.result = result;\n this.setResult = setResult;\n this.mostRecentMutationId = 0;\n }\n\n public execute(result: MutationResult) {\n this.isMounted = true;\n this.verifyDocumentType(this.getOptions().mutation, DocumentType.Mutation);\n result.client = this.refreshClient().client;\n return [this.runMutation, result] as MutationTuple;\n }\n\n public afterExecute() {\n this.isMounted = true;\n return this.unmount.bind(this);\n }\n\n public cleanup() {\n // No cleanup required.\n }\n\n private runMutation = (\n mutationFunctionOptions: MutationFunctionOptions<\n TData,\n TVariables\n > = {} as MutationFunctionOptions\n ) => {\n this.onMutationStart();\n const mutationId = this.generateNewMutationId();\n\n return this.mutate(mutationFunctionOptions)\n .then((response: ExecutionResult) => {\n this.onMutationCompleted(response, mutationId);\n return response;\n })\n .catch((error: ApolloError) => {\n this.onMutationError(error, mutationId);\n if (!this.getOptions().onError) throw error;\n });\n };\n\n private mutate(\n mutationFunctionOptions: MutationFunctionOptions\n ) {\n const {\n mutation,\n variables,\n optimisticResponse,\n update,\n context: mutationContext = {},\n awaitRefetchQueries = false,\n fetchPolicy\n } = this.getOptions();\n const mutateOptions = { ...mutationFunctionOptions };\n\n const mutateVariables = Object.assign(\n {},\n variables,\n mutateOptions.variables\n );\n delete mutateOptions.variables;\n\n return this.refreshClient().client.mutate({\n mutation,\n optimisticResponse,\n refetchQueries:\n mutateOptions.refetchQueries || this.getOptions().refetchQueries,\n awaitRefetchQueries,\n update,\n context: mutationContext,\n fetchPolicy,\n variables: mutateVariables,\n ...mutateOptions\n });\n }\n\n private onMutationStart() {\n if (!this.result.loading && !this.getOptions().ignoreResults) {\n this.updateResult({\n loading: true,\n error: undefined,\n data: undefined,\n called: true\n });\n }\n }\n\n private onMutationCompleted(\n response: ExecutionResult,\n mutationId: number\n ) {\n const { onCompleted, ignoreResults } = this.getOptions();\n\n const { data, errors } = response;\n const error =\n errors && errors.length > 0\n ? new ApolloError({ graphQLErrors: errors })\n : undefined;\n\n const callOncomplete = () =>\n onCompleted ? onCompleted(data as TData) : null;\n\n if (this.isMostRecentMutation(mutationId) && !ignoreResults) {\n this.updateResult({\n called: true,\n loading: false,\n data,\n error\n });\n }\n callOncomplete();\n }\n\n private onMutationError(error: ApolloError, mutationId: number) {\n const { onError } = this.getOptions();\n\n if (this.isMostRecentMutation(mutationId)) {\n this.updateResult({\n loading: false,\n error,\n data: undefined,\n called: true\n });\n }\n\n if (onError) {\n onError(error);\n }\n }\n\n private generateNewMutationId(): number {\n return ++this.mostRecentMutationId;\n }\n\n private isMostRecentMutation(mutationId: number) {\n return this.mostRecentMutationId === mutationId;\n }\n\n private updateResult(result: MutationResult) {\n if (\n this.isMounted &&\n (!this.previousResult || !isEqual(this.previousResult, result))\n ) {\n this.setResult(result);\n this.previousResult = result;\n }\n }\n}\n","import { useContext, useState, useRef, useEffect } from 'react';\nimport { getApolloContext, OperationVariables } from '@apollo/react-common';\nimport { DocumentNode } from 'graphql';\n\nimport { MutationHookOptions, MutationTuple } from './types';\nimport { MutationData } from './data/MutationData';\n\nexport function useMutation(\n mutation: DocumentNode,\n options?: MutationHookOptions\n): MutationTuple {\n const context = useContext(getApolloContext());\n const [result, setResult] = useState({ called: false, loading: false });\n const updatedOptions = options ? { ...options, mutation } : { mutation };\n\n const mutationDataRef = useRef>();\n function getMutationDataRef() {\n if (!mutationDataRef.current) {\n mutationDataRef.current = new MutationData({\n options: updatedOptions,\n context,\n result,\n setResult\n });\n }\n return mutationDataRef.current;\n }\n\n const mutationData = getMutationDataRef();\n mutationData.setOptions(updatedOptions);\n mutationData.context = context;\n\n useEffect(() => mutationData.afterExecute());\n\n return mutationData.execute(result);\n}\n","import { equal as isEqual } from '@wry/equality';\nimport { ApolloContextValue, SubscriptionResult } from '@apollo/react-common';\n\nimport { OperationData } from './OperationData';\nimport { SubscriptionCurrentObservable, SubscriptionOptions } from '../types';\n\nexport class SubscriptionData<\n TData = any,\n TVariables = any\n> extends OperationData> {\n private setResult: any;\n private currentObservable: SubscriptionCurrentObservable = {};\n\n constructor({\n options,\n context,\n setResult\n }: {\n options: SubscriptionOptions;\n context: ApolloContextValue;\n setResult: any;\n }) {\n super(options, context);\n this.setResult = setResult;\n this.initialize(options);\n }\n\n public execute(result: SubscriptionResult) {\n if (this.getOptions().skip === true) {\n this.cleanup();\n return {\n loading: false,\n error: undefined,\n data: undefined,\n variables: this.getOptions().variables\n };\n }\n\n let currentResult = result;\n if (this.refreshClient().isNew) {\n currentResult = this.getLoadingResult();\n }\n\n let { shouldResubscribe } = this.getOptions();\n if (typeof shouldResubscribe === 'function') {\n shouldResubscribe = !!shouldResubscribe(this.getOptions());\n }\n\n if (\n shouldResubscribe !== false &&\n this.previousOptions &&\n Object.keys(this.previousOptions).length > 0 &&\n (this.previousOptions.subscription !== this.getOptions().subscription ||\n !isEqual(this.previousOptions.variables, this.getOptions().variables) ||\n this.previousOptions.skip !== this.getOptions().skip)\n ) {\n this.cleanup();\n currentResult = this.getLoadingResult();\n }\n\n this.initialize(this.getOptions());\n this.startSubscription();\n\n this.previousOptions = this.getOptions();\n return { ...currentResult, variables: this.getOptions().variables };\n }\n\n public afterExecute() {\n this.isMounted = true;\n }\n\n public cleanup() {\n this.endSubscription();\n delete this.currentObservable.query;\n }\n\n private initialize(options: SubscriptionOptions) {\n if (this.currentObservable.query || this.getOptions().skip === true) return;\n this.currentObservable.query = this.refreshClient().client.subscribe({\n query: options.subscription,\n variables: options.variables,\n fetchPolicy: options.fetchPolicy\n });\n }\n\n private startSubscription() {\n if (this.currentObservable.subscription) return;\n this.currentObservable.subscription = this.currentObservable.query!.subscribe(\n {\n next: this.updateCurrentData.bind(this),\n error: this.updateError.bind(this),\n complete: this.completeSubscription.bind(this)\n }\n );\n }\n\n private getLoadingResult() {\n return {\n loading: true,\n error: undefined,\n data: undefined\n };\n }\n\n private updateResult(result: SubscriptionResult) {\n if (this.isMounted) {\n this.setResult(result);\n }\n }\n\n private updateCurrentData(result: SubscriptionResult) {\n const { onSubscriptionData } = this.getOptions();\n\n this.updateResult({\n data: result.data,\n loading: false,\n error: undefined\n });\n\n if (onSubscriptionData) {\n onSubscriptionData({\n client: this.refreshClient().client,\n subscriptionData: result\n });\n }\n }\n\n private updateError(error: any) {\n this.updateResult({\n error,\n loading: false\n });\n }\n\n private completeSubscription() {\n const { onSubscriptionComplete } = this.getOptions();\n if (onSubscriptionComplete) onSubscriptionComplete();\n this.endSubscription();\n }\n\n private endSubscription() {\n if (this.currentObservable.subscription) {\n this.currentObservable.subscription.unsubscribe();\n delete this.currentObservable.subscription;\n }\n }\n}\n","import React from 'react';\nimport { invariant } from 'ts-invariant';\nimport { getApolloContext } from '@apollo/react-common';\nimport ApolloClient from 'apollo-client';\n\nexport function useApolloClient(): ApolloClient {\n const { client } = React.useContext(getApolloContext());\n invariant(\n client,\n 'No Apollo Client instance can be found. Please ensure that you ' +\n 'have called `ApolloProvider` higher up in your tree.'\n );\n return client!;\n}\n","import { ObservableQuery } from 'apollo-client';\nimport { QueryOptions } from '../types';\nimport { DocumentNode } from 'graphql';\nimport { QueryData } from '../data/QueryData';\n\ntype QueryInfo = {\n seen: boolean;\n observable: ObservableQuery | null;\n};\n\nfunction makeDefaultQueryInfo(): QueryInfo {\n return {\n seen: false,\n observable: null\n };\n}\n\nexport class RenderPromises {\n // Map from Query component instances to pending fetchData promises.\n private queryPromises = new Map, Promise>();\n\n // Two-layered map from (query document, stringified variables) to QueryInfo\n // objects. These QueryInfo objects are intended to survive through the whole\n // getMarkupFromTree process, whereas specific Query instances do not survive\n // beyond a single call to renderToStaticMarkup.\n private queryInfoTrie = new Map>();\n\n // Registers the server side rendered observable.\n public registerSSRObservable(\n observable: ObservableQuery,\n props: QueryOptions\n ) {\n this.lookupQueryInfo(props).observable = observable;\n }\n\n // Get's the cached observable that matches the SSR Query instances query and variables.\n public getSSRObservable(\n props: QueryOptions\n ) {\n return this.lookupQueryInfo(props).observable;\n }\n\n public addQueryPromise(\n queryInstance: QueryData,\n finish: () => React.ReactNode\n ): React.ReactNode {\n const info = this.lookupQueryInfo(queryInstance.getOptions());\n if (!info.seen) {\n this.queryPromises.set(\n queryInstance.getOptions(),\n new Promise(resolve => {\n resolve(queryInstance.fetchData());\n })\n );\n // Render null to abandon this subtree for this rendering, so that we\n // can wait for the data to arrive.\n return null;\n }\n return finish();\n }\n\n public hasPromises() {\n return this.queryPromises.size > 0;\n }\n\n public consumeAndAwaitPromises() {\n const promises: Promise[] = [];\n this.queryPromises.forEach((promise, queryInstance) => {\n // Make sure we never try to call fetchData for this query document and\n // these variables again. Since the queryInstance objects change with\n // every rendering, deduplicating them by query and variables is the\n // best we can do. If a different Query component happens to have the\n // same query document and variables, it will be immediately rendered\n // by calling finish() in addQueryPromise, which could result in the\n // rendering of an unwanted loading state, but that's not nearly as bad\n // as getting stuck in an infinite rendering loop because we kept calling\n // queryInstance.fetchData for the same Query component indefinitely.\n this.lookupQueryInfo(queryInstance).seen = true;\n promises.push(promise);\n });\n this.queryPromises.clear();\n return Promise.all(promises);\n }\n\n private lookupQueryInfo(\n props: QueryOptions\n ): QueryInfo {\n const { queryInfoTrie } = this;\n const { query, variables } = props;\n const varMap = queryInfoTrie.get(query) || new Map();\n if (!queryInfoTrie.has(query)) queryInfoTrie.set(query, varMap);\n const variablesString = JSON.stringify(variables);\n const info = varMap.get(variablesString) || makeDefaultQueryInfo();\n if (!varMap.has(variablesString)) varMap.set(variablesString, info);\n return info;\n }\n}\n","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","var parser = require('graphql/language/parser');\n\nvar parse = parser.parse;\n\n// Strip insignificant whitespace\n// Note that this could do a lot more, such as reorder fields etc.\nfunction normalize(string) {\n return string.replace(/[\\s,]+/g, ' ').trim();\n}\n\n// A map docString -> graphql document\nvar docCache = {};\n\n// A map fragmentName -> [normalized source]\nvar fragmentSourceMap = {};\n\nfunction cacheKeyFromLoc(loc) {\n return normalize(loc.source.body.substring(loc.start, loc.end));\n}\n\n// For testing.\nfunction resetCaches() {\n docCache = {};\n fragmentSourceMap = {};\n}\n\n// Take a unstripped parsed document (query/mutation or even fragment), and\n// check all fragment definitions, checking for name->source uniqueness.\n// We also want to make sure only unique fragments exist in the document.\nvar printFragmentWarnings = true;\nfunction processFragments(ast) {\n var astFragmentMap = {};\n var definitions = [];\n\n for (var i = 0; i < ast.definitions.length; i++) {\n var fragmentDefinition = ast.definitions[i];\n\n if (fragmentDefinition.kind === 'FragmentDefinition') {\n var fragmentName = fragmentDefinition.name.value;\n var sourceKey = cacheKeyFromLoc(fragmentDefinition.loc);\n\n // We know something about this fragment\n if (fragmentSourceMap.hasOwnProperty(fragmentName) && !fragmentSourceMap[fragmentName][sourceKey]) {\n\n // this is a problem because the app developer is trying to register another fragment with\n // the same name as one previously registered. So, we tell them about it.\n if (printFragmentWarnings) {\n console.warn(\"Warning: fragment with name \" + fragmentName + \" already exists.\\n\"\n + \"graphql-tag enforces all fragment names across your application to be unique; read more about\\n\"\n + \"this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names\");\n }\n\n fragmentSourceMap[fragmentName][sourceKey] = true;\n\n } else if (!fragmentSourceMap.hasOwnProperty(fragmentName)) {\n fragmentSourceMap[fragmentName] = {};\n fragmentSourceMap[fragmentName][sourceKey] = true;\n }\n\n if (!astFragmentMap[sourceKey]) {\n astFragmentMap[sourceKey] = true;\n definitions.push(fragmentDefinition);\n }\n } else {\n definitions.push(fragmentDefinition);\n }\n }\n\n ast.definitions = definitions;\n return ast;\n}\n\nfunction disableFragmentWarnings() {\n printFragmentWarnings = false;\n}\n\nfunction stripLoc(doc, removeLocAtThisLevel) {\n var docType = Object.prototype.toString.call(doc);\n\n if (docType === '[object Array]') {\n return doc.map(function (d) {\n return stripLoc(d, removeLocAtThisLevel);\n });\n }\n\n if (docType !== '[object Object]') {\n throw new Error('Unexpected input.');\n }\n\n // We don't want to remove the root loc field so we can use it\n // for fragment substitution (see below)\n if (removeLocAtThisLevel && doc.loc) {\n delete doc.loc;\n }\n\n // https://github.com/apollographql/graphql-tag/issues/40\n if (doc.loc) {\n delete doc.loc.startToken;\n delete doc.loc.endToken;\n }\n\n var keys = Object.keys(doc);\n var key;\n var value;\n var valueType;\n\n for (key in keys) {\n if (keys.hasOwnProperty(key)) {\n value = doc[keys[key]];\n valueType = Object.prototype.toString.call(value);\n\n if (valueType === '[object Object]' || valueType === '[object Array]') {\n doc[keys[key]] = stripLoc(value, true);\n }\n }\n }\n\n return doc;\n}\n\nvar experimentalFragmentVariables = false;\nfunction parseDocument(doc) {\n var cacheKey = normalize(doc);\n\n if (docCache[cacheKey]) {\n return docCache[cacheKey];\n }\n\n var parsed = parse(doc, { experimentalFragmentVariables: experimentalFragmentVariables });\n if (!parsed || parsed.kind !== 'Document') {\n throw new Error('Not a valid GraphQL document.');\n }\n\n // check that all \"new\" fragments inside the documents are consistent with\n // existing fragments of the same name\n parsed = processFragments(parsed);\n parsed = stripLoc(parsed, false);\n docCache[cacheKey] = parsed;\n\n return parsed;\n}\n\nfunction enableExperimentalFragmentVariables() {\n experimentalFragmentVariables = true;\n}\n\nfunction disableExperimentalFragmentVariables() {\n experimentalFragmentVariables = false;\n}\n\n// XXX This should eventually disallow arbitrary string interpolation, like Relay does\nfunction gql(/* arguments */) {\n var args = Array.prototype.slice.call(arguments);\n\n var literals = args[0];\n\n // We always get literals[0] and then matching post literals for each arg given\n var result = (typeof(literals) === \"string\") ? literals : literals[0];\n\n for (var i = 1; i < args.length; i++) {\n if (args[i] && args[i].kind && args[i].kind === 'Document') {\n result += args[i].loc.source.body;\n } else {\n result += args[i];\n }\n\n result += literals[i];\n }\n\n return parseDocument(result);\n}\n\n// Support typescript, which isn't as nice as Babel about default exports\ngql.default = gql;\ngql.resetCaches = resetCaches;\ngql.disableFragmentWarnings = disableFragmentWarnings;\ngql.enableExperimentalFragmentVariables = enableExperimentalFragmentVariables;\ngql.disableExperimentalFragmentVariables = disableExperimentalFragmentVariables;\n\nmodule.exports = gql;\n","module.exports = require(\"regenerator-runtime\");\n","import {\n DirectiveNode,\n FieldNode,\n IntValueNode,\n FloatValueNode,\n StringValueNode,\n BooleanValueNode,\n ObjectValueNode,\n ListValueNode,\n EnumValueNode,\n NullValueNode,\n VariableNode,\n InlineFragmentNode,\n ValueNode,\n SelectionNode,\n NameNode,\n} from 'graphql';\n\nimport stringify from 'fast-json-stable-stringify';\nimport { InvariantError } from 'ts-invariant';\n\nexport interface IdValue {\n type: 'id';\n id: string;\n generated: boolean;\n typename: string | undefined;\n}\n\nexport interface JsonValue {\n type: 'json';\n json: any;\n}\n\nexport type ListValue = Array;\n\nexport type StoreValue =\n | number\n | string\n | string[]\n | IdValue\n | ListValue\n | JsonValue\n | null\n | undefined\n | void\n | Object;\n\nexport type ScalarValue = StringValueNode | BooleanValueNode | EnumValueNode;\n\nexport function isScalarValue(value: ValueNode): value is ScalarValue {\n return ['StringValue', 'BooleanValue', 'EnumValue'].indexOf(value.kind) > -1;\n}\n\nexport type NumberValue = IntValueNode | FloatValueNode;\n\nexport function isNumberValue(value: ValueNode): value is NumberValue {\n return ['IntValue', 'FloatValue'].indexOf(value.kind) > -1;\n}\n\nfunction isStringValue(value: ValueNode): value is StringValueNode {\n return value.kind === 'StringValue';\n}\n\nfunction isBooleanValue(value: ValueNode): value is BooleanValueNode {\n return value.kind === 'BooleanValue';\n}\n\nfunction isIntValue(value: ValueNode): value is IntValueNode {\n return value.kind === 'IntValue';\n}\n\nfunction isFloatValue(value: ValueNode): value is FloatValueNode {\n return value.kind === 'FloatValue';\n}\n\nfunction isVariable(value: ValueNode): value is VariableNode {\n return value.kind === 'Variable';\n}\n\nfunction isObjectValue(value: ValueNode): value is ObjectValueNode {\n return value.kind === 'ObjectValue';\n}\n\nfunction isListValue(value: ValueNode): value is ListValueNode {\n return value.kind === 'ListValue';\n}\n\nfunction isEnumValue(value: ValueNode): value is EnumValueNode {\n return value.kind === 'EnumValue';\n}\n\nfunction isNullValue(value: ValueNode): value is NullValueNode {\n return value.kind === 'NullValue';\n}\n\nexport function valueToObjectRepresentation(\n argObj: any,\n name: NameNode,\n value: ValueNode,\n variables?: Object,\n) {\n if (isIntValue(value) || isFloatValue(value)) {\n argObj[name.value] = Number(value.value);\n } else if (isBooleanValue(value) || isStringValue(value)) {\n argObj[name.value] = value.value;\n } else if (isObjectValue(value)) {\n const nestedArgObj = {};\n value.fields.map(obj =>\n valueToObjectRepresentation(nestedArgObj, obj.name, obj.value, variables),\n );\n argObj[name.value] = nestedArgObj;\n } else if (isVariable(value)) {\n const variableValue = (variables || ({} as any))[value.name.value];\n argObj[name.value] = variableValue;\n } else if (isListValue(value)) {\n argObj[name.value] = value.values.map(listValue => {\n const nestedArgArrayObj = {};\n valueToObjectRepresentation(\n nestedArgArrayObj,\n name,\n listValue,\n variables,\n );\n return (nestedArgArrayObj as any)[name.value];\n });\n } else if (isEnumValue(value)) {\n argObj[name.value] = (value as EnumValueNode).value;\n } else if (isNullValue(value)) {\n argObj[name.value] = null;\n } else {\n throw new InvariantError(\n `The inline argument \"${name.value}\" of kind \"${(value as any).kind}\"` +\n 'is not supported. Use variables instead of inline arguments to ' +\n 'overcome this limitation.',\n );\n }\n}\n\nexport function storeKeyNameFromField(\n field: FieldNode,\n variables?: Object,\n): string {\n let directivesObj: any = null;\n if (field.directives) {\n directivesObj = {};\n field.directives.forEach(directive => {\n directivesObj[directive.name.value] = {};\n\n if (directive.arguments) {\n directive.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(\n directivesObj[directive.name.value],\n name,\n value,\n variables,\n ),\n );\n }\n });\n }\n\n let argObj: any = null;\n if (field.arguments && field.arguments.length) {\n argObj = {};\n field.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(argObj, name, value, variables),\n );\n }\n\n return getStoreKeyName(field.name.value, argObj, directivesObj);\n}\n\nexport type Directives = {\n [directiveName: string]: {\n [argName: string]: any;\n };\n};\n\nconst KNOWN_DIRECTIVES: string[] = [\n 'connection',\n 'include',\n 'skip',\n 'client',\n 'rest',\n 'export',\n];\n\nexport function getStoreKeyName(\n fieldName: string,\n args?: Object,\n directives?: Directives,\n): string {\n if (\n directives &&\n directives['connection'] &&\n directives['connection']['key']\n ) {\n if (\n directives['connection']['filter'] &&\n (directives['connection']['filter'] as string[]).length > 0\n ) {\n const filterKeys = directives['connection']['filter']\n ? (directives['connection']['filter'] as string[])\n : [];\n filterKeys.sort();\n\n const queryArgs = args as { [key: string]: any };\n const filteredArgs = {} as { [key: string]: any };\n filterKeys.forEach(key => {\n filteredArgs[key] = queryArgs[key];\n });\n\n return `${directives['connection']['key']}(${JSON.stringify(\n filteredArgs,\n )})`;\n } else {\n return directives['connection']['key'];\n }\n }\n\n let completeFieldName: string = fieldName;\n\n if (args) {\n // We can't use `JSON.stringify` here since it's non-deterministic,\n // and can lead to different store key names being created even though\n // the `args` object used during creation has the same properties/values.\n const stringifiedArgs: string = stringify(args);\n completeFieldName += `(${stringifiedArgs})`;\n }\n\n if (directives) {\n Object.keys(directives).forEach(key => {\n if (KNOWN_DIRECTIVES.indexOf(key) !== -1) return;\n if (directives[key] && Object.keys(directives[key]).length) {\n completeFieldName += `@${key}(${JSON.stringify(directives[key])})`;\n } else {\n completeFieldName += `@${key}`;\n }\n });\n }\n\n return completeFieldName;\n}\n\nexport function argumentsObjectFromField(\n field: FieldNode | DirectiveNode,\n variables: Object,\n): Object {\n if (field.arguments && field.arguments.length) {\n const argObj: Object = {};\n field.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(argObj, name, value, variables),\n );\n return argObj;\n }\n\n return null;\n}\n\nexport function resultKeyNameFromField(field: FieldNode): string {\n return field.alias ? field.alias.value : field.name.value;\n}\n\nexport function isField(selection: SelectionNode): selection is FieldNode {\n return selection.kind === 'Field';\n}\n\nexport function isInlineFragment(\n selection: SelectionNode,\n): selection is InlineFragmentNode {\n return selection.kind === 'InlineFragment';\n}\n\nexport function isIdValue(idObject: StoreValue): idObject is IdValue {\n return idObject &&\n (idObject as IdValue | JsonValue).type === 'id' &&\n typeof (idObject as IdValue).generated === 'boolean';\n}\n\nexport type IdConfig = {\n id: string;\n typename: string | undefined;\n};\n\nexport function toIdValue(\n idConfig: string | IdConfig,\n generated = false,\n): IdValue {\n return {\n type: 'id',\n generated,\n ...(typeof idConfig === 'string'\n ? { id: idConfig, typename: undefined }\n : idConfig),\n };\n}\n\nexport function isJsonValue(jsonObject: StoreValue): jsonObject is JsonValue {\n return (\n jsonObject != null &&\n typeof jsonObject === 'object' &&\n (jsonObject as IdValue | JsonValue).type === 'json'\n );\n}\n\nfunction defaultValueFromVariable(node: VariableNode) {\n throw new InvariantError(`Variable nodes are not supported by valueFromNode`);\n}\n\nexport type VariableValue = (node: VariableNode) => any;\n\n/**\n * Evaluate a ValueNode and yield its value in its natural JS form.\n */\nexport function valueFromNode(\n node: ValueNode,\n onVariable: VariableValue = defaultValueFromVariable,\n): any {\n switch (node.kind) {\n case 'Variable':\n return onVariable(node);\n case 'NullValue':\n return null;\n case 'IntValue':\n return parseInt(node.value, 10);\n case 'FloatValue':\n return parseFloat(node.value);\n case 'ListValue':\n return node.values.map(v => valueFromNode(v, onVariable));\n case 'ObjectValue': {\n const value: { [key: string]: any } = {};\n for (const field of node.fields) {\n value[field.name.value] = valueFromNode(field.value, onVariable);\n }\n return value;\n }\n default:\n return node.value;\n }\n}\n","// Provides the methods that allow QueryManager to handle the `skip` and\n// `include` directives within GraphQL.\nimport {\n FieldNode,\n SelectionNode,\n VariableNode,\n BooleanValueNode,\n DirectiveNode,\n DocumentNode,\n ArgumentNode,\n ValueNode,\n} from 'graphql';\n\nimport { visit } from 'graphql/language/visitor';\n\nimport { invariant } from 'ts-invariant';\n\nimport { argumentsObjectFromField } from './storeUtils';\n\nexport type DirectiveInfo = {\n [fieldName: string]: { [argName: string]: any };\n};\n\nexport function getDirectiveInfoFromField(\n field: FieldNode,\n variables: Object,\n): DirectiveInfo {\n if (field.directives && field.directives.length) {\n const directiveObj: DirectiveInfo = {};\n field.directives.forEach((directive: DirectiveNode) => {\n directiveObj[directive.name.value] = argumentsObjectFromField(\n directive,\n variables,\n );\n });\n return directiveObj;\n }\n return null;\n}\n\nexport function shouldInclude(\n selection: SelectionNode,\n variables: { [name: string]: any } = {},\n): boolean {\n return getInclusionDirectives(\n selection.directives,\n ).every(({ directive, ifArgument }) => {\n let evaledValue: boolean = false;\n if (ifArgument.value.kind === 'Variable') {\n evaledValue = variables[(ifArgument.value as VariableNode).name.value];\n invariant(\n evaledValue !== void 0,\n `Invalid variable referenced in @${directive.name.value} directive.`,\n );\n } else {\n evaledValue = (ifArgument.value as BooleanValueNode).value;\n }\n return directive.name.value === 'skip' ? !evaledValue : evaledValue;\n });\n}\n\nexport function getDirectiveNames(doc: DocumentNode) {\n const names: string[] = [];\n\n visit(doc, {\n Directive(node) {\n names.push(node.name.value);\n },\n });\n\n return names;\n}\n\nexport function hasDirectives(names: string[], doc: DocumentNode) {\n return getDirectiveNames(doc).some(\n (name: string) => names.indexOf(name) > -1,\n );\n}\n\nexport function hasClientExports(document: DocumentNode) {\n return (\n document &&\n hasDirectives(['client'], document) &&\n hasDirectives(['export'], document)\n );\n}\n\nexport type InclusionDirectives = Array<{\n directive: DirectiveNode;\n ifArgument: ArgumentNode;\n}>;\n\nfunction isInclusionDirective({ name: { value } }: DirectiveNode): boolean {\n return value === 'skip' || value === 'include';\n}\n\nexport function getInclusionDirectives(\n directives: ReadonlyArray,\n): InclusionDirectives {\n return directives ? directives.filter(isInclusionDirective).map(directive => {\n const directiveArguments = directive.arguments;\n const directiveName = directive.name.value;\n\n invariant(\n directiveArguments && directiveArguments.length === 1,\n `Incorrect number of arguments for the @${directiveName} directive.`,\n );\n\n const ifArgument = directiveArguments[0];\n invariant(\n ifArgument.name && ifArgument.name.value === 'if',\n `Invalid argument for the @${directiveName} directive.`,\n );\n\n const ifValue: ValueNode = ifArgument.value;\n\n // means it has to be a variable value if this is a valid @skip or @include directive\n invariant(\n ifValue &&\n (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'),\n `Argument for the @${directiveName} directive must be a variable or a boolean value.`,\n );\n\n return { directive, ifArgument };\n }) : [];\n}\n\n","import { DocumentNode, FragmentDefinitionNode } from 'graphql';\nimport { invariant, InvariantError } from 'ts-invariant';\n\n/**\n * Returns a query document which adds a single query operation that only\n * spreads the target fragment inside of it.\n *\n * So for example a document of:\n *\n * ```graphql\n * fragment foo on Foo { a b c }\n * ```\n *\n * Turns into:\n *\n * ```graphql\n * { ...foo }\n *\n * fragment foo on Foo { a b c }\n * ```\n *\n * The target fragment will either be the only fragment in the document, or a\n * fragment specified by the provided `fragmentName`. If there is more than one\n * fragment, but a `fragmentName` was not defined then an error will be thrown.\n */\nexport function getFragmentQueryDocument(\n document: DocumentNode,\n fragmentName?: string,\n): DocumentNode {\n let actualFragmentName = fragmentName;\n\n // Build an array of all our fragment definitions that will be used for\n // validations. We also do some validations on the other definitions in the\n // document while building this list.\n const fragments: Array = [];\n document.definitions.forEach(definition => {\n // Throw an error if we encounter an operation definition because we will\n // define our own operation definition later on.\n if (definition.kind === 'OperationDefinition') {\n throw new InvariantError(\n `Found a ${definition.operation} operation${\n definition.name ? ` named '${definition.name.value}'` : ''\n }. ` +\n 'No operations are allowed when using a fragment as a query. Only fragments are allowed.',\n );\n }\n // Add our definition to the fragments array if it is a fragment\n // definition.\n if (definition.kind === 'FragmentDefinition') {\n fragments.push(definition);\n }\n });\n\n // If the user did not give us a fragment name then let us try to get a\n // name from a single fragment in the definition.\n if (typeof actualFragmentName === 'undefined') {\n invariant(\n fragments.length === 1,\n `Found ${\n fragments.length\n } fragments. \\`fragmentName\\` must be provided when there is not exactly 1 fragment.`,\n );\n actualFragmentName = fragments[0].name.value;\n }\n\n // Generate a query document with an operation that simply spreads the\n // fragment inside of it.\n const query: DocumentNode = {\n ...document,\n definitions: [\n {\n kind: 'OperationDefinition',\n operation: 'query',\n selectionSet: {\n kind: 'SelectionSet',\n selections: [\n {\n kind: 'FragmentSpread',\n name: {\n kind: 'Name',\n value: actualFragmentName,\n },\n },\n ],\n },\n },\n ...document.definitions,\n ],\n };\n\n return query;\n}\n","/**\n * Adds the properties of one or more source objects to a target object. Works exactly like\n * `Object.assign`, but as a utility to maintain support for IE 11.\n *\n * @see https://github.com/apollostack/apollo-client/pull/1009\n */\nexport function assign(a: A, b: B): A & B;\nexport function assign(a: A, b: B, c: C): A & B & C;\nexport function assign(a: A, b: B, c: C, d: D): A & B & C & D;\nexport function assign(\n a: A,\n b: B,\n c: C,\n d: D,\n e: E,\n): A & B & C & D & E;\nexport function assign(target: any, ...sources: Array): any;\nexport function assign(\n target: { [key: string]: any },\n ...sources: Array<{ [key: string]: any }>\n): { [key: string]: any } {\n sources.forEach(source => {\n if (typeof source === 'undefined' || source === null) {\n return;\n }\n Object.keys(source).forEach(key => {\n target[key] = source[key];\n });\n });\n return target;\n}\n","import {\n DocumentNode,\n OperationDefinitionNode,\n FragmentDefinitionNode,\n ValueNode,\n} from 'graphql';\n\nimport { invariant, InvariantError } from 'ts-invariant';\n\nimport { assign } from './util/assign';\n\nimport { valueToObjectRepresentation, JsonValue } from './storeUtils';\n\nexport function getMutationDefinition(\n doc: DocumentNode,\n): OperationDefinitionNode {\n checkDocument(doc);\n\n let mutationDef: OperationDefinitionNode | null = doc.definitions.filter(\n definition =>\n definition.kind === 'OperationDefinition' &&\n definition.operation === 'mutation',\n )[0] as OperationDefinitionNode;\n\n invariant(mutationDef, 'Must contain a mutation definition.');\n\n return mutationDef;\n}\n\n// Checks the document for errors and throws an exception if there is an error.\nexport function checkDocument(doc: DocumentNode) {\n invariant(\n doc && doc.kind === 'Document',\n `Expecting a parsed GraphQL document. Perhaps you need to wrap the query \\\nstring in a \"gql\" tag? http://docs.apollostack.com/apollo-client/core.html#gql`,\n );\n\n const operations = doc.definitions\n .filter(d => d.kind !== 'FragmentDefinition')\n .map(definition => {\n if (definition.kind !== 'OperationDefinition') {\n throw new InvariantError(\n `Schema type definitions not allowed in queries. Found: \"${\n definition.kind\n }\"`,\n );\n }\n return definition;\n });\n\n invariant(\n operations.length <= 1,\n `Ambiguous GraphQL document: contains ${operations.length} operations`,\n );\n\n return doc;\n}\n\nexport function getOperationDefinition(\n doc: DocumentNode,\n): OperationDefinitionNode | undefined {\n checkDocument(doc);\n return doc.definitions.filter(\n definition => definition.kind === 'OperationDefinition',\n )[0] as OperationDefinitionNode;\n}\n\nexport function getOperationDefinitionOrDie(\n document: DocumentNode,\n): OperationDefinitionNode {\n const def = getOperationDefinition(document);\n invariant(def, `GraphQL document is missing an operation`);\n return def;\n}\n\nexport function getOperationName(doc: DocumentNode): string | null {\n return (\n doc.definitions\n .filter(\n definition =>\n definition.kind === 'OperationDefinition' && definition.name,\n )\n .map((x: OperationDefinitionNode) => x.name.value)[0] || null\n );\n}\n\n// Returns the FragmentDefinitions from a particular document as an array\nexport function getFragmentDefinitions(\n doc: DocumentNode,\n): FragmentDefinitionNode[] {\n return doc.definitions.filter(\n definition => definition.kind === 'FragmentDefinition',\n ) as FragmentDefinitionNode[];\n}\n\nexport function getQueryDefinition(doc: DocumentNode): OperationDefinitionNode {\n const queryDef = getOperationDefinition(doc) as OperationDefinitionNode;\n\n invariant(\n queryDef && queryDef.operation === 'query',\n 'Must contain a query definition.',\n );\n\n return queryDef;\n}\n\nexport function getFragmentDefinition(\n doc: DocumentNode,\n): FragmentDefinitionNode {\n invariant(\n doc.kind === 'Document',\n `Expecting a parsed GraphQL document. Perhaps you need to wrap the query \\\nstring in a \"gql\" tag? http://docs.apollostack.com/apollo-client/core.html#gql`,\n );\n\n invariant(\n doc.definitions.length <= 1,\n 'Fragment must have exactly one definition.',\n );\n\n const fragmentDef = doc.definitions[0] as FragmentDefinitionNode;\n\n invariant(\n fragmentDef.kind === 'FragmentDefinition',\n 'Must be a fragment definition.',\n );\n\n return fragmentDef as FragmentDefinitionNode;\n}\n\n/**\n * Returns the first operation definition found in this document.\n * If no operation definition is found, the first fragment definition will be returned.\n * If no definitions are found, an error will be thrown.\n */\nexport function getMainDefinition(\n queryDoc: DocumentNode,\n): OperationDefinitionNode | FragmentDefinitionNode {\n checkDocument(queryDoc);\n\n let fragmentDefinition;\n\n for (let definition of queryDoc.definitions) {\n if (definition.kind === 'OperationDefinition') {\n const operation = (definition as OperationDefinitionNode).operation;\n if (\n operation === 'query' ||\n operation === 'mutation' ||\n operation === 'subscription'\n ) {\n return definition as OperationDefinitionNode;\n }\n }\n if (definition.kind === 'FragmentDefinition' && !fragmentDefinition) {\n // we do this because we want to allow multiple fragment definitions\n // to precede an operation definition.\n fragmentDefinition = definition as FragmentDefinitionNode;\n }\n }\n\n if (fragmentDefinition) {\n return fragmentDefinition;\n }\n\n throw new InvariantError(\n 'Expected a parsed GraphQL query with a query, mutation, subscription, or a fragment.',\n );\n}\n\n/**\n * This is an interface that describes a map from fragment names to fragment definitions.\n */\nexport interface FragmentMap {\n [fragmentName: string]: FragmentDefinitionNode;\n}\n\n// Utility function that takes a list of fragment definitions and makes a hash out of them\n// that maps the name of the fragment to the fragment definition.\nexport function createFragmentMap(\n fragments: FragmentDefinitionNode[] = [],\n): FragmentMap {\n const symTable: FragmentMap = {};\n fragments.forEach(fragment => {\n symTable[fragment.name.value] = fragment;\n });\n\n return symTable;\n}\n\nexport function getDefaultValues(\n definition: OperationDefinitionNode | undefined,\n): { [key: string]: JsonValue } {\n if (\n definition &&\n definition.variableDefinitions &&\n definition.variableDefinitions.length\n ) {\n const defaultValues = definition.variableDefinitions\n .filter(({ defaultValue }) => defaultValue)\n .map(\n ({ variable, defaultValue }): { [key: string]: JsonValue } => {\n const defaultValueObj: { [key: string]: JsonValue } = {};\n valueToObjectRepresentation(\n defaultValueObj,\n variable.name,\n defaultValue as ValueNode,\n );\n\n return defaultValueObj;\n },\n );\n\n return assign({}, ...defaultValues);\n }\n\n return {};\n}\n\n/**\n * Returns the names of all variables declared by the operation.\n */\nexport function variablesInOperation(\n operation: OperationDefinitionNode,\n): Set {\n const names = new Set();\n if (operation.variableDefinitions) {\n for (const definition of operation.variableDefinitions) {\n names.add(definition.variable.name.value);\n }\n }\n\n return names;\n}\n","export function filterInPlace(\n array: T[],\n test: (elem: T) => boolean,\n context?: any,\n): T[] {\n let target = 0;\n array.forEach(function (elem, i) {\n if (test.call(this, elem, i, array)) {\n array[target++] = elem;\n }\n }, context);\n array.length = target;\n return array;\n}\n","import {\n DocumentNode,\n SelectionNode,\n SelectionSetNode,\n OperationDefinitionNode,\n FieldNode,\n DirectiveNode,\n FragmentDefinitionNode,\n ArgumentNode,\n FragmentSpreadNode,\n VariableDefinitionNode,\n VariableNode,\n} from 'graphql';\nimport { visit } from 'graphql/language/visitor';\n\nimport {\n checkDocument,\n getOperationDefinition,\n getFragmentDefinition,\n getFragmentDefinitions,\n createFragmentMap,\n FragmentMap,\n getMainDefinition,\n} from './getFromAST';\nimport { filterInPlace } from './util/filterInPlace';\nimport { invariant } from 'ts-invariant';\nimport { isField, isInlineFragment } from './storeUtils';\n\nexport type RemoveNodeConfig = {\n name?: string;\n test?: (node: N) => boolean;\n remove?: boolean;\n};\n\nexport type GetNodeConfig = {\n name?: string;\n test?: (node: N) => boolean;\n};\n\nexport type RemoveDirectiveConfig = RemoveNodeConfig;\nexport type GetDirectiveConfig = GetNodeConfig;\nexport type RemoveArgumentsConfig = RemoveNodeConfig;\nexport type GetFragmentSpreadConfig = GetNodeConfig;\nexport type RemoveFragmentSpreadConfig = RemoveNodeConfig;\nexport type RemoveFragmentDefinitionConfig = RemoveNodeConfig<\n FragmentDefinitionNode\n>;\nexport type RemoveVariableDefinitionConfig = RemoveNodeConfig<\n VariableDefinitionNode\n>;\n\nconst TYPENAME_FIELD: FieldNode = {\n kind: 'Field',\n name: {\n kind: 'Name',\n value: '__typename',\n },\n};\n\nfunction isEmpty(\n op: OperationDefinitionNode | FragmentDefinitionNode,\n fragments: FragmentMap,\n): boolean {\n return op.selectionSet.selections.every(\n selection =>\n selection.kind === 'FragmentSpread' &&\n isEmpty(fragments[selection.name.value], fragments),\n );\n}\n\nfunction nullIfDocIsEmpty(doc: DocumentNode) {\n return isEmpty(\n getOperationDefinition(doc) || getFragmentDefinition(doc),\n createFragmentMap(getFragmentDefinitions(doc)),\n )\n ? null\n : doc;\n}\n\nfunction getDirectiveMatcher(\n directives: (RemoveDirectiveConfig | GetDirectiveConfig)[],\n) {\n return function directiveMatcher(directive: DirectiveNode) {\n return directives.some(\n dir =>\n (dir.name && dir.name === directive.name.value) ||\n (dir.test && dir.test(directive)),\n );\n };\n}\n\nexport function removeDirectivesFromDocument(\n directives: RemoveDirectiveConfig[],\n doc: DocumentNode,\n): DocumentNode | null {\n const variablesInUse: Record = Object.create(null);\n let variablesToRemove: RemoveArgumentsConfig[] = [];\n\n const fragmentSpreadsInUse: Record = Object.create(null);\n let fragmentSpreadsToRemove: RemoveFragmentSpreadConfig[] = [];\n\n let modifiedDoc = nullIfDocIsEmpty(\n visit(doc, {\n Variable: {\n enter(node, _key, parent) {\n // Store each variable that's referenced as part of an argument\n // (excluding operation definition variables), so we know which\n // variables are being used. If we later want to remove a variable\n // we'll fist check to see if it's being used, before continuing with\n // the removal.\n if (\n (parent as VariableDefinitionNode).kind !== 'VariableDefinition'\n ) {\n variablesInUse[node.name.value] = true;\n }\n },\n },\n\n Field: {\n enter(node) {\n if (directives && node.directives) {\n // If `remove` is set to true for a directive, and a directive match\n // is found for a field, remove the field as well.\n const shouldRemoveField = directives.some(\n directive => directive.remove,\n );\n\n if (\n shouldRemoveField &&\n node.directives &&\n node.directives.some(getDirectiveMatcher(directives))\n ) {\n if (node.arguments) {\n // Store field argument variables so they can be removed\n // from the operation definition.\n node.arguments.forEach(arg => {\n if (arg.value.kind === 'Variable') {\n variablesToRemove.push({\n name: (arg.value as VariableNode).name.value,\n });\n }\n });\n }\n\n if (node.selectionSet) {\n // Store fragment spread names so they can be removed from the\n // docuemnt.\n getAllFragmentSpreadsFromSelectionSet(node.selectionSet).forEach(\n frag => {\n fragmentSpreadsToRemove.push({\n name: frag.name.value,\n });\n },\n );\n }\n\n // Remove the field.\n return null;\n }\n }\n },\n },\n\n FragmentSpread: {\n enter(node) {\n // Keep track of referenced fragment spreads. This is used to\n // determine if top level fragment definitions should be removed.\n fragmentSpreadsInUse[node.name.value] = true;\n },\n },\n\n Directive: {\n enter(node) {\n // If a matching directive is found, remove it.\n if (getDirectiveMatcher(directives)(node)) {\n return null;\n }\n },\n },\n }),\n );\n\n // If we've removed fields with arguments, make sure the associated\n // variables are also removed from the rest of the document, as long as they\n // aren't being used elsewhere.\n if (\n modifiedDoc &&\n filterInPlace(variablesToRemove, v => !variablesInUse[v.name]).length\n ) {\n modifiedDoc = removeArgumentsFromDocument(variablesToRemove, modifiedDoc);\n }\n\n // If we've removed selection sets with fragment spreads, make sure the\n // associated fragment definitions are also removed from the rest of the\n // document, as long as they aren't being used elsewhere.\n if (\n modifiedDoc &&\n filterInPlace(fragmentSpreadsToRemove, fs => !fragmentSpreadsInUse[fs.name])\n .length\n ) {\n modifiedDoc = removeFragmentSpreadFromDocument(\n fragmentSpreadsToRemove,\n modifiedDoc,\n );\n }\n\n return modifiedDoc;\n}\n\nexport function addTypenameToDocument(doc: DocumentNode): DocumentNode {\n return visit(checkDocument(doc), {\n SelectionSet: {\n enter(node, _key, parent) {\n // Don't add __typename to OperationDefinitions.\n if (\n parent &&\n (parent as OperationDefinitionNode).kind === 'OperationDefinition'\n ) {\n return;\n }\n\n // No changes if no selections.\n const { selections } = node;\n if (!selections) {\n return;\n }\n\n // If selections already have a __typename, or are part of an\n // introspection query, do nothing.\n const skip = selections.some(selection => {\n return (\n isField(selection) &&\n (selection.name.value === '__typename' ||\n selection.name.value.lastIndexOf('__', 0) === 0)\n );\n });\n if (skip) {\n return;\n }\n\n // If this SelectionSet is @export-ed as an input variable, it should\n // not have a __typename field (see issue #4691).\n const field = parent as FieldNode;\n if (\n isField(field) &&\n field.directives &&\n field.directives.some(d => d.name.value === 'export')\n ) {\n return;\n }\n\n // Create and return a new SelectionSet with a __typename Field.\n return {\n ...node,\n selections: [...selections, TYPENAME_FIELD],\n };\n },\n },\n });\n}\n\nconst connectionRemoveConfig = {\n test: (directive: DirectiveNode) => {\n const willRemove = directive.name.value === 'connection';\n if (willRemove) {\n if (\n !directive.arguments ||\n !directive.arguments.some(arg => arg.name.value === 'key')\n ) {\n invariant.warn(\n 'Removing an @connection directive even though it does not have a key. ' +\n 'You may want to use the key parameter to specify a store key.',\n );\n }\n }\n\n return willRemove;\n },\n};\n\nexport function removeConnectionDirectiveFromDocument(doc: DocumentNode) {\n return removeDirectivesFromDocument(\n [connectionRemoveConfig],\n checkDocument(doc),\n );\n}\n\nfunction hasDirectivesInSelectionSet(\n directives: GetDirectiveConfig[],\n selectionSet: SelectionSetNode,\n nestedCheck = true,\n): boolean {\n return (\n selectionSet &&\n selectionSet.selections &&\n selectionSet.selections.some(selection =>\n hasDirectivesInSelection(directives, selection, nestedCheck),\n )\n );\n}\n\nfunction hasDirectivesInSelection(\n directives: GetDirectiveConfig[],\n selection: SelectionNode,\n nestedCheck = true,\n): boolean {\n if (!isField(selection)) {\n return true;\n }\n\n if (!selection.directives) {\n return false;\n }\n\n return (\n selection.directives.some(getDirectiveMatcher(directives)) ||\n (nestedCheck &&\n hasDirectivesInSelectionSet(\n directives,\n selection.selectionSet,\n nestedCheck,\n ))\n );\n}\n\nexport function getDirectivesFromDocument(\n directives: GetDirectiveConfig[],\n doc: DocumentNode,\n): DocumentNode {\n checkDocument(doc);\n\n let parentPath: string;\n\n return nullIfDocIsEmpty(\n visit(doc, {\n SelectionSet: {\n enter(node, _key, _parent, path) {\n const currentPath = path.join('-');\n\n if (\n !parentPath ||\n currentPath === parentPath ||\n !currentPath.startsWith(parentPath)\n ) {\n if (node.selections) {\n const selectionsWithDirectives = node.selections.filter(\n selection => hasDirectivesInSelection(directives, selection),\n );\n\n if (hasDirectivesInSelectionSet(directives, node, false)) {\n parentPath = currentPath;\n }\n\n return {\n ...node,\n selections: selectionsWithDirectives,\n };\n } else {\n return null;\n }\n }\n },\n },\n }),\n );\n}\n\nfunction getArgumentMatcher(config: RemoveArgumentsConfig[]) {\n return function argumentMatcher(argument: ArgumentNode) {\n return config.some(\n (aConfig: RemoveArgumentsConfig) =>\n argument.value &&\n argument.value.kind === 'Variable' &&\n argument.value.name &&\n (aConfig.name === argument.value.name.value ||\n (aConfig.test && aConfig.test(argument))),\n );\n };\n}\n\nexport function removeArgumentsFromDocument(\n config: RemoveArgumentsConfig[],\n doc: DocumentNode,\n): DocumentNode {\n const argMatcher = getArgumentMatcher(config);\n\n return nullIfDocIsEmpty(\n visit(doc, {\n OperationDefinition: {\n enter(node) {\n return {\n ...node,\n // Remove matching top level variables definitions.\n variableDefinitions: node.variableDefinitions.filter(\n varDef =>\n !config.some(arg => arg.name === varDef.variable.name.value),\n ),\n };\n },\n },\n\n Field: {\n enter(node) {\n // If `remove` is set to true for an argument, and an argument match\n // is found for a field, remove the field as well.\n const shouldRemoveField = config.some(argConfig => argConfig.remove);\n\n if (shouldRemoveField) {\n let argMatchCount = 0;\n node.arguments.forEach(arg => {\n if (argMatcher(arg)) {\n argMatchCount += 1;\n }\n });\n if (argMatchCount === 1) {\n return null;\n }\n }\n },\n },\n\n Argument: {\n enter(node) {\n // Remove all matching arguments.\n if (argMatcher(node)) {\n return null;\n }\n },\n },\n }),\n );\n}\n\nexport function removeFragmentSpreadFromDocument(\n config: RemoveFragmentSpreadConfig[],\n doc: DocumentNode,\n): DocumentNode {\n function enter(\n node: FragmentSpreadNode | FragmentDefinitionNode,\n ): null | void {\n if (config.some(def => def.name === node.name.value)) {\n return null;\n }\n }\n\n return nullIfDocIsEmpty(\n visit(doc, {\n FragmentSpread: { enter },\n FragmentDefinition: { enter },\n }),\n );\n}\n\nfunction getAllFragmentSpreadsFromSelectionSet(\n selectionSet: SelectionSetNode,\n): FragmentSpreadNode[] {\n const allFragments: FragmentSpreadNode[] = [];\n\n selectionSet.selections.forEach(selection => {\n if (\n (isField(selection) || isInlineFragment(selection)) &&\n selection.selectionSet\n ) {\n getAllFragmentSpreadsFromSelectionSet(selection.selectionSet).forEach(\n frag => allFragments.push(frag),\n );\n } else if (selection.kind === 'FragmentSpread') {\n allFragments.push(selection);\n }\n });\n\n return allFragments;\n}\n\n// If the incoming document is a query, return it as is. Otherwise, build a\n// new document containing a query operation based on the selection set\n// of the previous main operation.\nexport function buildQueryFromSelectionSet(\n document: DocumentNode,\n): DocumentNode {\n const definition = getMainDefinition(document);\n const definitionOperation = (definition).operation;\n\n if (definitionOperation === 'query') {\n // Already a query, so return the existing document.\n return document;\n }\n\n // Build a new query using the selection set of the main operation.\n const modifiedDoc = visit(document, {\n OperationDefinition: {\n enter(node) {\n return {\n ...node,\n operation: 'query',\n };\n },\n },\n });\n return modifiedDoc;\n}\n\n// Remove fields / selection sets that include an @client directive.\nexport function removeClientSetsFromDocument(\n document: DocumentNode,\n): DocumentNode | null {\n checkDocument(document);\n\n let modifiedDoc = removeDirectivesFromDocument(\n [\n {\n test: (directive: DirectiveNode) => directive.name.value === 'client',\n remove: true,\n },\n ],\n document,\n );\n\n // After a fragment definition has had its @client related document\n // sets removed, if the only field it has left is a __typename field,\n // remove the entire fragment operation to prevent it from being fired\n // on the server.\n if (modifiedDoc) {\n modifiedDoc = visit(modifiedDoc, {\n FragmentDefinition: {\n enter(node) {\n if (node.selectionSet) {\n const isTypenameOnly = node.selectionSet.selections.every(\n selection =>\n isField(selection) && selection.name.value === '__typename',\n );\n if (isTypenameOnly) {\n return null;\n }\n }\n },\n },\n });\n }\n\n return modifiedDoc;\n}\n","export const canUseWeakMap = typeof WeakMap === 'function' && !(\n typeof navigator === 'object' &&\n navigator.product === 'ReactNative'\n);\n","const { toString } = Object.prototype;\n\n/**\n * Deeply clones a value to create a new instance.\n */\nexport function cloneDeep(value: T): T {\n return cloneDeepHelper(value, new Map());\n}\n\nfunction cloneDeepHelper(val: T, seen: Map): T {\n switch (toString.call(val)) {\n case \"[object Array]\": {\n if (seen.has(val)) return seen.get(val);\n const copy: T & any[] = (val as any).slice(0);\n seen.set(val, copy);\n copy.forEach(function (child, i) {\n copy[i] = cloneDeepHelper(child, seen);\n });\n return copy;\n }\n\n case \"[object Object]\": {\n if (seen.has(val)) return seen.get(val);\n // High fidelity polyfills of Object.create and Object.getPrototypeOf are\n // possible in all JS environments, so we will assume they exist/work.\n const copy = Object.create(Object.getPrototypeOf(val));\n seen.set(val, copy);\n Object.keys(val).forEach(key => {\n copy[key] = cloneDeepHelper((val as any)[key], seen);\n });\n return copy;\n }\n\n default:\n return val;\n }\n}\n","export function getEnv(): string | undefined {\n if (typeof process !== 'undefined' && process.env.NODE_ENV) {\n return process.env.NODE_ENV;\n }\n\n // default environment\n return 'development';\n}\n\nexport function isEnv(env: string): boolean {\n return getEnv() === env;\n}\n\nexport function isProduction(): boolean {\n return isEnv('production') === true;\n}\n\nexport function isDevelopment(): boolean {\n return isEnv('development') === true;\n}\n\nexport function isTest(): boolean {\n return isEnv('test') === true;\n}\n","import { ExecutionResult } from 'graphql';\n\nexport function tryFunctionOrLogError(f: Function) {\n try {\n return f();\n } catch (e) {\n if (console.error) {\n console.error(e);\n }\n }\n}\n\nexport function graphQLResultHasError(result: ExecutionResult) {\n return result.errors && result.errors.length;\n}\n","import { isDevelopment, isTest } from './environment';\n\n// Taken (mostly) from https://github.com/substack/deep-freeze to avoid\n// import hassles with rollup.\nfunction deepFreeze(o: any) {\n Object.freeze(o);\n\n Object.getOwnPropertyNames(o).forEach(function(prop) {\n if (\n o[prop] !== null &&\n (typeof o[prop] === 'object' || typeof o[prop] === 'function') &&\n !Object.isFrozen(o[prop])\n ) {\n deepFreeze(o[prop]);\n }\n });\n\n return o;\n}\n\nexport function maybeDeepFreeze(obj: any) {\n if (isDevelopment() || isTest()) {\n // Polyfilled Symbols potentially cause infinite / very deep recursion while deep freezing\n // which is known to crash IE11 (https://github.com/apollographql/apollo-client/issues/3043).\n const symbolIsPolyfilled =\n typeof Symbol === 'function' && typeof Symbol('') === 'string';\n\n if (!symbolIsPolyfilled) {\n return deepFreeze(obj);\n }\n }\n return obj;\n}\n","const { hasOwnProperty } = Object.prototype;\n\n// These mergeDeep and mergeDeepArray utilities merge any number of objects\n// together, sharing as much memory as possible with the source objects, while\n// remaining careful to avoid modifying any source objects.\n\n// Logically, the return type of mergeDeep should be the intersection of\n// all the argument types. The binary call signature is by far the most\n// common, but we support 0- through 5-ary as well. After that, the\n// resulting type is just the inferred array element type. Note to nerds:\n// there is a more clever way of doing this that converts the tuple type\n// first to a union type (easy enough: T[number]) and then converts the\n// union to an intersection type using distributive conditional type\n// inference, but that approach has several fatal flaws (boolean becomes\n// true & false, and the inferred type ends up as unknown in many cases),\n// in addition to being nearly impossible to explain/understand.\nexport type TupleToIntersection =\n T extends [infer A] ? A :\n T extends [infer A, infer B] ? A & B :\n T extends [infer A, infer B, infer C] ? A & B & C :\n T extends [infer A, infer B, infer C, infer D] ? A & B & C & D :\n T extends [infer A, infer B, infer C, infer D, infer E] ? A & B & C & D & E :\n T extends (infer U)[] ? U : any;\n\nexport function mergeDeep(\n ...sources: T\n): TupleToIntersection {\n return mergeDeepArray(sources);\n}\n\n// In almost any situation where you could succeed in getting the\n// TypeScript compiler to infer a tuple type for the sources array, you\n// could just use mergeDeep instead of mergeDeepArray, so instead of\n// trying to convert T[] to an intersection type we just infer the array\n// element type, which works perfectly when the sources array has a\n// consistent element type.\nexport function mergeDeepArray(sources: T[]): T {\n let target = sources[0] || {} as T;\n const count = sources.length;\n if (count > 1) {\n const pastCopies: any[] = [];\n target = shallowCopyForMerge(target, pastCopies);\n for (let i = 1; i < count; ++i) {\n target = mergeHelper(target, sources[i], pastCopies);\n }\n }\n return target;\n}\n\nfunction isObject(obj: any): obj is Record {\n return obj !== null && typeof obj === 'object';\n}\n\nfunction mergeHelper(\n target: any,\n source: any,\n pastCopies: any[],\n) {\n if (isObject(source) && isObject(target)) {\n // In case the target has been frozen, make an extensible copy so that\n // we can merge properties into the copy.\n if (Object.isExtensible && !Object.isExtensible(target)) {\n target = shallowCopyForMerge(target, pastCopies);\n }\n\n Object.keys(source).forEach(sourceKey => {\n const sourceValue = source[sourceKey];\n if (hasOwnProperty.call(target, sourceKey)) {\n const targetValue = target[sourceKey];\n if (sourceValue !== targetValue) {\n // When there is a key collision, we need to make a shallow copy of\n // target[sourceKey] so the merge does not modify any source objects.\n // To avoid making unnecessary copies, we use a simple array to track\n // past copies, since it's safe to modify copies created earlier in\n // the merge. We use an array for pastCopies instead of a Map or Set,\n // since the number of copies should be relatively small, and some\n // Map/Set polyfills modify their keys.\n target[sourceKey] = mergeHelper(\n shallowCopyForMerge(targetValue, pastCopies),\n sourceValue,\n pastCopies,\n );\n }\n } else {\n // If there is no collision, the target can safely share memory with\n // the source, and the recursion can terminate here.\n target[sourceKey] = sourceValue;\n }\n });\n\n return target;\n }\n\n // If source (or target) is not an object, let source replace target.\n return source;\n}\n\nfunction shallowCopyForMerge(value: T, pastCopies: any[]): T {\n if (\n value !== null &&\n typeof value === 'object' &&\n pastCopies.indexOf(value) < 0\n ) {\n if (Array.isArray(value)) {\n value = (value as any).slice(0);\n } else {\n value = {\n __proto__: Object.getPrototypeOf(value),\n ...value,\n };\n }\n pastCopies.push(value);\n }\n return value;\n}\n","import { isProduction, isTest } from './environment';\n\nconst haveWarned = Object.create({});\n\n/**\n * Print a warning only once in development.\n * In production no warnings are printed.\n * In test all warnings are printed.\n *\n * @param msg The warning message\n * @param type warn or error (will call console.warn or console.error)\n */\nexport function warnOnceInDevelopment(msg: string, type = 'warn') {\n if (!isProduction() && !haveWarned[msg]) {\n if (!isTest()) {\n haveWarned[msg] = true;\n }\n if (type === 'error') {\n console.error(msg);\n } else {\n console.warn(msg);\n }\n }\n}\n","const genericMessage = \"Invariant Violation\";\nconst {\n setPrototypeOf = function (obj: any, proto: any) {\n obj.__proto__ = proto;\n return obj;\n },\n} = Object as any;\n\nexport class InvariantError extends Error {\n framesToPop = 1;\n name = genericMessage;\n constructor(message: string | number = genericMessage) {\n super(\n typeof message === \"number\"\n ? `${genericMessage}: ${message} (see https://github.com/apollographql/invariant-packages)`\n : message\n );\n setPrototypeOf(this, InvariantError.prototype);\n }\n}\n\nexport function invariant(condition: any, message?: string | number) {\n if (!condition) {\n throw new InvariantError(message);\n }\n}\n\nfunction wrapConsoleMethod(method: \"warn\" | \"error\") {\n return function () {\n return console[method].apply(console, arguments as any);\n } as (...args: any[]) => void;\n}\n\nexport namespace invariant {\n export const warn = wrapConsoleMethod(\"warn\");\n export const error = wrapConsoleMethod(\"error\");\n}\n\n// Code that uses ts-invariant with rollup-plugin-invariant may want to\n// import this process stub to avoid errors evaluating process.env.NODE_ENV.\n// However, because most ESM-to-CJS compilers will rewrite the process import\n// as tsInvariant.process, which prevents proper replacement by minifiers, we\n// also attempt to define the stub globally when it is not already defined.\nlet processStub: NodeJS.Process = { env: {} } as any;\nexport { processStub as process };\nif (typeof process === \"object\") {\n processStub = process;\n} else try {\n // Using Function to evaluate this assignment in global scope also escapes\n // the strict mode of the current module, thereby allowing the assignment.\n // Inspired by https://github.com/facebook/regenerator/pull/369.\n Function(\"stub\", \"process = stub\")(processStub);\n} catch (atLeastWeTried) {\n // The assignment can fail if a Content Security Policy heavy-handedly\n // forbids Function usage. In those environments, developers should take\n // extra care to replace process.env.NODE_ENV in their production builds,\n // or define an appropriate global.process polyfill.\n}\n\nexport default invariant;\n","/**\n * @param { Promise } promise\n * @param { Object= } errorExt - Additional Information you can pass to the err object\n * @return { Promise }\n */\nexport function to (\n promise: Promise,\n errorExt?: object\n): Promise<[U | null, T | undefined]> {\n return promise\n .then<[null, T]>((data: T) => [null, data])\n .catch<[U, undefined]>((err: U) => {\n if (errorExt) {\n Object.assign(err, errorExt);\n }\n\n return [err, undefined];\n });\n}\n\nexport default to;\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 arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import { Operation } from 'apollo-link';\nimport { print } from 'graphql/language/printer';\nimport { InvariantError } from 'ts-invariant';\n\n/*\n * Http Utilities: shared across links that make http requests\n */\n\n// XXX replace with actual typings when available\ndeclare var AbortController: any;\n\n//Used for any Error for data from the server\n//on a request with a Status >= 300\n//response contains no data or errors\nexport type ServerError = Error & {\n response: Response;\n result: Record;\n statusCode: number;\n};\n\n//Thrown when server's resonse is cannot be parsed\nexport type ServerParseError = Error & {\n response: Response;\n statusCode: number;\n bodyText: string;\n};\n\nexport type ClientParseError = InvariantError & {\n parseError: Error;\n};\n\nexport interface HttpQueryOptions {\n includeQuery?: boolean;\n includeExtensions?: boolean;\n}\n\nexport interface HttpConfig {\n http?: HttpQueryOptions;\n options?: any;\n headers?: any; //overrides headers in options\n credentials?: any;\n}\n\nexport interface UriFunction {\n (operation: Operation): string;\n}\n\n// The body of a GraphQL-over-HTTP-POST request.\nexport interface Body {\n query?: string;\n operationName?: string;\n variables?: Record;\n extensions?: Record;\n}\n\nexport interface HttpOptions {\n /**\n * The URI to use when fetching operations.\n *\n * Defaults to '/graphql'.\n */\n uri?: string | UriFunction;\n\n /**\n * Passes the extensions field to your graphql server.\n *\n * Defaults to false.\n */\n includeExtensions?: boolean;\n\n /**\n * A `fetch`-compatible API to use when making requests.\n */\n fetch?: WindowOrWorkerGlobalScope['fetch'];\n\n /**\n * An object representing values to be sent as headers on the request.\n */\n headers?: any;\n\n /**\n * The credentials policy you want to use for the fetch call.\n */\n credentials?: string;\n\n /**\n * Any overrides of the fetch options argument to pass to the fetch call.\n */\n fetchOptions?: any;\n}\n\nconst defaultHttpOptions: HttpQueryOptions = {\n includeQuery: true,\n includeExtensions: false,\n};\n\nconst defaultHeaders = {\n // headers are case insensitive (https://stackoverflow.com/a/5259004)\n accept: '*/*',\n 'content-type': 'application/json',\n};\n\nconst defaultOptions = {\n method: 'POST',\n};\n\nexport const fallbackHttpConfig = {\n http: defaultHttpOptions,\n headers: defaultHeaders,\n options: defaultOptions,\n};\n\nexport const throwServerError = (response, result, message) => {\n const error = new Error(message) as ServerError;\n\n error.name = 'ServerError';\n error.response = response;\n error.statusCode = response.status;\n error.result = result;\n\n throw error;\n};\n\n//TODO: when conditional types come in ts 2.8, operations should be a generic type that extends Operation | Array\nexport const parseAndCheckHttpResponse = operations => (response: Response) => {\n return (\n response\n .text()\n .then(bodyText => {\n try {\n return JSON.parse(bodyText);\n } catch (err) {\n const parseError = err as ServerParseError;\n parseError.name = 'ServerParseError';\n parseError.response = response;\n parseError.statusCode = response.status;\n parseError.bodyText = bodyText;\n return Promise.reject(parseError);\n }\n })\n //TODO: when conditional types come out then result should be T extends Array ? Array : FetchResult\n .then((result: any) => {\n if (response.status >= 300) {\n //Network error\n throwServerError(\n response,\n result,\n `Response not successful: Received status code ${response.status}`,\n );\n }\n //TODO should really error per response in a Batch based on properties\n // - could be done in a validation link\n if (\n !Array.isArray(result) &&\n !result.hasOwnProperty('data') &&\n !result.hasOwnProperty('errors')\n ) {\n //Data error\n throwServerError(\n response,\n result,\n `Server response was missing for query '${\n Array.isArray(operations)\n ? operations.map(op => op.operationName)\n : operations.operationName\n }'.`,\n );\n }\n return result;\n })\n );\n};\n\nexport const checkFetcher = (fetcher: WindowOrWorkerGlobalScope['fetch']) => {\n if (!fetcher && typeof fetch === 'undefined') {\n let library: string = 'unfetch';\n if (typeof window === 'undefined') library = 'node-fetch';\n throw new InvariantError(`\nfetch is not found globally and no fetcher passed, to fix pass a fetch for\nyour environment like https://www.npmjs.com/package/${library}.\n\nFor example:\nimport fetch from '${library}';\nimport { createHttpLink } from 'apollo-link-http';\n\nconst link = createHttpLink({ uri: '/graphql', fetch: fetch });`);\n }\n};\n\nexport const createSignalIfSupported = () => {\n if (typeof AbortController === 'undefined')\n return { controller: false, signal: false };\n\n const controller = new AbortController();\n const signal = controller.signal;\n return { controller, signal };\n};\n\nexport const selectHttpOptionsAndBody = (\n operation: Operation,\n fallbackConfig: HttpConfig,\n ...configs: Array\n) => {\n let options: HttpConfig & Record = {\n ...fallbackConfig.options,\n headers: fallbackConfig.headers,\n credentials: fallbackConfig.credentials,\n };\n let http: HttpQueryOptions = fallbackConfig.http;\n\n /*\n * use the rest of the configs to populate the options\n * configs later in the list will overwrite earlier fields\n */\n configs.forEach(config => {\n options = {\n ...options,\n ...config.options,\n headers: {\n ...options.headers,\n ...config.headers,\n },\n };\n if (config.credentials) options.credentials = config.credentials;\n\n http = {\n ...http,\n ...config.http,\n };\n });\n\n //The body depends on the http options\n const { operationName, extensions, variables, query } = operation;\n const body: Body = { operationName, variables };\n\n if (http.includeExtensions) (body as any).extensions = extensions;\n\n // not sending the query (i.e persisted queries)\n if (http.includeQuery) (body as any).query = print(query);\n\n return {\n options,\n body,\n };\n};\n\nexport const serializeFetchParameter = (p, label) => {\n let serialized;\n try {\n serialized = JSON.stringify(p);\n } catch (e) {\n const parseError = new InvariantError(\n `Network request failed. ${label} is not serializable: ${e.message}`,\n ) as ClientParseError;\n parseError.parseError = e;\n throw parseError;\n }\n return serialized;\n};\n\n//selects \"/graphql\" by default\nexport const selectURI = (\n operation,\n fallbackURI?: string | ((operation: Operation) => string),\n) => {\n const context = operation.getContext();\n const contextURI = context.uri;\n\n if (contextURI) {\n return contextURI;\n } else if (typeof fallbackURI === 'function') {\n return fallbackURI(operation);\n } else {\n return (fallbackURI as string) || '/graphql';\n }\n};\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import nodejsCustomInspectSymbol from \"./nodejsCustomInspectSymbol.mjs\";\n/**\n * The `defineToJSON()` function defines toJSON() and inspect() prototype\n * methods, if no function provided they become aliases for toString().\n */\n\nexport default function defineToJSON(classObject) {\n var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : classObject.prototype.toString;\n classObject.prototype.toJSON = fn;\n classObject.prototype.inspect = fn;\n /* istanbul ignore else (See: https://github.com/graphql/graphql-js/issues/2317) */\n\n if (nodejsCustomInspectSymbol) {\n classObject.prototype[nodejsCustomInspectSymbol] = fn;\n }\n}\n","import defineToJSON from \"../jsutils/defineToJSON.mjs\";\n\n/**\n * Contains a range of UTF-8 character offsets and token references that\n * identify the region of the source from which the AST derived.\n */\nexport var Location =\n/**\n * The character offset at which this Node begins.\n */\n\n/**\n * The character offset at which this Node ends.\n */\n\n/**\n * The Token at which this Node begins.\n */\n\n/**\n * The Token at which this Node ends.\n */\n\n/**\n * The Source document the AST represents.\n */\nfunction Location(startToken, endToken, source) {\n this.start = startToken.start;\n this.end = endToken.end;\n this.startToken = startToken;\n this.endToken = endToken;\n this.source = source;\n}; // Print a simplified form when appearing in JSON/util.inspect.\n\ndefineToJSON(Location, function () {\n return {\n start: this.start,\n end: this.end\n };\n});\n/**\n * Represents a range of characters represented by a lexical token\n * within a Source.\n */\n\nexport var Token =\n/**\n * The kind of Token.\n */\n\n/**\n * The character offset at which this Node begins.\n */\n\n/**\n * The character offset at which this Node ends.\n */\n\n/**\n * The 1-indexed line number on which this Token appears.\n */\n\n/**\n * The 1-indexed column number at which this Token begins.\n */\n\n/**\n * For non-punctuation tokens, represents the interpreted value of the token.\n */\n\n/**\n * Tokens exist as nodes in a double-linked-list amongst all tokens\n * including ignored tokens. is always the first node and \n * the last.\n */\nfunction Token(kind, start, end, line, column, prev, value) {\n this.kind = kind;\n this.start = start;\n this.end = end;\n this.line = line;\n this.column = column;\n this.value = value;\n this.prev = prev;\n this.next = null;\n}; // Print a simplified form when appearing in JSON/util.inspect.\n\ndefineToJSON(Token, function () {\n return {\n kind: this.kind,\n value: this.value,\n line: this.line,\n column: this.column\n };\n});\n/**\n * @internal\n */\n\nexport function isNode(maybeNode) {\n return maybeNode != null && typeof maybeNode.kind === 'string';\n}\n/**\n * The list of all possible AST node types.\n */\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\n\nvar ExecutionEnvironment = {\n canUseDOM: canUseDOM,\n canUseWorkers: typeof Worker !== 'undefined',\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n canUseViewport: canUseDOM && !!window.screen,\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\nmodule.exports = ExecutionEnvironment;","import React, { useRef, useContext, useEffect } from 'react';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\n/**\r\n * ScrollingSyncerContext is the context to be handling scrolled nodes\r\n */\r\nvar ScrollingSyncerContext = React.createContext({\r\n registerNode: function (_node, _group) { },\r\n unregisterNode: function (_node, _group) { },\r\n onScroll: function (_e, _groups) { },\r\n});\r\n/**\r\n * ScrollSync component is a context based component,\r\n * that wrappes children to be .Provided with context utils and eventsHandlers\r\n * @param props ScrollSyncProps\r\n */\r\nvar ScrollSync = function (props) {\r\n /**\r\n * a map of group: and it's nodes\r\n * {\r\n * groupA: [node1, node2, node3],\r\n * groupB: [node4, node5],\r\n * groupC: [node1, node4],\r\n * }\r\n */\r\n var nodesRef = useRef({});\r\n var elements = nodesRef.current;\r\n /**\r\n * A simple trick to avoid calling `requestAnimationFrame` before the frame is painted, to enhance performance!\r\n */\r\n var shouldPaintFrameRef = useRef(true);\r\n var shouldPaintFrame = shouldPaintFrameRef.current;\r\n /**\r\n * return boolean if the group exists\r\n * @param group to be found\r\n */\r\n var findGroup = function (group) {\r\n return !!elements[group];\r\n };\r\n /**\r\n * returns found node or undefined\r\n * @param node to be found\r\n * @param group to be searched in\r\n */\r\n var doesNodeExists = function (node, group) {\r\n var groupExists = findGroup(group);\r\n if (!groupExists)\r\n return false;\r\n var foundNode = elements[group].find(function (element) { return element.node === node; });\r\n if (!foundNode)\r\n return false;\r\n return !!foundNode;\r\n };\r\n /**\r\n * this function will delightly register your node (that uses ScrollSyncNode)\r\n * to be scroll-synced with it's cool other registerd nodes\r\n *\r\n * @param node to be registred\r\n * @param groups to wich groups the node should be registered\r\n */\r\n var registerNode = function (element, groups) {\r\n groups.forEach(function (group) {\r\n var groupExists = findGroup(group);\r\n if (!groupExists) {\r\n elements[group] = [];\r\n }\r\n elements[group].push(__assign({}, element));\r\n });\r\n };\r\n /**\r\n * this function will delightly UNregister your node (that uses ScrollSyncNode)\r\n * to stop it's scroll-sync with other cool registerd nodes\r\n *\r\n * used now when unmounting nodes\r\n *\r\n * @param element to be registred\r\n * @param groups to wich groups the node should be registered\r\n */\r\n var unregisterNode = function (element, groups) {\r\n groups.forEach(function (group) {\r\n var doesNodeExist = doesNodeExists(element.node, group);\r\n if (doesNodeExist) {\r\n elements[group].splice(elements[group].findIndex(function (e) { return element.node === e.node; }), 1);\r\n }\r\n });\r\n };\r\n /**\r\n * calculate scrolling percentage of the scrolledNode to be synced with other nodes\r\n * @param scrolledNode !!\r\n * @param node other node to be scroll-synced\r\n */\r\n var syncScrollPosition = function (scrolledNode, node) {\r\n var scrollTop = scrolledNode.scrollTop, scrollHeight = scrolledNode.scrollHeight, offsetHeight = scrolledNode.offsetHeight, scrollLeft = scrolledNode.scrollLeft, scrollWidth = scrolledNode.scrollWidth, offsetLeft = scrolledNode.offsetLeft, offsetWidth = scrolledNode.offsetWidth;\r\n //calculate percentage of scrolling of the scrolledNode\r\n var percentagePerHeight = scrollTop / (scrollHeight - offsetHeight);\r\n //calculate percentage of scrolling of the scrolledNode\r\n var percentagePerWidth = scrollLeft / (scrollWidth - offsetWidth);\r\n //Apply calculated scrolling\r\n node.scrollTop = Math.round(percentagePerHeight * (node.scrollHeight - node.offsetHeight));\r\n node.scrollLeft = Math.round(percentagePerWidth * (node.scrollWidth - node.offsetWidth));\r\n };\r\n /**\r\n * We sync all other nodes in the registered groups\r\n * @param scrolledNode !!\r\n * @param groups groups to be scroll-synced\r\n */\r\n var syncScrollPositions = function (scrolledNode, groups) {\r\n groups.forEach(function (group) {\r\n elements[group].forEach(function (element) {\r\n /* For all nodes other than the currently scrolled one */\r\n if (scrolledNode !== element.node) {\r\n var isEnabled = element.scroll === \"two-way\";\r\n var isSynced = element.scroll === \"synced-only\";\r\n (isEnabled || isSynced) && syncScrollPosition(scrolledNode, element.node);\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * check if previous frame was painted and we should paint next\r\n * if we should, then we call `requestAnimationFrame` again\r\n * and then clear the shouldPaintFrame flag till next animation frame\r\n *\r\n * @param node node to be scrolled\r\n * @param groups groups to be scroll-synced\r\n */\r\n var handleNodeScroll = function (node, groups) {\r\n if (shouldPaintFrame) {\r\n window.requestAnimationFrame(function () {\r\n syncScrollPositions(node, groups);\r\n shouldPaintFrame = true;\r\n });\r\n shouldPaintFrame = false;\r\n }\r\n };\r\n return (React.createElement(ScrollingSyncerContext.Provider, { value: {\r\n registerNode: registerNode,\r\n unregisterNode: unregisterNode,\r\n onScroll: function (e, groups) { return handleNodeScroll(e.currentTarget, groups); },\r\n } }, React.Children.only(props.children)));\r\n};\r\nScrollSync.defaultProps = {\r\n enabled: true,\r\n};\n\n/* eslint react/no-find-dom-node: 0 */\r\nvar toArray = function (groups) { return [].concat(groups); };\r\nvar ScrollSyncNode = function (_a) {\r\n var children = _a.children, _b = _a.group, group = _b === void 0 ? \"default\" : _b, _c = _a.scroll, scroll = _c === void 0 ? \"two-way\" : _c;\r\n var _d = useContext(ScrollingSyncerContext), registerNode = _d.registerNode, unregisterNode = _d.unregisterNode, onScroll = _d.onScroll;\r\n var ref = useRef(null);\r\n useEffect(function () {\r\n var syncableElement = { node: ref.current, scroll: scroll };\r\n registerNode(syncableElement, toArray(group));\r\n return function () { return unregisterNode(syncableElement, toArray(group)); };\r\n }, []);\r\n useEffect(function () {\r\n var syncableElement = { node: ref.current, scroll: scroll };\r\n unregisterNode(syncableElement, toArray(group));\r\n registerNode(syncableElement, toArray(group));\r\n return function () { return unregisterNode(syncableElement, toArray(group)); };\r\n }, [scroll, group]);\r\n var isSyncer = scroll === \"syncer-only\";\r\n var isEnabled = scroll === \"two-way\";\r\n return React.cloneElement(children, {\r\n ref: ref,\r\n onScroll: function (e) {\r\n return (isSyncer || isEnabled) && onScroll(e, toArray(group));\r\n },\r\n onWheel: function (e) {\r\n return (isSyncer || isEnabled) && onScroll(e, toArray(group));\r\n },\r\n });\r\n};\n\nexport { ScrollSync, ScrollSyncNode };\n","const { toString, hasOwnProperty } = Object.prototype;\nconst previousComparisons = new Map>();\n\n/**\n * Performs a deep equality check on two JavaScript values, tolerating cycles.\n */\nexport function equal(a: any, b: any): boolean {\n try {\n return check(a, b);\n } finally {\n previousComparisons.clear();\n }\n}\n\n// Allow default imports as well.\nexport default equal;\n\nfunction check(a: any, b: any): boolean {\n // If the two values are strictly equal, our job is easy.\n if (a === b) {\n return true;\n }\n\n // Object.prototype.toString returns a representation of the runtime type of\n // the given value that is considerably more precise than typeof.\n const aTag = toString.call(a);\n const bTag = toString.call(b);\n\n // If the runtime types of a and b are different, they could maybe be equal\n // under some interpretation of equality, but for simplicity and performance\n // we just return false instead.\n if (aTag !== bTag) {\n return false;\n }\n\n switch (aTag) {\n case '[object Array]':\n // Arrays are a lot like other objects, but we can cheaply compare their\n // lengths as a short-cut before comparing their elements.\n if (a.length !== b.length) return false;\n // Fall through to object case...\n case '[object Object]': {\n if (previouslyCompared(a, b)) return true;\n\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n\n // If `a` and `b` have a different number of enumerable keys, they\n // must be different.\n const keyCount = aKeys.length;\n if (keyCount !== bKeys.length) return false;\n\n // Now make sure they have the same keys.\n for (let k = 0; k < keyCount; ++k) {\n if (!hasOwnProperty.call(b, aKeys[k])) {\n return false;\n }\n }\n\n // Finally, check deep equality of all child properties.\n for (let k = 0; k < keyCount; ++k) {\n const key = aKeys[k];\n if (!check(a[key], b[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n case '[object Error]':\n return a.name === b.name && a.message === b.message;\n\n case '[object Number]':\n // Handle NaN, which is !== itself.\n if (a !== a) return b !== b;\n // Fall through to shared +a === +b case...\n case '[object Boolean]':\n case '[object Date]':\n return +a === +b;\n\n case '[object RegExp]':\n case '[object String]':\n return a == `${b}`;\n\n case '[object Map]':\n case '[object Set]': {\n if (a.size !== b.size) return false;\n if (previouslyCompared(a, b)) return true;\n\n const aIterator = a.entries();\n const isMap = aTag === '[object Map]';\n\n while (true) {\n const info = aIterator.next();\n if (info.done) break;\n\n // If a instanceof Set, aValue === aKey.\n const [aKey, aValue] = info.value;\n\n // So this works the same way for both Set and Map.\n if (!b.has(aKey)) {\n return false;\n }\n\n // However, we care about deep equality of values only when dealing\n // with Map structures.\n if (isMap && !check(aValue, b.get(aKey))) {\n return false;\n }\n }\n\n return true;\n }\n }\n\n // Otherwise the values are not equal.\n return false;\n}\n\nfunction previouslyCompared(a: object, b: object): boolean {\n // Though cyclic references can make an object graph appear infinite from the\n // perspective of a depth-first traversal, the graph still contains a finite\n // number of distinct object references. We use the previousComparisons cache\n // to avoid comparing the same pair of object references more than once, which\n // guarantees termination (even if we end up comparing every object in one\n // graph to every object in the other graph, which is extremely unlikely),\n // while still allowing weird isomorphic structures (like rings with different\n // lengths) a chance to pass the equality test.\n let bSet = previousComparisons.get(a);\n if (bSet) {\n // Return true here because we can be sure false will be returned somewhere\n // else if the objects are not equivalent.\n if (bSet.has(b)) return true;\n } else {\n previousComparisons.set(a, bSet = new Set);\n }\n bSet.add(b);\n return false;\n}\n","/* tslint:disable */\n\nimport zenObservable from 'zen-observable';\n\nnamespace Observable {\n\n}\n\nimport { ZenObservable } from './types';\n\nexport { ZenObservable };\n\nexport type Observer = ZenObservable.Observer;\nexport type Subscriber = ZenObservable.Subscriber;\nexport type ObservableLike = ZenObservable.ObservableLike;\n\nexport const Observable: {\n new (subscriber: Subscriber): Observable;\n from(\n observable: Observable | ZenObservable.ObservableLike | ArrayLike,\n ): Observable;\n of(...args: Array): Observable;\n} = zenObservable;\n\nexport interface Observable {\n subscribe(\n observerOrNext: ((value: T) => void) | ZenObservable.Observer,\n error?: (error: any) => void,\n complete?: () => void,\n ): ZenObservable.Subscription;\n\n forEach(fn: (value: T) => void): Promise;\n\n map(fn: (value: T) => R): Observable;\n\n filter(fn: (value: T) => boolean): Observable;\n\n reduce(\n fn: (previousValue: R | T, currentValue: T) => R | T,\n initialValue?: R | T,\n ): Observable;\n\n flatMap(fn: (value: T) => ZenObservable.ObservableLike): Observable;\n\n from(\n observable: Observable | ZenObservable.ObservableLike | ArrayLike,\n ): Observable;\n of(...args: Array): Observable;\n}\n","import Observable from 'zen-observable-ts';\n\nimport { GraphQLRequest, Operation } from './types';\nimport { ApolloLink } from './link';\n\nimport { getOperationName } from 'apollo-utilities';\nimport { invariant, InvariantError } from 'ts-invariant';\nexport { getOperationName };\n\nexport function validateOperation(operation: GraphQLRequest): GraphQLRequest {\n const OPERATION_FIELDS = [\n 'query',\n 'operationName',\n 'variables',\n 'extensions',\n 'context',\n ];\n for (let key of Object.keys(operation)) {\n if (OPERATION_FIELDS.indexOf(key) < 0) {\n throw new InvariantError(`illegal argument: ${key}`);\n }\n }\n\n return operation;\n}\n\nexport class LinkError extends Error {\n public link: ApolloLink;\n constructor(message?: string, link?: ApolloLink) {\n super(message);\n this.link = link;\n }\n}\n\nexport function isTerminating(link: ApolloLink): boolean {\n return link.request.length <= 1;\n}\n\nexport function toPromise(observable: Observable): Promise {\n let completed = false;\n return new Promise((resolve, reject) => {\n observable.subscribe({\n next: data => {\n if (completed) {\n invariant.warn(\n `Promise Wrapper does not support multiple results from Observable`,\n );\n } else {\n completed = true;\n resolve(data);\n }\n },\n error: reject,\n });\n });\n}\n\n// backwards compat\nexport const makePromise = toPromise;\n\nexport function fromPromise(promise: Promise): Observable {\n return new Observable(observer => {\n promise\n .then((value: T) => {\n observer.next(value);\n observer.complete();\n })\n .catch(observer.error.bind(observer));\n });\n}\n\nexport function fromError(errorValue: any): Observable {\n return new Observable(observer => {\n observer.error(errorValue);\n });\n}\n\nexport function transformOperation(operation: GraphQLRequest): GraphQLRequest {\n const transformedOperation: GraphQLRequest = {\n variables: operation.variables || {},\n extensions: operation.extensions || {},\n operationName: operation.operationName,\n query: operation.query,\n };\n\n // best guess at an operation name\n if (!transformedOperation.operationName) {\n transformedOperation.operationName =\n typeof transformedOperation.query !== 'string'\n ? getOperationName(transformedOperation.query)\n : '';\n }\n\n return transformedOperation as Operation;\n}\n\nexport function createOperation(\n starting: any,\n operation: GraphQLRequest,\n): Operation {\n let context = { ...starting };\n const setContext = next => {\n if (typeof next === 'function') {\n context = { ...context, ...next(context) };\n } else {\n context = { ...context, ...next };\n }\n };\n const getContext = () => ({ ...context });\n\n Object.defineProperty(operation, 'setContext', {\n enumerable: false,\n value: setContext,\n });\n\n Object.defineProperty(operation, 'getContext', {\n enumerable: false,\n value: getContext,\n });\n\n Object.defineProperty(operation, 'toKey', {\n enumerable: false,\n value: () => getKey(operation),\n });\n\n return operation as Operation;\n}\n\nexport function getKey(operation: GraphQLRequest) {\n // XXX We're assuming here that query and variables will be serialized in\n // the same order, which might not always be true.\n const { query, variables, operationName } = operation;\n return JSON.stringify([operationName, query, variables]);\n}\n","import Observable from 'zen-observable-ts';\nimport { invariant, InvariantError } from 'ts-invariant';\n\nimport {\n GraphQLRequest,\n NextLink,\n Operation,\n RequestHandler,\n FetchResult,\n} from './types';\n\nimport {\n validateOperation,\n isTerminating,\n LinkError,\n transformOperation,\n createOperation,\n} from './linkUtils';\n\nfunction passthrough(op, forward) {\n return forward ? forward(op) : Observable.of();\n}\n\nfunction toLink(handler: RequestHandler | ApolloLink) {\n return typeof handler === 'function' ? new ApolloLink(handler) : handler;\n}\n\nexport function empty(): ApolloLink {\n return new ApolloLink(() => Observable.of());\n}\n\nexport function from(links: ApolloLink[]): ApolloLink {\n if (links.length === 0) return empty();\n return links.map(toLink).reduce((x, y) => x.concat(y));\n}\n\nexport function split(\n test: (op: Operation) => boolean,\n left: ApolloLink | RequestHandler,\n right?: ApolloLink | RequestHandler,\n): ApolloLink {\n const leftLink = toLink(left);\n const rightLink = toLink(right || new ApolloLink(passthrough));\n\n if (isTerminating(leftLink) && isTerminating(rightLink)) {\n return new ApolloLink(operation => {\n return test(operation)\n ? leftLink.request(operation) || Observable.of()\n : rightLink.request(operation) || Observable.of();\n });\n } else {\n return new ApolloLink((operation, forward) => {\n return test(operation)\n ? leftLink.request(operation, forward) || Observable.of()\n : rightLink.request(operation, forward) || Observable.of();\n });\n }\n}\n\n// join two Links together\nexport const concat = (\n first: ApolloLink | RequestHandler,\n second: ApolloLink | RequestHandler,\n) => {\n const firstLink = toLink(first);\n if (isTerminating(firstLink)) {\n invariant.warn(\n new LinkError(\n `You are calling concat on a terminating link, which will have no effect`,\n firstLink,\n ),\n );\n return firstLink;\n }\n const nextLink = toLink(second);\n\n if (isTerminating(nextLink)) {\n return new ApolloLink(\n operation =>\n firstLink.request(\n operation,\n op => nextLink.request(op) || Observable.of(),\n ) || Observable.of(),\n );\n } else {\n return new ApolloLink((operation, forward) => {\n return (\n firstLink.request(operation, op => {\n return nextLink.request(op, forward) || Observable.of();\n }) || Observable.of()\n );\n });\n }\n};\n\nexport class ApolloLink {\n public static empty = empty;\n public static from = from;\n public static split = split;\n public static execute = execute;\n\n constructor(request?: RequestHandler) {\n if (request) this.request = request;\n }\n\n public split(\n test: (op: Operation) => boolean,\n left: ApolloLink | RequestHandler,\n right?: ApolloLink | RequestHandler,\n ): ApolloLink {\n return this.concat(split(test, left, right || new ApolloLink(passthrough)));\n }\n\n public concat(next: ApolloLink | RequestHandler): ApolloLink {\n return concat(this, next);\n }\n\n public request(\n operation: Operation,\n forward?: NextLink,\n ): Observable | null {\n throw new InvariantError('request is not implemented');\n }\n}\n\nexport function execute(\n link: ApolloLink,\n operation: GraphQLRequest,\n): Observable {\n return (\n link.request(\n createOperation(\n operation.context,\n transformOperation(validateOperation(operation)),\n ),\n ) || Observable.of()\n );\n}\n","import React from 'react';\nimport ApolloClient from 'apollo-client';\n\nexport interface ApolloContextValue {\n client?: ApolloClient;\n renderPromises?: Record;\n}\n\nlet apolloContext: React.Context;\n\nexport function getApolloContext() {\n if (!apolloContext) {\n apolloContext = React.createContext({});\n }\n return apolloContext;\n}\n\nexport function resetApolloContext() {\n apolloContext = React.createContext({});\n}\n","import {\n DocumentNode,\n DefinitionNode,\n VariableDefinitionNode,\n OperationDefinitionNode\n} from 'graphql';\nimport { invariant } from 'ts-invariant';\n\nexport enum DocumentType {\n Query,\n Mutation,\n Subscription\n}\n\nexport interface IDocumentDefinition {\n type: DocumentType;\n name: string;\n variables: ReadonlyArray;\n}\n\nconst cache = new Map();\n\nexport function operationName(type: DocumentType) {\n let name;\n switch (type) {\n case DocumentType.Query:\n name = 'Query';\n break;\n case DocumentType.Mutation:\n name = 'Mutation';\n break;\n case DocumentType.Subscription:\n name = 'Subscription';\n break;\n }\n return name;\n}\n\n// This parser is mostly used to saftey check incoming documents.\nexport function parser(document: DocumentNode): IDocumentDefinition {\n const cached = cache.get(document);\n if (cached) return cached;\n\n let variables, type, name;\n\n invariant(\n !!document && !!document.kind,\n `Argument of ${document} passed to parser was not a valid GraphQL ` +\n `DocumentNode. You may need to use 'graphql-tag' or another method ` +\n `to convert your operation into a document`\n );\n\n const fragments = document.definitions.filter(\n (x: DefinitionNode) => x.kind === 'FragmentDefinition'\n );\n\n const queries = document.definitions.filter(\n (x: DefinitionNode) =>\n x.kind === 'OperationDefinition' && x.operation === 'query'\n );\n\n const mutations = document.definitions.filter(\n (x: DefinitionNode) =>\n x.kind === 'OperationDefinition' && x.operation === 'mutation'\n );\n\n const subscriptions = document.definitions.filter(\n (x: DefinitionNode) =>\n x.kind === 'OperationDefinition' && x.operation === 'subscription'\n );\n\n invariant(\n !fragments.length ||\n (queries.length || mutations.length || subscriptions.length),\n `Passing only a fragment to 'graphql' is not yet supported. ` +\n `You must include a query, subscription or mutation as well`\n );\n\n invariant(\n queries.length + mutations.length + subscriptions.length <= 1,\n `react-apollo only supports a query, subscription, or a mutation per HOC. ` +\n `${document} had ${queries.length} queries, ${subscriptions.length} ` +\n `subscriptions and ${mutations.length} mutations. ` +\n `You can use 'compose' to join multiple operation types to a component`\n );\n\n type = queries.length ? DocumentType.Query : DocumentType.Mutation;\n if (!queries.length && !mutations.length) type = DocumentType.Subscription;\n\n const definitions = queries.length\n ? queries\n : mutations.length\n ? mutations\n : subscriptions;\n\n invariant(\n definitions.length === 1,\n `react-apollo only supports one definition per HOC. ${document} had ` +\n `${definitions.length} definitions. ` +\n `You can use 'compose' to join multiple operation types to a component`\n );\n\n const definition = definitions[0] as OperationDefinitionNode;\n variables = definition.variableDefinitions || [];\n\n if (definition.name && definition.name.kind === 'Name') {\n name = definition.name.value;\n } else {\n name = 'data'; // fallback to using data if no name\n }\n\n const payload = { name, type, variables };\n cache.set(document, payload);\n return payload;\n}\n","import React from 'react';\nimport ApolloClient from 'apollo-client';\nimport { invariant } from 'ts-invariant';\n\nimport { getApolloContext } from './ApolloContext';\n\nexport interface ApolloProviderProps {\n client: ApolloClient;\n children: React.ReactNode | React.ReactNode[] | null;\n}\n\nexport const ApolloProvider: React.FC> = ({\n client,\n children\n}) => {\n const ApolloContext = getApolloContext();\n return (\n \n {(context = {}) => {\n if (client && context.client !== client) {\n context = Object.assign({}, context, { client });\n }\n\n invariant(\n context.client,\n 'ApolloProvider was not passed a client instance. Make ' +\n 'sure you pass in your client via the \"client\" prop.'\n );\n\n return (\n \n {children}\n \n );\n }}\n \n );\n};\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import inspect from \"../jsutils/inspect.mjs\";\nimport { isNode } from \"./ast.mjs\";\n/**\n * A visitor is provided to visit, it contains the collection of\n * relevant functions to be called during the visitor's traversal.\n */\n\nexport var QueryDocumentKeys = {\n Name: [],\n Document: ['definitions'],\n OperationDefinition: ['name', 'variableDefinitions', 'directives', 'selectionSet'],\n VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],\n Variable: ['name'],\n SelectionSet: ['selections'],\n Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],\n Argument: ['name', 'value'],\n FragmentSpread: ['name', 'directives'],\n InlineFragment: ['typeCondition', 'directives', 'selectionSet'],\n FragmentDefinition: ['name', // Note: fragment variable definitions are experimental and may be changed\n // or removed in the future.\n 'variableDefinitions', 'typeCondition', 'directives', 'selectionSet'],\n IntValue: [],\n FloatValue: [],\n StringValue: [],\n BooleanValue: [],\n NullValue: [],\n EnumValue: [],\n ListValue: ['values'],\n ObjectValue: ['fields'],\n ObjectField: ['name', 'value'],\n Directive: ['name', 'arguments'],\n NamedType: ['name'],\n ListType: ['type'],\n NonNullType: ['type'],\n SchemaDefinition: ['description', 'directives', 'operationTypes'],\n OperationTypeDefinition: ['type'],\n ScalarTypeDefinition: ['description', 'name', 'directives'],\n ObjectTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'],\n FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],\n InputValueDefinition: ['description', 'name', 'type', 'defaultValue', 'directives'],\n InterfaceTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'],\n UnionTypeDefinition: ['description', 'name', 'directives', 'types'],\n EnumTypeDefinition: ['description', 'name', 'directives', 'values'],\n EnumValueDefinition: ['description', 'name', 'directives'],\n InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],\n DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],\n SchemaExtension: ['directives', 'operationTypes'],\n ScalarTypeExtension: ['name', 'directives'],\n ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n UnionTypeExtension: ['name', 'directives', 'types'],\n EnumTypeExtension: ['name', 'directives', 'values'],\n InputObjectTypeExtension: ['name', 'directives', 'fields']\n};\nexport var BREAK = Object.freeze({});\n/**\n * visit() will walk through an AST using a depth first traversal, calling\n * the visitor's enter function at each node in the traversal, and calling the\n * leave function after visiting that node and all of its child nodes.\n *\n * By returning different values from the enter and leave functions, the\n * behavior of the visitor can be altered, including skipping over a sub-tree of\n * the AST (by returning false), editing the AST by returning a value or null\n * to remove the value, or to stop the whole traversal by returning BREAK.\n *\n * When using visit() to edit an AST, the original AST will not be modified, and\n * a new version of the AST with the changes applied will be returned from the\n * visit function.\n *\n * const editedAST = visit(ast, {\n * enter(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: skip visiting this node\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * },\n * leave(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: no action\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * }\n * });\n *\n * Alternatively to providing enter() and leave() functions, a visitor can\n * instead provide functions named the same as the kinds of AST nodes, or\n * enter/leave visitors at a named key, leading to four permutations of\n * visitor API:\n *\n * 1) Named visitors triggered when entering a node a specific kind.\n *\n * visit(ast, {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * })\n *\n * 2) Named visitors that trigger upon entering and leaving a node of\n * a specific kind.\n *\n * visit(ast, {\n * Kind: {\n * enter(node) {\n * // enter the \"Kind\" node\n * }\n * leave(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n *\n * 3) Generic visitors that trigger upon entering and leaving any node.\n *\n * visit(ast, {\n * enter(node) {\n * // enter any node\n * },\n * leave(node) {\n * // leave any node\n * }\n * })\n *\n * 4) Parallel visitors for entering and leaving nodes of a specific kind.\n *\n * visit(ast, {\n * enter: {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * },\n * leave: {\n * Kind(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n */\n\nexport function visit(root, visitor) {\n var visitorKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : QueryDocumentKeys;\n\n /* eslint-disable no-undef-init */\n var stack = undefined;\n var inArray = Array.isArray(root);\n var keys = [root];\n var index = -1;\n var edits = [];\n var node = undefined;\n var key = undefined;\n var parent = undefined;\n var path = [];\n var ancestors = [];\n var newRoot = root;\n /* eslint-enable no-undef-init */\n\n do {\n index++;\n var isLeaving = index === keys.length;\n var isEdited = isLeaving && edits.length !== 0;\n\n if (isLeaving) {\n key = ancestors.length === 0 ? undefined : path[path.length - 1];\n node = parent;\n parent = ancestors.pop();\n\n if (isEdited) {\n if (inArray) {\n node = node.slice();\n } else {\n var clone = {};\n\n for (var _i2 = 0, _Object$keys2 = Object.keys(node); _i2 < _Object$keys2.length; _i2++) {\n var k = _Object$keys2[_i2];\n clone[k] = node[k];\n }\n\n node = clone;\n }\n\n var editOffset = 0;\n\n for (var ii = 0; ii < edits.length; ii++) {\n var editKey = edits[ii][0];\n var editValue = edits[ii][1];\n\n if (inArray) {\n editKey -= editOffset;\n }\n\n if (inArray && editValue === null) {\n node.splice(editKey, 1);\n editOffset++;\n } else {\n node[editKey] = editValue;\n }\n }\n }\n\n index = stack.index;\n keys = stack.keys;\n edits = stack.edits;\n inArray = stack.inArray;\n stack = stack.prev;\n } else {\n key = parent ? inArray ? index : keys[index] : undefined;\n node = parent ? parent[key] : newRoot;\n\n if (node === null || node === undefined) {\n continue;\n }\n\n if (parent) {\n path.push(key);\n }\n }\n\n var result = void 0;\n\n if (!Array.isArray(node)) {\n if (!isNode(node)) {\n throw new Error(\"Invalid AST Node: \".concat(inspect(node), \".\"));\n }\n\n var visitFn = getVisitFn(visitor, node.kind, isLeaving);\n\n if (visitFn) {\n result = visitFn.call(visitor, node, key, parent, path, ancestors);\n\n if (result === BREAK) {\n break;\n }\n\n if (result === false) {\n if (!isLeaving) {\n path.pop();\n continue;\n }\n } else if (result !== undefined) {\n edits.push([key, result]);\n\n if (!isLeaving) {\n if (isNode(result)) {\n node = result;\n } else {\n path.pop();\n continue;\n }\n }\n }\n }\n }\n\n if (result === undefined && isEdited) {\n edits.push([key, node]);\n }\n\n if (isLeaving) {\n path.pop();\n } else {\n var _visitorKeys$node$kin;\n\n stack = {\n inArray: inArray,\n index: index,\n keys: keys,\n edits: edits,\n prev: stack\n };\n inArray = Array.isArray(node);\n keys = inArray ? node : (_visitorKeys$node$kin = visitorKeys[node.kind]) !== null && _visitorKeys$node$kin !== void 0 ? _visitorKeys$node$kin : [];\n index = -1;\n edits = [];\n\n if (parent) {\n ancestors.push(parent);\n }\n\n parent = node;\n }\n } while (stack !== undefined);\n\n if (edits.length !== 0) {\n newRoot = edits[edits.length - 1][1];\n }\n\n return newRoot;\n}\n/**\n * Creates a new visitor instance which delegates to many visitors to run in\n * parallel. Each visitor will be visited for each node before moving on.\n *\n * If a prior visitor edits a node, no following visitors will see that node.\n */\n\nexport function visitInParallel(visitors) {\n var skipping = new Array(visitors.length);\n return {\n enter: function enter(node) {\n for (var i = 0; i < visitors.length; i++) {\n if (skipping[i] == null) {\n var fn = getVisitFn(visitors[i], node.kind,\n /* isLeaving */\n false);\n\n if (fn) {\n var result = fn.apply(visitors[i], arguments);\n\n if (result === false) {\n skipping[i] = node;\n } else if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined) {\n return result;\n }\n }\n }\n }\n },\n leave: function leave(node) {\n for (var i = 0; i < visitors.length; i++) {\n if (skipping[i] == null) {\n var fn = getVisitFn(visitors[i], node.kind,\n /* isLeaving */\n true);\n\n if (fn) {\n var result = fn.apply(visitors[i], arguments);\n\n if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined && result !== false) {\n return result;\n }\n }\n } else if (skipping[i] === node) {\n skipping[i] = null;\n }\n }\n }\n };\n}\n/**\n * Given a visitor instance, if it is leaving or not, and a node kind, return\n * the function the visitor runtime should call.\n */\n\nexport function getVisitFn(visitor, kind, isLeaving) {\n var kindVisitor = visitor[kind];\n\n if (kindVisitor) {\n if (!isLeaving && typeof kindVisitor === 'function') {\n // { Kind() {} }\n return kindVisitor;\n }\n\n var kindSpecificVisitor = isLeaving ? kindVisitor.leave : kindVisitor.enter;\n\n if (typeof kindSpecificVisitor === 'function') {\n // { Kind: { enter() {}, leave() {} } }\n return kindSpecificVisitor;\n }\n } else {\n var specificVisitor = isLeaving ? visitor.leave : visitor.enter;\n\n if (specificVisitor) {\n if (typeof specificVisitor === 'function') {\n // { enter() {}, leave() {} }\n return specificVisitor;\n }\n\n var specificKindVisitor = specificVisitor[kind];\n\n if (typeof specificKindVisitor === 'function') {\n // { enter: { Kind() {} }, leave: { Kind() {} } }\n return specificKindVisitor;\n }\n }\n }\n}\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\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction deepMerge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","import $$observable from 'symbol-observable';\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/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function.');\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('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\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('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('Expected the listener to be a function.');\n }\n\n if (isDispatching) {\n throw new Error('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-reference/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('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/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('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('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('Expected the nextReducer to be a function.');\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 TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionDescription = actionType && \"action \\\"\" + String(actionType) + \"\\\"\" || 'an action';\n return \"Given \" + actionDescription + \", reducer \\\"\" + 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\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 \\\"\" + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + \"\\\". 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(\"Reducer \\\"\" + 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(\"Reducer \\\"\" + 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 errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\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(\"bindActionCreators expected an object or a function, instead received \" + (actionCreators === null ? 'null' : typeof 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\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 ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n keys.push.apply(keys, Object.getOwnPropertySymbols(object));\n }\n\n if (enumerableOnly) keys = keys.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\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\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('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 _objectSpread2({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DragDropContext_1 = require(\"./DragDropContext\");\nexports.DragDropContext = DragDropContext_1.DragDropContext;\nexports.DragDropContextProvider = DragDropContext_1.DragDropContextProvider;\nexports.DragDropContextConsumer = DragDropContext_1.Consumer;\nvar DragLayer_1 = require(\"./DragLayer\");\nexports.DragLayer = DragLayer_1.default;\nvar DragSource_1 = require(\"./DragSource\");\nexports.DragSource = DragSource_1.default;\nvar DropTarget_1 = require(\"./DropTarget\");\nexports.DropTarget = DropTarget_1.default;\nvar DragPreviewImage_1 = require(\"./DragPreviewImage\");\nexports.DragPreviewImage = DragPreviewImage_1.default;\nvar hooks_1 = require(\"./hooks\");\nexports.useDrag = hooks_1.useDrag;\nexports.useDragLayer = hooks_1.useDragLayer;\nexports.useDrop = hooks_1.useDrop;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport { resolveToLocation, normalizeToLocation } from \"./utils/locationUtils\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link\";\nimport { resolveToLocation, normalizeToLocation } from \"./utils/locationUtils\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n","/* flatpickr v4.6.3, @license MIT */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.flatpickr = factory());\n}(this, function () { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\n\n var HOOKS = [\n \"onChange\",\n \"onClose\",\n \"onDayCreate\",\n \"onDestroy\",\n \"onKeyDown\",\n \"onMonthChange\",\n \"onOpen\",\n \"onParseConfig\",\n \"onReady\",\n \"onValueUpdate\",\n \"onYearChange\",\n \"onPreCalendarPosition\",\n ];\n var defaults = {\n _disable: [],\n _enable: [],\n allowInput: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" &&\n window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enable: [],\n enableSeconds: false,\n enableTime: false,\n errorHandler: function (err) {\n return typeof console !== \"undefined\" && console.warn(err);\n },\n getWeek: function (givenDate) {\n var date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0);\n // Thursday in current week decides the year.\n date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));\n // January 4 is always in week 1.\n var week1 = new Date(date.getFullYear(), 0, 4);\n // Adjust to Thursday in week 1 and count number of weeks from date to week1.\n return (1 +\n Math.round(((date.getTime() - week1.getTime()) / 86400000 -\n 3 +\n ((week1.getDay() + 6) % 7)) /\n 7));\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n monthSelectorType: \"dropdown\",\n nextArrow: \"\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false\n };\n\n var english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ]\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ]\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false\n };\n\n var pad = function (number) { return (\"0\" + number).slice(-2); };\n var int = function (bool) { return (bool === true ? 1 : 0); };\n /* istanbul ignore next */\n function debounce(func, wait, immediate) {\n if (immediate === void 0) { immediate = false; }\n var timeout;\n return function () {\n var context = this, args = arguments;\n timeout !== null && clearTimeout(timeout);\n timeout = window.setTimeout(function () {\n timeout = null;\n if (!immediate)\n func.apply(context, args);\n }, wait);\n if (immediate && !timeout)\n func.apply(context, args);\n };\n }\n var arrayify = function (obj) {\n return obj instanceof Array ? obj : [obj];\n };\n\n function toggleClass(elem, className, bool) {\n if (bool === true)\n return elem.classList.add(className);\n elem.classList.remove(className);\n }\n function createElement(tag, className, content) {\n var e = window.document.createElement(tag);\n className = className || \"\";\n content = content || \"\";\n e.className = className;\n if (content !== undefined)\n e.textContent = content;\n return e;\n }\n function clearNode(node) {\n while (node.firstChild)\n node.removeChild(node.firstChild);\n }\n function findParent(node, condition) {\n if (condition(node))\n return node;\n else if (node.parentNode)\n return findParent(node.parentNode, condition);\n return undefined; // nothing found\n }\n function createNumberInput(inputClassName, opts) {\n var wrapper = createElement(\"div\", \"numInputWrapper\"), numInput = createElement(\"input\", \"numInput \" + inputClassName), arrowUp = createElement(\"span\", \"arrowUp\"), arrowDown = createElement(\"span\", \"arrowDown\");\n if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n numInput.type = \"number\";\n }\n else {\n numInput.type = \"text\";\n numInput.pattern = \"\\\\d*\";\n }\n if (opts !== undefined)\n for (var key in opts)\n numInput.setAttribute(key, opts[key]);\n wrapper.appendChild(numInput);\n wrapper.appendChild(arrowUp);\n wrapper.appendChild(arrowDown);\n return wrapper;\n }\n function getEventTarget(event) {\n if (typeof event.composedPath === \"function\") {\n var path = event.composedPath();\n return path[0];\n }\n return event.target;\n }\n\n var doNothing = function () { return undefined; };\n var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber]; };\n var revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n H: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n J: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n K: function (dateObj, amPM, locale) {\n dateObj.setHours((dateObj.getHours() % 12) +\n 12 * int(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n },\n M: function (dateObj, shortMonth, locale) {\n dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n },\n S: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: function (_, unixSeconds) { return new Date(parseFloat(unixSeconds) * 1000); },\n W: function (dateObj, weekNum, locale) {\n var weekNumber = parseInt(weekNum);\n var date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n return date;\n },\n Y: function (dateObj, year) {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: function (_, ISODate) { return new Date(ISODate); },\n d: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n h: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n i: function (dateObj, minutes) {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: function (_, unixMillSeconds) {\n return new Date(parseFloat(unixMillSeconds));\n },\n w: doNothing,\n y: function (dateObj, year) {\n dateObj.setFullYear(2000 + parseFloat(year));\n }\n };\n var tokenRegex = {\n D: \"(\\\\w+)\",\n F: \"(\\\\w+)\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"(\\\\w+)\",\n S: \"(\\\\d\\\\d|\\\\d)\",\n U: \"(.+)\",\n W: \"(\\\\d\\\\d|\\\\d)\",\n Y: \"(\\\\d{4})\",\n Z: \"(.+)\",\n d: \"(\\\\d\\\\d|\\\\d)\",\n h: \"(\\\\d\\\\d|\\\\d)\",\n i: \"(\\\\d\\\\d|\\\\d)\",\n j: \"(\\\\d\\\\d|\\\\d)\",\n l: \"(\\\\w+)\",\n m: \"(\\\\d\\\\d|\\\\d)\",\n n: \"(\\\\d\\\\d|\\\\d)\",\n s: \"(\\\\d\\\\d|\\\\d)\",\n u: \"(.+)\",\n w: \"(\\\\d\\\\d|\\\\d)\",\n y: \"(\\\\d{2})\"\n };\n var formats = {\n // get the date in UTC\n Z: function (date) { return date.toISOString(); },\n // weekday name, short, e.g. Thu\n D: function (date, locale, options) {\n return locale.weekdays.shorthand[formats.w(date, locale, options)];\n },\n // full month name e.g. January\n F: function (date, locale, options) {\n return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n },\n // padded hour 1-12\n G: function (date, locale, options) {\n return pad(formats.h(date, locale, options));\n },\n // hours with leading zero e.g. 03\n H: function (date) { return pad(date.getHours()); },\n // day (1-30) with ordinal suffix e.g. 1st, 2nd\n J: function (date, locale) {\n return locale.ordinal !== undefined\n ? date.getDate() + locale.ordinal(date.getDate())\n : date.getDate();\n },\n // AM/PM\n K: function (date, locale) { return locale.amPM[int(date.getHours() > 11)]; },\n // shorthand month e.g. Jan, Sep, Oct, etc\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n // seconds 00-59\n S: function (date) { return pad(date.getSeconds()); },\n // unix timestamp\n U: function (date) { return date.getTime() / 1000; },\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n // full year e.g. 2016\n Y: function (date) { return date.getFullYear(); },\n // day in month, padded (01-30)\n d: function (date) { return pad(date.getDate()); },\n // hour from 1-12 (am/pm)\n h: function (date) { return (date.getHours() % 12 ? date.getHours() % 12 : 12); },\n // minutes, padded with leading zero e.g. 09\n i: function (date) { return pad(date.getMinutes()); },\n // day in month (1-30)\n j: function (date) { return date.getDate(); },\n // weekday name, full, e.g. Thursday\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n // padded month number (01-12)\n m: function (date) { return pad(date.getMonth() + 1); },\n // the month number (1-12)\n n: function (date) { return date.getMonth() + 1; },\n // seconds 0-59\n s: function (date) { return date.getSeconds(); },\n // Unix Milliseconds\n u: function (date) { return date.getTime(); },\n // number of the day of the week\n w: function (date) { return date.getDay(); },\n // last two digits of year e.g. 16 for 2016\n y: function (date) { return String(date.getFullYear()).substring(2); }\n };\n\n var createDateFormatter = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c;\n return function (dateObj, frmt, overrideLocale) {\n var locale = overrideLocale || l10n;\n if (config.formatDate !== undefined) {\n return config.formatDate(dateObj, frmt, locale);\n }\n return frmt\n .split(\"\")\n .map(function (c, i, arr) {\n return formats[c] && arr[i - 1] !== \"\\\\\"\n ? formats[c](dateObj, locale, config)\n : c !== \"\\\\\"\n ? c\n : \"\";\n })\n .join(\"\");\n };\n };\n var createDateParser = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c;\n return function (date, givenFormat, timeless, customLocale) {\n if (date !== 0 && !date)\n return undefined;\n var locale = customLocale || l10n;\n var parsedDate;\n var dateOrig = date;\n if (date instanceof Date)\n parsedDate = new Date(date.getTime());\n else if (typeof date !== \"string\" &&\n date.toFixed !== undefined // timestamp\n )\n // create a copy\n parsedDate = new Date(date);\n else if (typeof date === \"string\") {\n // date string\n var format = givenFormat || (config || defaults).dateFormat;\n var datestr = String(date).trim();\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n }\n else if (/Z$/.test(datestr) ||\n /GMT$/.test(datestr) // datestrings w/ timezone\n )\n parsedDate = new Date(date);\n else if (config && config.parseDate)\n parsedDate = config.parseDate(date, format);\n else {\n parsedDate =\n !config || !config.noCalendar\n ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)\n : new Date(new Date().setHours(0, 0, 0, 0));\n var matched = void 0, ops = [];\n for (var i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n var token_1 = format[i];\n var isBackSlash = token_1 === \"\\\\\";\n var escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n if (tokenRegex[token_1] && !escaped) {\n regexStr += tokenRegex[token_1];\n var match = new RegExp(regexStr).exec(date);\n if (match && (matched = true)) {\n ops[token_1 !== \"Y\" ? \"push\" : \"unshift\"]({\n fn: revFormat[token_1],\n val: match[++matchIndex]\n });\n }\n }\n else if (!isBackSlash)\n regexStr += \".\"; // don't really care\n ops.forEach(function (_a) {\n var fn = _a.fn, val = _a.val;\n return (parsedDate = fn(parsedDate, val, locale) || parsedDate);\n });\n }\n parsedDate = matched ? parsedDate : undefined;\n }\n }\n /* istanbul ignore next */\n if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n config.errorHandler(new Error(\"Invalid date provided: \" + dateOrig));\n return undefined;\n }\n if (timeless === true)\n parsedDate.setHours(0, 0, 0, 0);\n return parsedDate;\n };\n };\n /**\n * Compute the difference in dates, measured in ms\n */\n function compareDates(date1, date2, timeless) {\n if (timeless === void 0) { timeless = true; }\n if (timeless !== false) {\n return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -\n new Date(date2.getTime()).setHours(0, 0, 0, 0));\n }\n return date1.getTime() - date2.getTime();\n }\n var isBetween = function (ts, ts1, ts2) {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n };\n var duration = {\n DAY: 86400000\n };\n\n if (typeof Object.assign !== \"function\") {\n Object.assign = function (target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!target) {\n throw TypeError(\"Cannot convert undefined or null to object\");\n }\n var _loop_1 = function (source) {\n if (source) {\n Object.keys(source).forEach(function (key) { return (target[key] = source[key]); });\n }\n };\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var source = args_1[_a];\n _loop_1(source);\n }\n return target;\n };\n }\n\n var DEBOUNCED_CHANGE_MS = 300;\n function FlatpickrInstance(element, instanceConfig) {\n var self = {\n config: __assign({}, defaults, flatpickr.defaultConfig),\n l10n: english\n };\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n self._handlers = [];\n self.pluginElements = [];\n self.loadedPlugins = [];\n self._bind = bind;\n self._setHoursFromDate = setHoursFromDate;\n self._positionCalendar = positionCalendar;\n self.changeMonth = changeMonth;\n self.changeYear = changeYear;\n self.clear = clear;\n self.close = close;\n self._createElement = createElement;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.open = open;\n self.redraw = redraw;\n self.set = set;\n self.setDate = setDate;\n self.toggle = toggle;\n function setupHelperFunctions() {\n self.utils = {\n getDaysInMonth: function (month, yr) {\n if (month === void 0) { month = self.currentMonth; }\n if (yr === void 0) { yr = self.currentYear; }\n if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))\n return 29;\n return self.l10n.daysInMonth[month];\n }\n };\n }\n function init() {\n self.element = self.input = element;\n self.isOpen = false;\n parseConfig();\n setupLocale();\n setupInputs();\n setupDates();\n setupHelperFunctions();\n if (!self.isMobile)\n build();\n bindEvents();\n if (self.selectedDates.length || self.config.noCalendar) {\n if (self.config.enableTime) {\n setHoursFromDate(self.config.noCalendar\n ? self.latestSelectedDateObj || self.config.minDate\n : undefined);\n }\n updateValue(false);\n }\n setCalendarWidth();\n self.showTimeInput =\n self.selectedDates.length > 0 || self.config.noCalendar;\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n /* TODO: investigate this further\n \n Currently, there is weird positioning behavior in safari causing pages\n to scroll up. https://github.com/chmln/flatpickr/issues/563\n \n However, most browsers are not Safari and positioning is expensive when used\n in scale. https://github.com/chmln/flatpickr/issues/1096\n */\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n triggerEvent(\"onReady\");\n }\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n function setCalendarWidth() {\n var config = self.config;\n if (config.weekNumbers === false && config.showMonths === 1)\n return;\n else if (config.noCalendar !== true) {\n window.requestAnimationFrame(function () {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.style.visibility = \"hidden\";\n self.calendarContainer.style.display = \"block\";\n }\n if (self.daysContainer !== undefined) {\n var daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n self.daysContainer.style.width = daysWidth + \"px\";\n self.calendarContainer.style.width =\n daysWidth +\n (self.weekWrapper !== undefined\n ? self.weekWrapper.offsetWidth\n : 0) +\n \"px\";\n self.calendarContainer.style.removeProperty(\"visibility\");\n self.calendarContainer.style.removeProperty(\"display\");\n }\n });\n }\n }\n /**\n * The handler for all events targeting the time inputs\n */\n function updateTime(e) {\n if (self.selectedDates.length === 0) {\n setDefaultTime();\n }\n if (e !== undefined && e.type !== \"blur\") {\n timeWrapper(e);\n }\n var prevValue = self._input.value;\n setHoursFromInputs();\n updateValue();\n if (self._input.value !== prevValue) {\n self._debouncedChange();\n }\n }\n function ampm2military(hour, amPM) {\n return (hour % 12) + 12 * int(amPM === self.l10n.amPM[1]);\n }\n function military2ampm(hour) {\n switch (hour % 24) {\n case 0:\n case 12:\n return 12;\n default:\n return hour % 12;\n }\n }\n /**\n * Syncs the selected date object time with user's time input\n */\n function setHoursFromInputs() {\n if (self.hourElement === undefined || self.minuteElement === undefined)\n return;\n var hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined\n ? (parseInt(self.secondElement.value, 10) || 0) % 60\n : 0;\n if (self.amPM !== undefined) {\n hours = ampm2military(hours, self.amPM.textContent);\n }\n var limitMinHours = self.config.minTime !== undefined ||\n (self.config.minDate &&\n self.minDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.minDate, true) ===\n 0);\n var limitMaxHours = self.config.maxTime !== undefined ||\n (self.config.maxDate &&\n self.maxDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.maxDate, true) ===\n 0);\n if (limitMaxHours) {\n var maxTime = self.config.maxTime !== undefined\n ? self.config.maxTime\n : self.config.maxDate;\n hours = Math.min(hours, maxTime.getHours());\n if (hours === maxTime.getHours())\n minutes = Math.min(minutes, maxTime.getMinutes());\n if (minutes === maxTime.getMinutes())\n seconds = Math.min(seconds, maxTime.getSeconds());\n }\n if (limitMinHours) {\n var minTime = self.config.minTime !== undefined\n ? self.config.minTime\n : self.config.minDate;\n hours = Math.max(hours, minTime.getHours());\n if (hours === minTime.getHours())\n minutes = Math.max(minutes, minTime.getMinutes());\n if (minutes === minTime.getMinutes())\n seconds = Math.max(seconds, minTime.getSeconds());\n }\n setHours(hours, minutes, seconds);\n }\n /**\n * Syncs time input values with a date\n */\n function setHoursFromDate(dateObj) {\n var date = dateObj || self.latestSelectedDateObj;\n if (date)\n setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n }\n function setDefaultHours() {\n var hours = self.config.defaultHour;\n var minutes = self.config.defaultMinute;\n var seconds = self.config.defaultSeconds;\n if (self.config.minDate !== undefined) {\n var minHr = self.config.minDate.getHours();\n var minMinutes = self.config.minDate.getMinutes();\n hours = Math.max(hours, minHr);\n if (hours === minHr)\n minutes = Math.max(minMinutes, minutes);\n if (hours === minHr && minutes === minMinutes)\n seconds = self.config.minDate.getSeconds();\n }\n if (self.config.maxDate !== undefined) {\n var maxHr = self.config.maxDate.getHours();\n var maxMinutes = self.config.maxDate.getMinutes();\n hours = Math.min(hours, maxHr);\n if (hours === maxHr)\n minutes = Math.min(maxMinutes, minutes);\n if (hours === maxHr && minutes === maxMinutes)\n seconds = self.config.maxDate.getSeconds();\n }\n setHours(hours, minutes, seconds);\n }\n /**\n * Sets the hours, minutes, and optionally seconds\n * of the latest selected date object and the\n * corresponding time inputs\n * @param {Number} hours the hour. whether its military\n * or am-pm gets inferred from config\n * @param {Number} minutes the minutes\n * @param {Number} seconds the seconds (optional)\n */\n function setHours(hours, minutes, seconds) {\n if (self.latestSelectedDateObj !== undefined) {\n self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n }\n if (!self.hourElement || !self.minuteElement || self.isMobile)\n return;\n self.hourElement.value = pad(!self.config.time_24hr\n ? ((12 + hours) % 12) + 12 * int(hours % 12 === 0)\n : hours);\n self.minuteElement.value = pad(minutes);\n if (self.amPM !== undefined)\n self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];\n if (self.secondElement !== undefined)\n self.secondElement.value = pad(seconds);\n }\n /**\n * Handles the year input and incrementing events\n * @param {Event} event the keyup or increment event\n */\n function onYearInput(event) {\n var year = parseInt(event.target.value) + (event.delta || 0);\n if (year / 1000 > 1 ||\n (event.key === \"Enter\" && !/[^\\d]/.test(year.toString()))) {\n changeYear(year);\n }\n }\n /**\n * Essentially addEventListener + tracking\n * @param {Element} element the element to addEventListener to\n * @param {String} event the event name\n * @param {Function} handler the event handler\n */\n function bind(element, event, handler, options) {\n if (event instanceof Array)\n return event.forEach(function (ev) { return bind(element, ev, handler, options); });\n if (element instanceof Array)\n return element.forEach(function (el) { return bind(el, event, handler, options); });\n element.addEventListener(event, handler, options);\n self._handlers.push({\n element: element,\n event: event,\n handler: handler,\n options: options\n });\n }\n /**\n * A mousedown handler which mimics click.\n * Minimizes latency, since we don't need to wait for mouseup in most cases.\n * Also, avoids handling right clicks.\n *\n * @param {Function} handler the event handler\n */\n function onClick(handler) {\n return function (evt) {\n evt.which === 1 && handler(evt);\n };\n }\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n /**\n * Adds all the necessary event listeners\n */\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach(function (evt) {\n Array.prototype.forEach.call(self.element.querySelectorAll(\"[data-\" + evt + \"]\"), function (el) {\n return bind(el, \"click\", self[evt]);\n });\n });\n }\n if (self.isMobile) {\n setupMobile();\n return;\n }\n var debouncedResize = debounce(onResize, 50);\n self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);\n if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))\n bind(self.daysContainer, \"mouseover\", function (e) {\n if (self.config.mode === \"range\")\n onMouseOver(e.target);\n });\n bind(window.document.body, \"keydown\", onKeyDown);\n if (!self.config.inline && !self.config.static)\n bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined)\n bind(window.document, \"touchstart\", documentClick);\n else\n bind(window.document, \"mousedown\", onClick(documentClick));\n bind(window.document, \"focus\", documentClick, { capture: true });\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"mousedown\", onClick(self.open));\n }\n if (self.daysContainer !== undefined) {\n bind(self.monthNav, \"mousedown\", onClick(onMonthNavClick));\n bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n bind(self.daysContainer, \"mousedown\", onClick(selectDate));\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined) {\n var selText = function (e) {\n return e.target.select();\n };\n bind(self.timeContainer, [\"increment\"], updateTime);\n bind(self.timeContainer, \"blur\", updateTime, { capture: true });\n bind(self.timeContainer, \"mousedown\", onClick(timeIncrement));\n bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n if (self.secondElement !== undefined)\n bind(self.secondElement, \"focus\", function () { return self.secondElement && self.secondElement.select(); });\n if (self.amPM !== undefined) {\n bind(self.amPM, \"mousedown\", onClick(function (e) {\n updateTime(e);\n triggerChange();\n }));\n }\n }\n }\n /**\n * Set the calendar view to a particular date.\n * @param {Date} jumpDate the date to set the view to\n * @param {boolean} triggerChange if change events should be triggered\n */\n function jumpToDate(jumpDate, triggerChange) {\n var jumpTo = jumpDate !== undefined\n ? self.parseDate(jumpDate)\n : self.latestSelectedDateObj ||\n (self.config.minDate && self.config.minDate > self.now\n ? self.config.minDate\n : self.config.maxDate && self.config.maxDate < self.now\n ? self.config.maxDate\n : self.now);\n var oldYear = self.currentYear;\n var oldMonth = self.currentMonth;\n try {\n if (jumpTo !== undefined) {\n self.currentYear = jumpTo.getFullYear();\n self.currentMonth = jumpTo.getMonth();\n }\n }\n catch (e) {\n /* istanbul ignore next */\n e.message = \"Invalid date supplied: \" + jumpTo;\n self.config.errorHandler(e);\n }\n if (triggerChange && self.currentYear !== oldYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n if (triggerChange &&\n (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n triggerEvent(\"onMonthChange\");\n }\n self.redraw();\n }\n /**\n * The up/down arrow handler for time inputs\n * @param {Event} e the click event\n */\n function timeIncrement(e) {\n if (~e.target.className.indexOf(\"arrow\"))\n incrementNumInput(e, e.target.classList.contains(\"arrowUp\") ? 1 : -1);\n }\n /**\n * Increments/decrements the value of input associ-\n * ated with the up/down arrow by dispatching an\n * \"increment\" event on the input.\n *\n * @param {Event} e the click event\n * @param {Number} delta the diff (usually 1 or -1)\n * @param {Element} inputElem the input element\n */\n function incrementNumInput(e, delta, inputElem) {\n var target = e && e.target;\n var input = inputElem ||\n (target && target.parentNode && target.parentNode.firstChild);\n var event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n function build() {\n var fragment = window.document.createDocumentFragment();\n self.calendarContainer = createElement(\"div\", \"flatpickr-calendar\");\n self.calendarContainer.tabIndex = -1;\n if (!self.config.noCalendar) {\n fragment.appendChild(buildMonthNav());\n self.innerContainer = createElement(\"div\", \"flatpickr-innerContainer\");\n if (self.config.weekNumbers) {\n var _a = buildWeeks(), weekWrapper = _a.weekWrapper, weekNumbers = _a.weekNumbers;\n self.innerContainer.appendChild(weekWrapper);\n self.weekNumbers = weekNumbers;\n self.weekWrapper = weekWrapper;\n }\n self.rContainer = createElement(\"div\", \"flatpickr-rContainer\");\n self.rContainer.appendChild(buildWeekdays());\n if (!self.daysContainer) {\n self.daysContainer = createElement(\"div\", \"flatpickr-days\");\n self.daysContainer.tabIndex = -1;\n }\n buildDays();\n self.rContainer.appendChild(self.daysContainer);\n self.innerContainer.appendChild(self.rContainer);\n fragment.appendChild(self.innerContainer);\n }\n if (self.config.enableTime) {\n fragment.appendChild(buildTime());\n }\n toggleClass(self.calendarContainer, \"rangeMode\", self.config.mode === \"range\");\n toggleClass(self.calendarContainer, \"animate\", self.config.animate === true);\n toggleClass(self.calendarContainer, \"multiMonth\", self.config.showMonths > 1);\n self.calendarContainer.appendChild(fragment);\n var customAppend = self.config.appendTo !== undefined &&\n self.config.appendTo.nodeType !== undefined;\n if (self.config.inline || self.config.static) {\n self.calendarContainer.classList.add(self.config.inline ? \"inline\" : \"static\");\n if (self.config.inline) {\n if (!customAppend && self.element.parentNode)\n self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);\n else if (self.config.appendTo !== undefined)\n self.config.appendTo.appendChild(self.calendarContainer);\n }\n if (self.config.static) {\n var wrapper = createElement(\"div\", \"flatpickr-wrapper\");\n if (self.element.parentNode)\n self.element.parentNode.insertBefore(wrapper, self.element);\n wrapper.appendChild(self.element);\n if (self.altInput)\n wrapper.appendChild(self.altInput);\n wrapper.appendChild(self.calendarContainer);\n }\n }\n if (!self.config.static && !self.config.inline)\n (self.config.appendTo !== undefined\n ? self.config.appendTo\n : window.document.body).appendChild(self.calendarContainer);\n }\n function createDay(className, date, dayNumber, i) {\n var dateIsEnabled = isEnabled(date, true), dayElement = createElement(\"span\", \"flatpickr-day \" + className, date.getDate().toString());\n dayElement.dateObj = date;\n dayElement.$i = i;\n dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n if (className.indexOf(\"hidden\") === -1 &&\n compareDates(date, self.now) === 0) {\n self.todayDateElem = dayElement;\n dayElement.classList.add(\"today\");\n dayElement.setAttribute(\"aria-current\", \"date\");\n }\n if (dateIsEnabled) {\n dayElement.tabIndex = -1;\n if (isDateSelected(date)) {\n dayElement.classList.add(\"selected\");\n self.selectedDateElem = dayElement;\n if (self.config.mode === \"range\") {\n toggleClass(dayElement, \"startRange\", self.selectedDates[0] &&\n compareDates(date, self.selectedDates[0], true) === 0);\n toggleClass(dayElement, \"endRange\", self.selectedDates[1] &&\n compareDates(date, self.selectedDates[1], true) === 0);\n if (className === \"nextMonthDay\")\n dayElement.classList.add(\"inRange\");\n }\n }\n }\n else {\n dayElement.classList.add(\"flatpickr-disabled\");\n }\n if (self.config.mode === \"range\") {\n if (isDateInRange(date) && !isDateSelected(date))\n dayElement.classList.add(\"inRange\");\n }\n if (self.weekNumbers &&\n self.config.showMonths === 1 &&\n className !== \"prevMonthDay\" &&\n dayNumber % 7 === 1) {\n self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"\" + self.config.getWeek(date) + \"\");\n }\n triggerEvent(\"onDayCreate\", dayElement);\n return dayElement;\n }\n function focusOnDayElem(targetNode) {\n targetNode.focus();\n if (self.config.mode === \"range\")\n onMouseOver(targetNode);\n }\n function getFirstAvailableDay(delta) {\n var startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n for (var m = startMonth; m != endMonth; m += delta) {\n var month = self.daysContainer.children[m];\n var startIndex = delta > 0 ? 0 : month.children.length - 1;\n var endIndex = delta > 0 ? month.children.length : -1;\n for (var i = startIndex; i != endIndex; i += delta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj))\n return c;\n }\n }\n return undefined;\n }\n function getNextAvailableDay(current, delta) {\n var givenMonth = current.className.indexOf(\"Month\") === -1\n ? current.dateObj.getMonth()\n : self.currentMonth;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n var loopDelta = delta > 0 ? 1 : -1;\n for (var m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n var month = self.daysContainer.children[m];\n var startIndex = givenMonth - self.currentMonth === m\n ? current.$i + delta\n : delta < 0\n ? month.children.length - 1\n : 0;\n var numMonthDays = month.children.length;\n for (var i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 &&\n isEnabled(c.dateObj) &&\n Math.abs(current.$i - i) >= Math.abs(delta))\n return focusOnDayElem(c);\n }\n }\n self.changeMonth(loopDelta);\n focusOnDay(getFirstAvailableDay(loopDelta), 0);\n return undefined;\n }\n function focusOnDay(current, offset) {\n var dayFocused = isInView(document.activeElement || document.body);\n var startElem = current !== undefined\n ? current\n : dayFocused\n ? document.activeElement\n : self.selectedDateElem !== undefined && isInView(self.selectedDateElem)\n ? self.selectedDateElem\n : self.todayDateElem !== undefined && isInView(self.todayDateElem)\n ? self.todayDateElem\n : getFirstAvailableDay(offset > 0 ? 1 : -1);\n if (startElem === undefined)\n return self._input.focus();\n if (!dayFocused)\n return focusOnDayElem(startElem);\n getNextAvailableDay(startElem, offset);\n }\n function buildMonthDays(year, month) {\n var firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12);\n var daysInMonth = self.utils.getDaysInMonth(month), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\", nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n var dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;\n // prepend days from the ending of previous month\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n }\n // Start at 1 since there is no 0th day\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n }\n // append days from the next month\n for (var dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&\n (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n }\n //updateNavigationCurrentMonth();\n var dayContainer = createElement(\"div\", \"dayContainer\");\n dayContainer.appendChild(days);\n return dayContainer;\n }\n function buildDays() {\n if (self.daysContainer === undefined) {\n return;\n }\n clearNode(self.daysContainer);\n // TODO: week numbers for each month\n if (self.weekNumbers)\n clearNode(self.weekNumbers);\n var frag = document.createDocumentFragment();\n for (var i = 0; i < self.config.showMonths; i++) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n }\n self.daysContainer.appendChild(frag);\n self.days = self.daysContainer.firstChild;\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n onMouseOver();\n }\n }\n function buildMonthSwitch() {\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType !== \"dropdown\")\n return;\n var shouldBuildMonth = function (month) {\n if (self.config.minDate !== undefined &&\n self.currentYear === self.config.minDate.getFullYear() &&\n month < self.config.minDate.getMonth()) {\n return false;\n }\n return !(self.config.maxDate !== undefined &&\n self.currentYear === self.config.maxDate.getFullYear() &&\n month > self.config.maxDate.getMonth());\n };\n self.monthsDropdownContainer.tabIndex = -1;\n self.monthsDropdownContainer.innerHTML = \"\";\n for (var i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i))\n continue;\n var month = createElement(\"option\", \"flatpickr-monthDropdown-month\");\n month.value = new Date(self.currentYear, i).getMonth().toString();\n month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);\n month.tabIndex = -1;\n if (self.currentMonth === i) {\n month.selected = true;\n }\n self.monthsDropdownContainer.appendChild(month);\n }\n }\n function buildMonth() {\n var container = createElement(\"div\", \"flatpickr-month\");\n var monthNavFragment = window.document.createDocumentFragment();\n var monthElement;\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n monthElement = createElement(\"span\", \"cur-month\");\n }\n else {\n self.monthsDropdownContainer = createElement(\"select\", \"flatpickr-monthDropdown-months\");\n bind(self.monthsDropdownContainer, \"change\", function (e) {\n var target = e.target;\n var selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n var yearInput = createNumberInput(\"cur-year\", { tabindex: \"-1\" });\n var yearElement = yearInput.getElementsByTagName(\"input\")[0];\n yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n if (self.config.minDate) {\n yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n }\n if (self.config.maxDate) {\n yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n yearElement.disabled =\n !!self.config.minDate &&\n self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n }\n var currentMonth = createElement(\"div\", \"flatpickr-current-month\");\n currentMonth.appendChild(monthElement);\n currentMonth.appendChild(yearInput);\n monthNavFragment.appendChild(currentMonth);\n container.appendChild(monthNavFragment);\n return {\n container: container,\n yearElement: yearElement,\n monthElement: monthElement\n };\n }\n function buildMonths() {\n clearNode(self.monthNav);\n self.monthNav.appendChild(self.prevMonthNav);\n if (self.config.showMonths) {\n self.yearElements = [];\n self.monthElements = [];\n }\n for (var m = self.config.showMonths; m--;) {\n var month = buildMonth();\n self.yearElements.push(month.yearElement);\n self.monthElements.push(month.monthElement);\n self.monthNav.appendChild(month.container);\n }\n self.monthNav.appendChild(self.nextMonthNav);\n }\n function buildMonthNav() {\n self.monthNav = createElement(\"div\", \"flatpickr-months\");\n self.yearElements = [];\n self.monthElements = [];\n self.prevMonthNav = createElement(\"span\", \"flatpickr-prev-month\");\n self.prevMonthNav.innerHTML = self.config.prevArrow;\n self.nextMonthNav = createElement(\"span\", \"flatpickr-next-month\");\n self.nextMonthNav.innerHTML = self.config.nextArrow;\n buildMonths();\n Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n get: function () { return self.__hidePrevMonthArrow; },\n set: function (bool) {\n if (self.__hidePrevMonthArrow !== bool) {\n toggleClass(self.prevMonthNav, \"flatpickr-disabled\", bool);\n self.__hidePrevMonthArrow = bool;\n }\n }\n });\n Object.defineProperty(self, \"_hideNextMonthArrow\", {\n get: function () { return self.__hideNextMonthArrow; },\n set: function (bool) {\n if (self.__hideNextMonthArrow !== bool) {\n toggleClass(self.nextMonthNav, \"flatpickr-disabled\", bool);\n self.__hideNextMonthArrow = bool;\n }\n }\n });\n self.currentYearElement = self.yearElements[0];\n updateNavigationCurrentMonth();\n return self.monthNav;\n }\n function buildTime() {\n self.calendarContainer.classList.add(\"hasTime\");\n if (self.config.noCalendar)\n self.calendarContainer.classList.add(\"noCalendar\");\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n var separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n var hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n var minuteInput = createNumberInput(\"flatpickr-minute\", {\n \"aria-label\": self.l10n.minuteAriaLabel\n });\n self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n self.hourElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getHours()\n : self.config.time_24hr\n ? self.config.defaultHour\n : military2ampm(self.config.defaultHour));\n self.minuteElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getMinutes()\n : self.config.defaultMinute);\n self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n self.minuteElement.setAttribute(\"min\", \"0\");\n self.minuteElement.setAttribute(\"max\", \"59\");\n self.timeContainer.appendChild(hourInput);\n self.timeContainer.appendChild(separator);\n self.timeContainer.appendChild(minuteInput);\n if (self.config.time_24hr)\n self.timeContainer.classList.add(\"time24hr\");\n if (self.config.enableSeconds) {\n self.timeContainer.classList.add(\"hasSeconds\");\n var secondInput = createNumberInput(\"flatpickr-second\");\n self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n self.secondElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getSeconds()\n : self.config.defaultSeconds);\n self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n self.secondElement.setAttribute(\"min\", \"0\");\n self.secondElement.setAttribute(\"max\", \"59\");\n self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n self.timeContainer.appendChild(secondInput);\n }\n if (!self.config.time_24hr) {\n // add self.amPM if appropriate\n self.amPM = createElement(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[int((self.latestSelectedDateObj\n ? self.hourElement.value\n : self.config.defaultHour) > 11)]);\n self.amPM.title = self.l10n.toggleTitle;\n self.amPM.tabIndex = -1;\n self.timeContainer.appendChild(self.amPM);\n }\n return self.timeContainer;\n }\n function buildWeekdays() {\n if (!self.weekdayContainer)\n self.weekdayContainer = createElement(\"div\", \"flatpickr-weekdays\");\n else\n clearNode(self.weekdayContainer);\n for (var i = self.config.showMonths; i--;) {\n var container = createElement(\"div\", \"flatpickr-weekdaycontainer\");\n self.weekdayContainer.appendChild(container);\n }\n updateWeekdays();\n return self.weekdayContainer;\n }\n function updateWeekdays() {\n if (!self.weekdayContainer) {\n return;\n }\n var firstDayOfWeek = self.l10n.firstDayOfWeek;\n var weekdays = self.l10n.weekdays.shorthand.slice();\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = weekdays.splice(firstDayOfWeek, weekdays.length).concat(weekdays.splice(0, firstDayOfWeek));\n }\n for (var i = self.config.showMonths; i--;) {\n self.weekdayContainer.children[i].innerHTML = \"\\n \\n \" + weekdays.join(\"\") + \"\\n \\n \";\n }\n }\n /* istanbul ignore next */\n function buildWeeks() {\n self.calendarContainer.classList.add(\"hasWeeks\");\n var weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n var weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper: weekWrapper,\n weekNumbers: weekNumbers\n };\n }\n function changeMonth(value, isOffset) {\n if (isOffset === void 0) { isOffset = true; }\n var delta = isOffset ? value : value - self.currentMonth;\n if ((delta < 0 && self._hidePrevMonthArrow === true) ||\n (delta > 0 && self._hideNextMonthArrow === true))\n return;\n self.currentMonth += delta;\n if (self.currentMonth < 0 || self.currentMonth > 11) {\n self.currentYear += self.currentMonth > 11 ? 1 : -1;\n self.currentMonth = (self.currentMonth + 12) % 12;\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n buildDays();\n triggerEvent(\"onMonthChange\");\n updateNavigationCurrentMonth();\n }\n function clear(triggerChangeEvent, toInitial) {\n if (triggerChangeEvent === void 0) { triggerChangeEvent = true; }\n if (toInitial === void 0) { toInitial = true; }\n self.input.value = \"\";\n if (self.altInput !== undefined)\n self.altInput.value = \"\";\n if (self.mobileInput !== undefined)\n self.mobileInput.value = \"\";\n self.selectedDates = [];\n self.latestSelectedDateObj = undefined;\n if (toInitial === true) {\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n }\n self.showTimeInput = false;\n if (self.config.enableTime === true) {\n setDefaultHours();\n }\n self.redraw();\n if (triggerChangeEvent)\n // triggerChangeEvent is true (default) or an Event\n triggerEvent(\"onChange\");\n }\n function close() {\n self.isOpen = false;\n if (!self.isMobile) {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.classList.remove(\"open\");\n }\n if (self._input !== undefined) {\n self._input.classList.remove(\"active\");\n }\n }\n triggerEvent(\"onClose\");\n }\n function destroy() {\n if (self.config !== undefined)\n triggerEvent(\"onDestroy\");\n for (var i = self._handlers.length; i--;) {\n var h = self._handlers[i];\n h.element.removeEventListener(h.event, h.handler, h.options);\n }\n self._handlers = [];\n if (self.mobileInput) {\n if (self.mobileInput.parentNode)\n self.mobileInput.parentNode.removeChild(self.mobileInput);\n self.mobileInput = undefined;\n }\n else if (self.calendarContainer && self.calendarContainer.parentNode) {\n if (self.config.static && self.calendarContainer.parentNode) {\n var wrapper = self.calendarContainer.parentNode;\n wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n if (wrapper.parentNode) {\n while (wrapper.firstChild)\n wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n wrapper.parentNode.removeChild(wrapper);\n }\n }\n else\n self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n }\n if (self.altInput) {\n self.input.type = \"text\";\n if (self.altInput.parentNode)\n self.altInput.parentNode.removeChild(self.altInput);\n delete self.altInput;\n }\n if (self.input) {\n self.input.type = self.input._type;\n self.input.classList.remove(\"flatpickr-input\");\n self.input.removeAttribute(\"readonly\");\n self.input.value = \"\";\n }\n [\n \"_showTimeInput\",\n \"latestSelectedDateObj\",\n \"_hideNextMonthArrow\",\n \"_hidePrevMonthArrow\",\n \"__hideNextMonthArrow\",\n \"__hidePrevMonthArrow\",\n \"isMobile\",\n \"isOpen\",\n \"selectedDateElem\",\n \"minDateHasTime\",\n \"maxDateHasTime\",\n \"days\",\n \"daysContainer\",\n \"_input\",\n \"_positionElement\",\n \"innerContainer\",\n \"rContainer\",\n \"monthNav\",\n \"todayDateElem\",\n \"calendarContainer\",\n \"weekdayContainer\",\n \"prevMonthNav\",\n \"nextMonthNav\",\n \"monthsDropdownContainer\",\n \"currentMonthElement\",\n \"currentYearElement\",\n \"navigationCurrentMonth\",\n \"selectedDateElem\",\n \"config\",\n ].forEach(function (k) {\n try {\n delete self[k];\n }\n catch (_) { }\n });\n }\n function isCalendarElem(elem) {\n if (self.config.appendTo && self.config.appendTo.contains(elem))\n return true;\n return self.calendarContainer.contains(elem);\n }\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n var eventTarget_1 = getEventTarget(e);\n var isCalendarElement = isCalendarElem(eventTarget_1);\n var isInput = eventTarget_1 === self.input ||\n eventTarget_1 === self.altInput ||\n self.element.contains(eventTarget_1) ||\n // web components\n // e.path is not present in all browsers. circumventing typechecks\n (e.path &&\n e.path.indexOf &&\n (~e.path.indexOf(self.input) ||\n ~e.path.indexOf(self.altInput)));\n var lostFocus = e.type === \"blur\"\n ? isInput &&\n e.relatedTarget &&\n !isCalendarElem(e.relatedTarget)\n : !isInput &&\n !isCalendarElement &&\n !isCalendarElem(e.relatedTarget);\n var isIgnored = !self.config.ignoredFocusElements.some(function (elem) {\n return elem.contains(eventTarget_1);\n });\n if (lostFocus && isIgnored) {\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined) {\n updateTime();\n }\n self.close();\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n self.clear(false);\n self.redraw();\n }\n }\n }\n }\n function changeYear(newYear) {\n if (!newYear ||\n (self.config.minDate && newYear < self.config.minDate.getFullYear()) ||\n (self.config.maxDate && newYear > self.config.maxDate.getFullYear()))\n return;\n var newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;\n self.currentYear = newYearNum || self.currentYear;\n if (self.config.maxDate &&\n self.currentYear === self.config.maxDate.getFullYear()) {\n self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n }\n else if (self.config.minDate &&\n self.currentYear === self.config.minDate.getFullYear()) {\n self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n }\n if (isNewYear) {\n self.redraw();\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n }\n function isEnabled(date, timeless) {\n if (timeless === void 0) { timeless = true; }\n var dateToCheck = self.parseDate(date, undefined, timeless); // timeless\n if ((self.config.minDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0) ||\n (self.config.maxDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0))\n return false;\n if (self.config.enable.length === 0 && self.config.disable.length === 0)\n return true;\n if (dateToCheck === undefined)\n return false;\n var bool = self.config.enable.length > 0, array = bool ? self.config.enable : self.config.disable;\n for (var i = 0, d = void 0; i < array.length; i++) {\n d = array[i];\n if (typeof d === \"function\" &&\n d(dateToCheck) // disabled by function\n )\n return bool;\n else if (d instanceof Date &&\n dateToCheck !== undefined &&\n d.getTime() === dateToCheck.getTime())\n // disabled by date\n return bool;\n else if (typeof d === \"string\" && dateToCheck !== undefined) {\n // disabled by date string\n var parsed = self.parseDate(d, undefined, true);\n return parsed && parsed.getTime() === dateToCheck.getTime()\n ? bool\n : !bool;\n }\n else if (\n // disabled by range\n typeof d === \"object\" &&\n dateToCheck !== undefined &&\n d.from &&\n d.to &&\n dateToCheck.getTime() >= d.from.getTime() &&\n dateToCheck.getTime() <= d.to.getTime())\n return bool;\n }\n return !bool;\n }\n function isInView(elem) {\n if (self.daysContainer !== undefined)\n return (elem.className.indexOf(\"hidden\") === -1 &&\n self.daysContainer.contains(elem));\n return false;\n }\n function onKeyDown(e) {\n // e.key e.keyCode\n // \"Backspace\" 8\n // \"Tab\" 9\n // \"Enter\" 13\n // \"Escape\" (IE \"Esc\") 27\n // \"ArrowLeft\" (IE \"Left\") 37\n // \"ArrowUp\" (IE \"Up\") 38\n // \"ArrowRight\" (IE \"Right\") 39\n // \"ArrowDown\" (IE \"Down\") 40\n // \"Delete\" (IE \"Del\") 46\n var isInput = e.target === self._input;\n var allowInput = self.config.allowInput;\n var allowKeydown = self.isOpen && (!allowInput || !isInput);\n var allowInlineKeydown = self.config.inline && isInput && !allowInput;\n if (e.keyCode === 13 && isInput) {\n if (allowInput) {\n self.setDate(self._input.value, true, e.target === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n return e.target.blur();\n }\n else {\n self.open();\n }\n }\n else if (isCalendarElem(e.target) ||\n allowKeydown ||\n allowInlineKeydown) {\n var isTimeObj = !!self.timeContainer &&\n self.timeContainer.contains(e.target);\n switch (e.keyCode) {\n case 13:\n if (isTimeObj) {\n e.preventDefault();\n updateTime();\n focusAndClose();\n }\n else\n selectDate(e);\n break;\n case 27: // escape\n e.preventDefault();\n focusAndClose();\n break;\n case 8:\n case 46:\n if (isInput && !self.config.allowInput) {\n e.preventDefault();\n self.clear();\n }\n break;\n case 37:\n case 39:\n if (!isTimeObj && !isInput) {\n e.preventDefault();\n if (self.daysContainer !== undefined &&\n (allowInput === false ||\n (document.activeElement && isInView(document.activeElement)))) {\n var delta_1 = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey)\n focusOnDay(undefined, delta_1);\n else {\n e.stopPropagation();\n changeMonth(delta_1);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n }\n }\n else if (self.hourElement)\n self.hourElement.focus();\n break;\n case 38:\n case 40:\n e.preventDefault();\n var delta = e.keyCode === 40 ? 1 : -1;\n if ((self.daysContainer && e.target.$i !== undefined) ||\n e.target === self.input ||\n e.target === self.altInput) {\n if (e.ctrlKey) {\n e.stopPropagation();\n changeYear(self.currentYear - delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n else if (!isTimeObj)\n focusOnDay(undefined, delta * 7);\n }\n else if (e.target === self.currentYearElement) {\n changeYear(self.currentYear - delta);\n }\n else if (self.config.enableTime) {\n if (!isTimeObj && self.hourElement)\n self.hourElement.focus();\n updateTime(e);\n self._debouncedChange();\n }\n break;\n case 9:\n if (isTimeObj) {\n var elems = [\n self.hourElement,\n self.minuteElement,\n self.secondElement,\n self.amPM,\n ]\n .concat(self.pluginElements)\n .filter(function (x) { return x; });\n var i = elems.indexOf(e.target);\n if (i !== -1) {\n var target = elems[i + (e.shiftKey ? -1 : 1)];\n e.preventDefault();\n (target || self._input).focus();\n }\n }\n else if (!self.config.noCalendar &&\n self.daysContainer &&\n self.daysContainer.contains(e.target) &&\n e.shiftKey) {\n e.preventDefault();\n self._input.focus();\n }\n break;\n default:\n break;\n }\n }\n if (self.amPM !== undefined && e.target === self.amPM) {\n switch (e.key) {\n case self.l10n.amPM[0].charAt(0):\n case self.l10n.amPM[0].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[0];\n setHoursFromInputs();\n updateValue();\n break;\n case self.l10n.amPM[1].charAt(0):\n case self.l10n.amPM[1].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[1];\n setHoursFromInputs();\n updateValue();\n break;\n }\n }\n if (isInput || isCalendarElem(e.target)) {\n triggerEvent(\"onKeyDown\", e);\n }\n }\n function onMouseOver(elem) {\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(\"flatpickr-day\") ||\n elem.classList.contains(\"flatpickr-disabled\"))))\n return;\n var hoverDate = elem\n ? elem.dateObj.getTime()\n : self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n var containsDisabled = false;\n var minRange = 0, maxRange = 0;\n for (var t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {\n if (!isEnabled(new Date(t), true)) {\n containsDisabled =\n containsDisabled || (t > rangeStartDate && t < rangeEndDate);\n if (t < initialDate && (!minRange || t > minRange))\n minRange = t;\n else if (t > initialDate && (!maxRange || t < maxRange))\n maxRange = t;\n }\n }\n for (var m = 0; m < self.config.showMonths; m++) {\n var month = self.daysContainer.children[m];\n var _loop_1 = function (i, l) {\n var dayElem = month.children[i], date = dayElem.dateObj;\n var timestamp = date.getTime();\n var outOfRange = (minRange > 0 && timestamp < minRange) ||\n (maxRange > 0 && timestamp > maxRange);\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n return \"continue\";\n }\n else if (containsDisabled && !outOfRange)\n return \"continue\";\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n if (elem !== undefined) {\n elem.classList.add(hoverDate <= self.selectedDates[0].getTime()\n ? \"startRange\"\n : \"endRange\");\n if (initialDate < hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"startRange\");\n else if (initialDate > hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange &&\n (maxRange === 0 || timestamp <= maxRange) &&\n isBetween(timestamp, initialDate, hoverDate))\n dayElem.classList.add(\"inRange\");\n }\n };\n for (var i = 0, l = month.children.length; i < l; i++) {\n _loop_1(i, l);\n }\n }\n }\n function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline)\n positionCalendar();\n }\n function setDefaultTime() {\n self.setDate(self.config.minDate !== undefined\n ? new Date(self.config.minDate.getTime())\n : new Date(), true);\n setDefaultHours();\n updateValue();\n }\n function open(e, positionElement) {\n if (positionElement === void 0) { positionElement = self._positionElement; }\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n e.target && e.target.blur();\n }\n if (self.mobileInput !== undefined) {\n self.mobileInput.focus();\n self.mobileInput.click();\n }\n triggerEvent(\"onOpen\");\n return;\n }\n if (self._input.disabled || self.config.inline)\n return;\n var wasOpen = self.isOpen;\n self.isOpen = true;\n if (!wasOpen) {\n self.calendarContainer.classList.add(\"open\");\n self._input.classList.add(\"active\");\n triggerEvent(\"onOpen\");\n positionCalendar(positionElement);\n }\n if (self.config.enableTime === true && self.config.noCalendar === true) {\n if (self.selectedDates.length === 0) {\n setDefaultTime();\n }\n if (self.config.allowInput === false &&\n (e === undefined ||\n !self.timeContainer.contains(e.relatedTarget))) {\n setTimeout(function () { return self.hourElement.select(); }, 50);\n }\n }\n }\n function minMaxDateSetter(type) {\n return function (date) {\n var dateObj = (self.config[\"_\" + type + \"Date\"] = self.parseDate(date, self.config.dateFormat));\n var inverseDateObj = self.config[\"_\" + (type === \"min\" ? \"max\" : \"min\") + \"Date\"];\n if (dateObj !== undefined) {\n self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] =\n dateObj.getHours() > 0 ||\n dateObj.getMinutes() > 0 ||\n dateObj.getSeconds() > 0;\n }\n if (self.selectedDates) {\n self.selectedDates = self.selectedDates.filter(function (d) { return isEnabled(d); });\n if (!self.selectedDates.length && type === \"min\")\n setHoursFromDate(dateObj);\n updateValue();\n }\n if (self.daysContainer) {\n redraw();\n if (dateObj !== undefined)\n self.currentYearElement[type] = dateObj.getFullYear().toString();\n else\n self.currentYearElement.removeAttribute(type);\n self.currentYearElement.disabled =\n !!inverseDateObj &&\n dateObj !== undefined &&\n inverseDateObj.getFullYear() === dateObj.getFullYear();\n }\n };\n }\n function parseConfig() {\n var boolOpts = [\n \"wrap\",\n \"weekNumbers\",\n \"allowInput\",\n \"clickOpens\",\n \"time_24hr\",\n \"enableTime\",\n \"noCalendar\",\n \"altInput\",\n \"shorthandCurrentMonth\",\n \"inline\",\n \"static\",\n \"enableSeconds\",\n \"disableMobile\",\n ];\n var userConfig = __assign({}, instanceConfig, JSON.parse(JSON.stringify(element.dataset || {})));\n var formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: function () { return self.config._enable; },\n set: function (dates) {\n self.config._enable = parseDateRules(dates);\n }\n });\n Object.defineProperty(self.config, \"disable\", {\n get: function () { return self.config._disable; },\n set: function (dates) {\n self.config._disable = parseDateRules(dates);\n }\n });\n var timeMode = userConfig.mode === \"time\";\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n var defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaults.dateFormat;\n formats.dateFormat =\n userConfig.noCalendar || timeMode\n ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\")\n : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n }\n if (userConfig.altInput &&\n (userConfig.enableTime || timeMode) &&\n !userConfig.altFormat) {\n var defaultAltFormat = flatpickr.defaultConfig.altFormat || defaults.altFormat;\n formats.altFormat =\n userConfig.noCalendar || timeMode\n ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\")\n : defaultAltFormat + (\" h:i\" + (userConfig.enableSeconds ? \":S\" : \"\") + \" K\");\n }\n if (!userConfig.altInputClass) {\n self.config.altInputClass =\n self.input.className + \" \" + self.config.altInputClass;\n }\n Object.defineProperty(self.config, \"minDate\", {\n get: function () { return self.config._minDate; },\n set: minMaxDateSetter(\"min\")\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: function () { return self.config._maxDate; },\n set: minMaxDateSetter(\"max\")\n });\n var minMaxTimeSetter = function (type) { return function (val) {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n }; };\n Object.defineProperty(self.config, \"minTime\", {\n get: function () { return self.config._minTime; },\n set: minMaxTimeSetter(\"min\")\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: function () { return self.config._maxTime; },\n set: minMaxTimeSetter(\"max\")\n });\n if (userConfig.mode === \"time\") {\n self.config.noCalendar = true;\n self.config.enableTime = true;\n }\n Object.assign(self.config, formats, userConfig);\n for (var i = 0; i < boolOpts.length; i++)\n self.config[boolOpts[i]] =\n self.config[boolOpts[i]] === true ||\n self.config[boolOpts[i]] === \"true\";\n HOOKS.filter(function (hook) { return self.config[hook] !== undefined; }).forEach(function (hook) {\n self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);\n });\n self.isMobile =\n !self.config.disableMobile &&\n !self.config.inline &&\n self.config.mode === \"single\" &&\n !self.config.disable.length &&\n !self.config.enable.length &&\n !self.config.weekNumbers &&\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n for (var i = 0; i < self.config.plugins.length; i++) {\n var pluginConf = self.config.plugins[i](self) || {};\n for (var key in pluginConf) {\n if (HOOKS.indexOf(key) > -1) {\n self.config[key] = arrayify(pluginConf[key])\n .map(bindToInstance)\n .concat(self.config[key]);\n }\n else if (typeof userConfig[key] === \"undefined\")\n self.config[key] = pluginConf[key];\n }\n }\n triggerEvent(\"onParseConfig\");\n }\n function setupLocale() {\n if (typeof self.config.locale !== \"object\" &&\n typeof flatpickr.l10ns[self.config.locale] === \"undefined\")\n self.config.errorHandler(new Error(\"flatpickr: invalid locale \" + self.config.locale));\n self.l10n = __assign({}, flatpickr.l10ns[\"default\"], (typeof self.config.locale === \"object\"\n ? self.config.locale\n : self.config.locale !== \"default\"\n ? flatpickr.l10ns[self.config.locale]\n : undefined));\n tokenRegex.K = \"(\" + self.l10n.amPM[0] + \"|\" + self.l10n.amPM[1] + \"|\" + self.l10n.amPM[0].toLowerCase() + \"|\" + self.l10n.amPM[1].toLowerCase() + \")\";\n var userConfig = __assign({}, instanceConfig, JSON.parse(JSON.stringify(element.dataset || {})));\n if (userConfig.time_24hr === undefined &&\n flatpickr.defaultConfig.time_24hr === undefined) {\n self.config.time_24hr = self.l10n.time_24hr;\n }\n self.formatDate = createDateFormatter(self);\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n }\n function positionCalendar(customPositionElement) {\n if (self.calendarContainer === undefined)\n return;\n triggerEvent(\"onPreCalendarPosition\");\n var positionElement = customPositionElement || self._positionElement;\n var calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, (function (acc, child) { return acc + child.offsetHeight; }), 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(\" \"), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === \"above\" ||\n (configPosVertical !== \"below\" &&\n distanceFromBottom < calendarHeight &&\n inputBounds.top > calendarHeight);\n var top = window.pageYOffset +\n inputBounds.top +\n (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n toggleClass(self.calendarContainer, \"arrowTop\", !showOnTop);\n toggleClass(self.calendarContainer, \"arrowBottom\", showOnTop);\n if (self.config.inline)\n return;\n var left = window.pageXOffset +\n inputBounds.left -\n (configPosHorizontal != null && configPosHorizontal === \"center\"\n ? (calendarWidth - inputBounds.width) / 2\n : 0);\n var right = window.document.body.offsetWidth - (window.pageXOffset + inputBounds.right);\n var rightMost = left + calendarWidth > window.document.body.offsetWidth;\n var centerMost = right + calendarWidth > window.document.body.offsetWidth;\n toggleClass(self.calendarContainer, \"rightMost\", rightMost);\n if (self.config.static)\n return;\n self.calendarContainer.style.top = top + \"px\";\n if (!rightMost) {\n self.calendarContainer.style.left = left + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n else if (!centerMost) {\n self.calendarContainer.style.left = \"auto\";\n self.calendarContainer.style.right = right + \"px\";\n }\n else {\n var doc = document.styleSheets[0];\n // some testing environments don't have css support\n if (doc === undefined)\n return;\n var bodyWidth = window.document.body.offsetWidth;\n var centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n var centerBefore = \".flatpickr-calendar.centerMost:before\";\n var centerAfter = \".flatpickr-calendar.centerMost:after\";\n var centerIndex = doc.cssRules.length;\n var centerStyle = \"{left:\" + inputBounds.left + \"px;right:auto;}\";\n toggleClass(self.calendarContainer, \"rightMost\", false);\n toggleClass(self.calendarContainer, \"centerMost\", true);\n doc.insertRule(centerBefore + \",\" + centerAfter + centerStyle, centerIndex);\n self.calendarContainer.style.left = centerLeft + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n }\n function redraw() {\n if (self.config.noCalendar || self.isMobile)\n return;\n updateNavigationCurrentMonth();\n buildDays();\n }\n function focusAndClose() {\n self._input.focus();\n if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 ||\n navigator.msMaxTouchPoints !== undefined) {\n // hack - bugs in the way IE handles focus keeps the calendar open\n setTimeout(self.close, 0);\n }\n else {\n self.close();\n }\n }\n function selectDate(e) {\n e.preventDefault();\n e.stopPropagation();\n var isSelectable = function (day) {\n return day.classList &&\n day.classList.contains(\"flatpickr-day\") &&\n !day.classList.contains(\"flatpickr-disabled\") &&\n !day.classList.contains(\"notAllowed\");\n };\n var t = findParent(e.target, isSelectable);\n if (t === undefined)\n return;\n var target = t;\n var selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));\n var shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||\n selectedDate.getMonth() >\n self.currentMonth + self.config.showMonths - 1) &&\n self.config.mode !== \"range\";\n self.selectedDateElem = target;\n if (self.config.mode === \"single\")\n self.selectedDates = [selectedDate];\n else if (self.config.mode === \"multiple\") {\n var selectedIndex = isDateSelected(selectedDate);\n if (selectedIndex)\n self.selectedDates.splice(parseInt(selectedIndex), 1);\n else\n self.selectedDates.push(selectedDate);\n }\n else if (self.config.mode === \"range\") {\n if (self.selectedDates.length === 2) {\n self.clear(false, false);\n }\n self.latestSelectedDateObj = selectedDate;\n self.selectedDates.push(selectedDate);\n // unless selecting same date twice, sort ascendingly\n if (compareDates(selectedDate, self.selectedDates[0], true) !== 0)\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n setHoursFromInputs();\n if (shouldChangeMonth) {\n var isNewYear = self.currentYear !== selectedDate.getFullYear();\n self.currentYear = selectedDate.getFullYear();\n self.currentMonth = selectedDate.getMonth();\n if (isNewYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n triggerEvent(\"onMonthChange\");\n }\n updateNavigationCurrentMonth();\n buildDays();\n updateValue();\n if (self.config.enableTime)\n setTimeout(function () { return (self.showTimeInput = true); }, 50);\n // maintain focus\n if (!shouldChangeMonth &&\n self.config.mode !== \"range\" &&\n self.config.showMonths === 1)\n focusOnDayElem(target);\n else if (self.selectedDateElem !== undefined &&\n self.hourElement === undefined) {\n self.selectedDateElem && self.selectedDateElem.focus();\n }\n if (self.hourElement !== undefined)\n self.hourElement !== undefined && self.hourElement.focus();\n if (self.config.closeOnSelect) {\n var single = self.config.mode === \"single\" && !self.config.enableTime;\n var range = self.config.mode === \"range\" &&\n self.selectedDates.length === 2 &&\n !self.config.enableTime;\n if (single || range) {\n focusAndClose();\n }\n }\n triggerChange();\n }\n var CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate]\n };\n function set(option, value) {\n if (option !== null && typeof option === \"object\") {\n Object.assign(self.config, option);\n for (var key in option) {\n if (CALLBACKS[key] !== undefined)\n CALLBACKS[key].forEach(function (x) { return x(); });\n }\n }\n else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined)\n CALLBACKS[option].forEach(function (x) { return x(); });\n else if (HOOKS.indexOf(option) > -1)\n self.config[option] = arrayify(value);\n }\n self.redraw();\n updateValue(false);\n }\n function setSelectedDate(inputDate, format) {\n var dates = [];\n if (inputDate instanceof Array)\n dates = inputDate.map(function (d) { return self.parseDate(d, format); });\n else if (inputDate instanceof Date || typeof inputDate === \"number\")\n dates = [self.parseDate(inputDate, format)];\n else if (typeof inputDate === \"string\") {\n switch (self.config.mode) {\n case \"single\":\n case \"time\":\n dates = [self.parseDate(inputDate, format)];\n break;\n case \"multiple\":\n dates = inputDate\n .split(self.config.conjunction)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n case \"range\":\n dates = inputDate\n .split(self.l10n.rangeSeparator)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n default:\n break;\n }\n }\n else\n self.config.errorHandler(new Error(\"Invalid date supplied: \" + JSON.stringify(inputDate)));\n self.selectedDates = dates.filter(function (d) { return d instanceof Date && isEnabled(d, false); });\n if (self.config.mode === \"range\")\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n function setDate(date, triggerChange, format) {\n if (triggerChange === void 0) { triggerChange = false; }\n if (format === void 0) { format = self.config.dateFormat; }\n if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))\n return self.clear(triggerChange);\n setSelectedDate(date, format);\n self.showTimeInput = self.selectedDates.length > 0;\n self.latestSelectedDateObj =\n self.selectedDates[self.selectedDates.length - 1];\n self.redraw();\n jumpToDate();\n setHoursFromDate();\n if (self.selectedDates.length === 0) {\n self.clear(false);\n }\n updateValue(triggerChange);\n if (triggerChange)\n triggerEvent(\"onChange\");\n }\n function parseDateRules(arr) {\n return arr\n .slice()\n .map(function (rule) {\n if (typeof rule === \"string\" ||\n typeof rule === \"number\" ||\n rule instanceof Date) {\n return self.parseDate(rule, undefined, true);\n }\n else if (rule &&\n typeof rule === \"object\" &&\n rule.from &&\n rule.to)\n return {\n from: self.parseDate(rule.from, undefined),\n to: self.parseDate(rule.to, undefined)\n };\n return rule;\n })\n .filter(function (x) { return x; }); // remove falsy values\n }\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date();\n // Workaround IE11 setting placeholder as the input's value\n var preloadedDate = self.config.defaultDate ||\n ((self.input.nodeName === \"INPUT\" ||\n self.input.nodeName === \"TEXTAREA\") &&\n self.input.placeholder &&\n self.input.value === self.input.placeholder\n ? null\n : self.input.value);\n if (preloadedDate)\n setSelectedDate(preloadedDate, self.config.dateFormat);\n self._initialDate =\n self.selectedDates.length > 0\n ? self.selectedDates[0]\n : self.config.minDate &&\n self.config.minDate.getTime() > self.now.getTime()\n ? self.config.minDate\n : self.config.maxDate &&\n self.config.maxDate.getTime() < self.now.getTime()\n ? self.config.maxDate\n : self.now;\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n if (self.selectedDates.length > 0)\n self.latestSelectedDateObj = self.selectedDates[0];\n if (self.config.minTime !== undefined)\n self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n if (self.config.maxTime !== undefined)\n self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n self.minDateHasTime =\n !!self.config.minDate &&\n (self.config.minDate.getHours() > 0 ||\n self.config.minDate.getMinutes() > 0 ||\n self.config.minDate.getSeconds() > 0);\n self.maxDateHasTime =\n !!self.config.maxDate &&\n (self.config.maxDate.getHours() > 0 ||\n self.config.maxDate.getMinutes() > 0 ||\n self.config.maxDate.getSeconds() > 0);\n Object.defineProperty(self, \"showTimeInput\", {\n get: function () { return self._showTimeInput; },\n set: function (bool) {\n self._showTimeInput = bool;\n if (self.calendarContainer)\n toggleClass(self.calendarContainer, \"showTimeInput\", bool);\n self.isOpen && positionCalendar();\n }\n });\n }\n function setupInputs() {\n self.input = self.config.wrap\n ? element.querySelector(\"[data-input]\")\n : element;\n /* istanbul ignore next */\n if (!self.input) {\n self.config.errorHandler(new Error(\"Invalid input element specified\"));\n return;\n }\n // hack: store previous type to restore it after destroy()\n self.input._type = self.input.type;\n self.input.type = \"text\";\n self.input.classList.add(\"flatpickr-input\");\n self._input = self.input;\n if (self.config.altInput) {\n // replicate self.element\n self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n self._input = self.altInput;\n self.altInput.placeholder = self.input.placeholder;\n self.altInput.disabled = self.input.disabled;\n self.altInput.required = self.input.required;\n self.altInput.tabIndex = self.input.tabIndex;\n self.altInput.type = \"text\";\n self.input.setAttribute(\"type\", \"hidden\");\n if (!self.config.static && self.input.parentNode)\n self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n }\n if (!self.config.allowInput)\n self._input.setAttribute(\"readonly\", \"readonly\");\n self._positionElement = self.config.positionElement || self._input;\n }\n function setupMobile() {\n var inputType = self.config.enableTime\n ? self.config.noCalendar\n ? \"time\"\n : \"datetime-local\"\n : \"date\";\n self.mobileInput = createElement(\"input\", self.input.className + \" flatpickr-mobile\");\n self.mobileInput.step = self.input.getAttribute(\"step\") || \"any\";\n self.mobileInput.tabIndex = 1;\n self.mobileInput.type = inputType;\n self.mobileInput.disabled = self.input.disabled;\n self.mobileInput.required = self.input.required;\n self.mobileInput.placeholder = self.input.placeholder;\n self.mobileFormatStr =\n inputType === \"datetime-local\"\n ? \"Y-m-d\\\\TH:i:S\"\n : inputType === \"date\"\n ? \"Y-m-d\"\n : \"H:i:S\";\n if (self.selectedDates.length > 0) {\n self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);\n }\n if (self.config.minDate)\n self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n if (self.config.maxDate)\n self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n self.input.type = \"hidden\";\n if (self.altInput !== undefined)\n self.altInput.type = \"hidden\";\n try {\n if (self.input.parentNode)\n self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n }\n catch (_a) { }\n bind(self.mobileInput, \"change\", function (e) {\n self.setDate(e.target.value, false, self.mobileFormatStr);\n triggerEvent(\"onChange\");\n triggerEvent(\"onClose\");\n });\n }\n function toggle(e) {\n if (self.isOpen === true)\n return self.close();\n self.open(e);\n }\n function triggerEvent(event, data) {\n // If the instance has been destroyed already, all hooks have been removed\n if (self.config === undefined)\n return;\n var hooks = self.config[event];\n if (hooks !== undefined && hooks.length > 0) {\n for (var i = 0; hooks[i] && i < hooks.length; i++)\n hooks[i](self.selectedDates, self.input.value, self, data);\n }\n if (event === \"onChange\") {\n self.input.dispatchEvent(createEvent(\"change\"));\n // many front-end frameworks bind to the input event\n self.input.dispatchEvent(createEvent(\"input\"));\n }\n }\n function createEvent(name) {\n var e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n function isDateSelected(date) {\n for (var i = 0; i < self.selectedDates.length; i++) {\n if (compareDates(self.selectedDates[i], date) === 0)\n return \"\" + i;\n }\n return false;\n }\n function isDateInRange(date) {\n if (self.config.mode !== \"range\" || self.selectedDates.length < 2)\n return false;\n return (compareDates(date, self.selectedDates[0]) >= 0 &&\n compareDates(date, self.selectedDates[1]) <= 0);\n }\n function updateNavigationCurrentMonth() {\n if (self.config.noCalendar || self.isMobile || !self.monthNav)\n return;\n self.yearElements.forEach(function (yearElement, i) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n self.monthElements[i].textContent =\n monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n }\n else {\n self.monthsDropdownContainer.value = d.getMonth().toString();\n }\n yearElement.value = d.getFullYear().toString();\n });\n self._hidePrevMonthArrow =\n self.config.minDate !== undefined &&\n (self.currentYear === self.config.minDate.getFullYear()\n ? self.currentMonth <= self.config.minDate.getMonth()\n : self.currentYear < self.config.minDate.getFullYear());\n self._hideNextMonthArrow =\n self.config.maxDate !== undefined &&\n (self.currentYear === self.config.maxDate.getFullYear()\n ? self.currentMonth + 1 > self.config.maxDate.getMonth()\n : self.currentYear > self.config.maxDate.getFullYear());\n }\n function getDateStr(format) {\n return self.selectedDates\n .map(function (dObj) { return self.formatDate(dObj, format); })\n .filter(function (d, i, arr) {\n return self.config.mode !== \"range\" ||\n self.config.enableTime ||\n arr.indexOf(d) === i;\n })\n .join(self.config.mode !== \"range\"\n ? self.config.conjunction\n : self.l10n.rangeSeparator);\n }\n /**\n * Updates the values of inputs associated with the calendar\n */\n function updateValue(triggerChange) {\n if (triggerChange === void 0) { triggerChange = true; }\n if (self.mobileInput !== undefined && self.mobileFormatStr) {\n self.mobileInput.value =\n self.latestSelectedDateObj !== undefined\n ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr)\n : \"\";\n }\n self.input.value = getDateStr(self.config.dateFormat);\n if (self.altInput !== undefined) {\n self.altInput.value = getDateStr(self.config.altFormat);\n }\n if (triggerChange !== false)\n triggerEvent(\"onValueUpdate\");\n }\n function onMonthNavClick(e) {\n var isPrevMonth = self.prevMonthNav.contains(e.target);\n var isNextMonth = self.nextMonthNav.contains(e.target);\n if (isPrevMonth || isNextMonth) {\n changeMonth(isPrevMonth ? -1 : 1);\n }\n else if (self.yearElements.indexOf(e.target) >= 0) {\n e.target.select();\n }\n else if (e.target.classList.contains(\"arrowUp\")) {\n self.changeYear(self.currentYear + 1);\n }\n else if (e.target.classList.contains(\"arrowDown\")) {\n self.changeYear(self.currentYear - 1);\n }\n }\n function timeWrapper(e) {\n e.preventDefault();\n var isKeyDown = e.type === \"keydown\", input = e.target;\n if (self.amPM !== undefined && e.target === self.amPM) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n var min = parseFloat(input.getAttribute(\"min\")), max = parseFloat(input.getAttribute(\"max\")), step = parseFloat(input.getAttribute(\"step\")), curValue = parseInt(input.value, 10), delta = e.delta ||\n (isKeyDown ? (e.which === 38 ? 1 : -1) : 0);\n var newValue = curValue + step * delta;\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n var isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;\n if (newValue < min) {\n newValue =\n max +\n newValue +\n int(!isHourElem) +\n (int(isHourElem) && int(!self.amPM));\n if (isMinuteElem)\n incrementNumInput(undefined, -1, self.hourElement);\n }\n else if (newValue > max) {\n newValue =\n input === self.hourElement ? newValue - max - int(!self.amPM) : min;\n if (isMinuteElem)\n incrementNumInput(undefined, 1, self.hourElement);\n }\n if (self.amPM &&\n isHourElem &&\n (step === 1\n ? newValue + curValue === 23\n : Math.abs(newValue - curValue) > step)) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n input.value = pad(newValue);\n }\n }\n init();\n return self;\n }\n /* istanbul ignore next */\n function _flatpickr(nodeList, config) {\n // static list\n var nodes = Array.prototype.slice\n .call(nodeList)\n .filter(function (x) { return x instanceof HTMLElement; });\n var instances = [];\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n try {\n if (node.getAttribute(\"data-fp-omit\") !== null)\n continue;\n if (node._flatpickr !== undefined) {\n node._flatpickr.destroy();\n node._flatpickr = undefined;\n }\n node._flatpickr = FlatpickrInstance(node, config || {});\n instances.push(node._flatpickr);\n }\n catch (e) {\n console.error(e);\n }\n }\n return instances.length === 1 ? instances[0] : instances;\n }\n /* istanbul ignore next */\n if (typeof HTMLElement !== \"undefined\" &&\n typeof HTMLCollection !== \"undefined\" &&\n typeof NodeList !== \"undefined\") {\n // browser env\n HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n HTMLElement.prototype.flatpickr = function (config) {\n return _flatpickr([this], config);\n };\n }\n /* istanbul ignore next */\n var flatpickr = function (selector, config) {\n if (typeof selector === \"string\") {\n return _flatpickr(window.document.querySelectorAll(selector), config);\n }\n else if (selector instanceof Node) {\n return _flatpickr([selector], config);\n }\n else {\n return _flatpickr(selector, config);\n }\n };\n /* istanbul ignore next */\n flatpickr.defaultConfig = {};\n flatpickr.l10ns = {\n en: __assign({}, english),\n \"default\": __assign({}, english)\n };\n flatpickr.localize = function (l10n) {\n flatpickr.l10ns[\"default\"] = __assign({}, flatpickr.l10ns[\"default\"], l10n);\n };\n flatpickr.setDefaults = function (config) {\n flatpickr.defaultConfig = __assign({}, flatpickr.defaultConfig, config);\n };\n flatpickr.parseDate = createDateParser({});\n flatpickr.formatDate = createDateFormatter({});\n flatpickr.compareDates = compareDates;\n /* istanbul ignore next */\n if (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n }\n // eslint-disable-next-line @typescript-eslint/camelcase\n Date.prototype.fp_incr = function (days) {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n };\n if (typeof window !== \"undefined\") {\n window.flatpickr = flatpickr;\n }\n\n return flatpickr;\n\n}));\n","const errors = {\n\t0: \"Illegal state\",\n\t1: \"Immer drafts cannot have computed properties\",\n\t2: \"This object has been frozen and should not be mutated\",\n\t3(data: any) {\n\t\treturn (\n\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\tdata\n\t\t)\n\t},\n\t4: \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t5: \"Immer forbids circular references\",\n\t6: \"The first or second argument to `produce` must be a function\",\n\t7: \"The third argument to `produce` must be a function or undefined\",\n\t8: \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t9: \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t10: \"The given draft is already finalized\",\n\t11: \"Object.defineProperty() cannot be used on an Immer draft\",\n\t12: \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t13: \"Immer only supports deleting array indices\",\n\t14: \"Immer only supports setting array indices and the 'length' property\",\n\t15(path: string) {\n\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t},\n\t16: 'Sets cannot have \"replace\" patches.',\n\t17(op: string) {\n\t\treturn \"Unsupported patch operation: \" + op\n\t},\n\t18(plugin: string) {\n\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t},\n\t19: \"plugin not loaded\",\n\t20: \"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\"\n} as const\n\nexport function die(error: keyof typeof errors, ...args: any[]): never {\n\tif (__DEV__) {\n\t\tconst e = errors[error]\n\t\tconst msg = !e\n\t\t\t? \"unknown error nr: \" + error\n\t\t\t: typeof e === \"function\"\n\t\t\t? e.apply(null, args as any)\n\t\t\t: e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}${\n\t\t\targs.length ? \" \" + args.join(\",\") : \"\"\n\t\t}. Find the full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\thasSet,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\thasMap,\n\tArchtypeObject,\n\tArchtypeArray,\n\tArchtypeMap,\n\tArchtypeSet,\n\tdie\n} from \"../internal\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\treturn !proto || proto === Object.prototype\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original(value: T): T | undefined\nexport function original(value: Drafted): any {\n\tif (value && value[DRAFT_STATE]) {\n\t\treturn value[DRAFT_STATE].base_ as any\n\t}\n\t// otherwise return undefined\n}\n\n/*#__PURE__*/\nexport const ownKeys: (target: AnyObject) => PropertyKey[] =\n\ttypeof Reflect !== \"undefined\" && Reflect.ownKeys\n\t\t? Reflect.ownKeys\n\t\t: typeof Object.getOwnPropertySymbols !== \"undefined\"\n\t\t? obj =>\n\t\t\t\tObject.getOwnPropertyNames(obj).concat(\n\t\t\t\t\tObject.getOwnPropertySymbols(obj) as any\n\t\t\t\t)\n\t\t: /* istanbul ignore next */ Object.getOwnPropertyNames\n\nexport function each(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void\n): void\nexport function each(obj: any, iter: any) {\n\tif (getArchtype(obj) === ArchtypeObject) {\n\t\townKeys(obj).forEach(key => iter(key, obj[key], obj))\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): 0 | 1 | 2 | 3 {\n\t/* istanbul ignore next */\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_ > 3\n\t\t\t? state.type_ - 4 // cause Object and Array map back from 4 and 5\n\t\t\t: (state.type_ as any) // others are the same\n\t\t: Array.isArray(thing)\n\t\t? ArchtypeArray\n\t\t: isMap(thing)\n\t\t? ArchtypeMap\n\t\t: isSet(thing)\n\t\t? ArchtypeSet\n\t\t: ArchtypeObject\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === ArchtypeMap\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === ArchtypeMap ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === ArchtypeMap) thing.set(propOrOldValue, value)\n\telse if (t === ArchtypeSet) {\n\t\tthing.delete(propOrOldValue)\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn hasMap && target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn hasSet && target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(\n\tbase: T,\n\tinvokeGetters?: boolean\n): T\nexport function shallowCopy(base: any, invokeGetters = false) {\n\tif (Array.isArray(base)) return base.slice()\n\tconst clone = Object.create(Object.getPrototypeOf(base))\n\teach(base, (key: any) => {\n\t\tif (key === DRAFT_STATE) {\n\t\t\treturn // Never copy over draft state.\n\t\t}\n\t\tconst desc = Object.getOwnPropertyDescriptor(base, key)!\n\t\tlet {value} = desc\n\t\tif (desc.get) {\n\t\t\tif (!invokeGetters) die(1)\n\t\t\tvalue = desc.get.call(base)\n\t\t}\n\t\tif (desc.enumerable) {\n\t\t\tclone[key] = value\n\t\t} else {\n\t\t\tObject.defineProperty(clone, key, {\n\t\t\t\tvalue,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true\n\t\t\t})\n\t\t}\n\t})\n\treturn clone\n}\n\nexport function freeze(obj: any, deep: boolean): void {\n\tif (isDraft(obj) || Object.isFrozen(obj) || !isDraftable(obj)) return\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tobj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections as any\n\t}\n\tObject.freeze(obj)\n\tif (deep) each(obj, (_, value) => freeze(value, true))\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n","import {\n\tSetState,\n\tImmerScope,\n\tProxyObjectState,\n\tProxyArrayState,\n\tES5ObjectState,\n\tES5ArrayState,\n\tMapState,\n\tDRAFT_STATE\n} from \"../internal\"\n\nexport type Objectish = AnyObject | AnyArray | AnyMap | AnySet\nexport type ObjectishNoSet = AnyObject | AnyArray | AnyMap\n\nexport type AnyObject = {[key: string]: any}\nexport type AnyArray = Array\nexport type AnySet = Set\nexport type AnyMap = Map\n\nexport const ArchtypeObject = 0\nexport const ArchtypeArray = 1\nexport const ArchtypeMap = 2\nexport const ArchtypeSet = 3\n\nexport const ProxyTypeProxyObject = 0\nexport const ProxyTypeProxyArray = 1\nexport const ProxyTypeES5Object = 4\nexport const ProxyTypeES5Array = 5\nexport const ProxyTypeMap = 2\nexport const ProxyTypeSet = 3\n\nexport interface ImmerBaseState {\n\tparent_?: ImmerState\n\tscope_: ImmerScope\n\tmodified_: boolean\n\tfinalized_: boolean\n\tisManual_: boolean\n}\n\nexport type ImmerState =\n\t| ProxyObjectState\n\t| ProxyArrayState\n\t| ES5ObjectState\n\t| ES5ArrayState\n\t| MapState\n\t| SetState\n\n// The _internal_ type used for drafts (not to be confused with Draft, which is public facing)\nexport type Drafted = {\n\t[DRAFT_STATE]: T\n} & Base\n","import {\n\tImmerState,\n\tPatch,\n\tImmerScope,\n\tDrafted,\n\tAnyObject,\n\tImmerBaseState,\n\tAnyArray,\n\tAnyMap,\n\tAnySet,\n\tProxyTypeES5Array,\n\tProxyTypeES5Object,\n\tProxyTypeMap,\n\tProxyTypeSet,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\trootState: ImmerState,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_(draft: T, patches: Patch[]): T\n\t}\n\tES5?: {\n\t\twillFinalizeES5_(scope: ImmerScope, result: any, isReplaced: boolean): void\n\t\tcreateES5Proxy_(\n\t\t\tbase: T,\n\t\t\tparent?: ImmerState\n\t\t): Drafted\n\t\tmarkChangedES5_(state: ImmerState): void\n\t}\n\tMapSet?: {\n\t\tproxyMap_(target: T, parent?: ImmerState): T\n\t\tproxySet_(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin(\n\tpluginKey: K\n): Exclude {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(__DEV__ ? 18 : 19, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tplugins[pluginKey] = implementation\n}\n\n/** ES5 Plugin */\n\ninterface ES5BaseState extends ImmerBaseState {\n\tfinalizing_: boolean\n\tassigned_: {[key: string]: any}\n\tparent_?: ImmerState\n\trevoked_: boolean\n}\n\nexport interface ES5ObjectState extends ES5BaseState {\n\ttype_: typeof ProxyTypeES5Object\n\tdraft_: Drafted\n\tbase_: AnyObject\n\tcopy_: AnyObject | null\n}\n\nexport interface ES5ArrayState extends ES5BaseState {\n\ttype_: typeof ProxyTypeES5Array\n\tdraft_: Drafted\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n}\n\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: typeof ProxyTypeMap\n\tcopy_: AnyMap | undefined\n\tassigned_: Map | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: typeof ProxyTypeSet\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tProxyTypeProxyObject,\n\tProxyTypeProxyArray,\n\tgetPlugin\n} from \"../internal\"\nimport {die} from \"../utils/errors\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\tif (__DEV__ && !currentScope) die(0)\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (\n\t\tstate.type_ === ProxyTypeProxyObject ||\n\t\tstate.type_ === ProxyTypeProxyArray\n\t)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tshallowCopy,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tis,\n\tget,\n\tProxyTypeES5Object,\n\tProxyTypeES5Array,\n\tProxyTypeSet,\n\tgetPlugin,\n\tdie,\n\trevokeScope\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (!scope.immer_.useProxies_)\n\t\tgetPlugin(\"ES5\").willFinalizeES5_(scope, result, isReplaced)\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE],\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (Object.isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(value, (key, childValue) =>\n\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path)\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result =\n\t\t\t// For ES5, create a good copy from the draft first, with added keys and without deleted keys.\n\t\t\tstate.type_ === ProxyTypeES5Object || state.type_ === ProxyTypeES5Array\n\t\t\t\t? (state.copy_ = shallowCopy(state.draft_, true))\n\t\t\t\t: state.copy_\n\t\t// finalize all children of the copy\n\t\teach(result as any, (key, childValue) =>\n\t\t\tfinalizeProperty(rootScope, state, result, key, childValue, path)\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath\n) {\n\tif (__DEV__ && childValue === targetObject) die(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ProxyTypeSet && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t}\n\t// Unchanged draft properties are ignored.\n\tif (parentState && is(childValue, get(parentState!.base_, prop))) {\n\t\treturn\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue)) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\tif (!parentState || !parentState.scope_.parent_)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\tif (scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","\"use strict\"\nimport {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tProxyTypeProxyObject,\n\tProxyTypeProxyArray\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\tdrafts_?: {\n\t\t[property: string]: Drafted\n\t}\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: typeof ProxyTypeProxyObject\n\tbase_: AnyObject\n\tcopy_: AnyObject | null\n\tdraft_: Drafted\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: typeof ProxyTypeProxyArray\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ProxyTypeProxyArray : (ProxyTypeProxyObject as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// Any property proxies.\n\t\tdrafts_: {},\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nconst objectTraps: ProxyHandler = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\t\tlet {drafts_: drafts} = state\n\n\t\t// Check for existing draft in unmodified state.\n\t\tif (!state.modified_ && has(drafts, prop)) {\n\t\t\treturn drafts![prop as any]\n\t\t}\n\n\t\tconst value = latest(state)[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\n\t\t// Check for existing draft in modified state.\n\t\tif (state.modified_) {\n\t\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\t\tif (value !== peek(state.base_, prop)) return value\n\t\t\t// Store drafts on the copy (when one exists).\n\t\t\t// @ts-ignore\n\t\t\tdrafts = state.copy_\n\t\t}\n\n\t\treturn (drafts![prop as any] = createProxy(\n\t\t\tstate.scope_.immer_,\n\t\t\tvalue,\n\t\t\tstate\n\t\t))\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(state, prop: string /* strictly not, but helps TS */, value) {\n\t\tif (!state.modified_) {\n\t\t\tconst baseValue = peek(state.base_, prop)\n\t\t\t// Optimize based on value's truthiness. Truthy values are guaranteed to\n\t\t\t// never be undefined, so we can avoid the `in` operator. Lastly, truthy\n\t\t\t// values may be drafts, but falsy values are never drafts.\n\t\t\tconst isUnchanged = value\n\t\t\t\t? is(baseValue, value) || value === state.drafts_![prop]\n\t\t\t\t: is(baseValue, value) && prop in state.base_\n\t\t\tif (isUnchanged) return true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChangedProxy(state)\n\t\t}\n\t\tstate.assigned_[prop] = true\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChangedProxy(state)\n\t\t} else if (state.assigned_[prop]) {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\t// @ts-ignore\n\t\tif (state.copy_) delete state.copy_[prop]\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (desc) {\n\t\t\tdesc.writable = true\n\t\t\tdesc.configurable =\n\t\t\t\tstate.type_ !== ProxyTypeProxyArray || prop !== \"length\"\n\t\t}\n\t\treturn desc\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn Object.getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (__DEV__ && isNaN(parseInt(prop as any))) die(13)\n\treturn objectTraps.deleteProperty!.call(this, state[0], prop)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (__DEV__ && prop !== \"length\" && isNaN(parseInt(prop as any))) die(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n/**\n * Map drafts\n */\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey): any {\n\tconst state = draft[DRAFT_STATE]\n\tconst desc = Reflect.getOwnPropertyDescriptor(\n\t\tstate ? latest(state) : draft,\n\t\tprop\n\t)\n\treturn desc && desc.value\n}\n\nexport function markChangedProxy(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (\n\t\t\tstate.type_ === ProxyTypeProxyObject ||\n\t\t\tstate.type_ === ProxyTypeProxyArray\n\t\t) {\n\t\t\tconst copy = (state.copy_ = shallowCopy(state.base_))\n\t\t\teach(state.drafts_!, (key, value) => {\n\t\t\t\t// @ts-ignore\n\t\t\t\tcopy[key] = value\n\t\t\t})\n\t\t\tstate.drafts_ = undefined\n\t\t}\n\n\t\tif (state.parent_) {\n\t\t\tmarkChangedProxy(state.parent_)\n\t\t}\n\t}\n}\n\nfunction prepareCopy(state: ProxyState) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(state.base_)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tNOTHING,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tmarkChangedProxy,\n\tcreateProxyProxy,\n\tfreeze,\n\tgetPlugin,\n\tdie,\n\thasProxies,\n\tisMinified,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport class Immer implements ProducersFns {\n\tuseProxies_: boolean = hasProxies\n\n\tautoFreeze_: boolean = __DEV__ ? true /* istanbul ignore next */ : !isMinified\n\n\tconstructor(config?: {useProxies?: boolean; autoFreeze?: boolean}) {\n\t\tif (typeof config?.useProxies === \"boolean\")\n\t\t\tthis.setUseProxies(config!.useProxies)\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t\tthis.produce = this.produce.bind(this)\n\t\tthis.produceWithPatches = this.produceWithPatches.bind(this)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce(base: any, recipe?: any, patchListener?: any) {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(this, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\t\treturn result.then(\n\t\t\t\t\tresult => {\n\t\t\t\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\t\t\t\treturn processResult(result, scope)\n\t\t\t\t\t},\n\t\t\t\t\terror => {\n\t\t\t\t\t\trevokeScope(scope)\n\t\t\t\t\t\tthrow error\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === NOTHING) return undefined\n\t\t\tif (result === undefined) result = base\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\treturn result\n\t\t}\n\t}\n\n\tproduceWithPatches(arg1: any, arg2?: any, arg3?: any): any {\n\t\tif (typeof arg1 === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => arg1(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst nextState = this.produce(arg1, arg2, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\t\treturn [nextState, patches!, inversePatches!]\n\t}\n\n\tcreateDraft(base: T): Draft {\n\t\tif (!isDraftable(base)) die(8)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(this, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft ? T : never {\n\t\tconst state: ImmerState = draft && draft[DRAFT_STATE]\n\t\tif (__DEV__) {\n\t\t\tif (!state || !state.isManual_) die(9)\n\t\t\tif (state.finalized_) die(10)\n\t\t}\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is disabled in production.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n\t * always faster than using ES5 proxies.\n\t *\n\t * By default, feature detection is used, so calling this is rarely necessary.\n\t */\n\tsetUseProxies(value: boolean) {\n\t\tif (!hasProxies) {\n\t\t\tdie(20)\n\t\t}\n\t\tthis.useProxies_ = value\n\t}\n\n\tapplyPatches(base: Objectish, patches: Patch[]) {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches.slice(i + 1))\n\t\t)\n\t}\n}\n\nexport function createProxy(\n\timmer: Immer,\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: immer.useProxies_\n\t\t? createProxyProxy(value, parent)\n\t\t: getPlugin(\"ES5\").createES5Proxy_(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n\nexport function markChanged(immer: Immer, state: ImmerState) {\n\tif (immer.useProxies_) {\n\t\tmarkChangedProxy(state)\n\t} else {\n\t\tgetPlugin(\"ES5\").markChangedES5_(state)\n\t}\n}\n","import {\n\tImmerState,\n\tDrafted,\n\tObjectish,\n\tES5ArrayState,\n\tES5ObjectState,\n\teach,\n\thas,\n\tisDraft,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tDRAFT_STATE,\n\tis,\n\tloadPlugin,\n\tImmerScope,\n\tcreateProxy,\n\tProxyTypeES5Array,\n\tProxyTypeES5Object,\n\tAnyObject,\n\tgetCurrentScope,\n\tdie\n} from \"../internal\"\n\ntype ES5State = ES5ArrayState | ES5ObjectState\n\nexport function enableES5() {\n\tfunction willFinalizeES5_(\n\t\tscope: ImmerScope,\n\t\tresult: any,\n\t\tisReplaced: boolean\n\t) {\n\t\tscope.drafts_!.forEach((draft: any) => {\n\t\t\t;(draft[DRAFT_STATE] as ES5State).finalizing_ = true\n\t\t})\n\t\tif (!isReplaced) {\n\t\t\tif (scope.patches_) {\n\t\t\t\tmarkChangesRecursively(scope.drafts_![0])\n\t\t\t}\n\t\t\t// This is faster when we don't care about which attributes changed.\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t\t// When a child draft is returned, look for changes.\n\t\telse if (\n\t\t\tisDraft(result) &&\n\t\t\t(result[DRAFT_STATE] as ES5State).scope_ === scope\n\t\t) {\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t}\n\n\tfunction createES5Proxy_(\n\t\tbase: T,\n\t\tparent?: ImmerState\n\t): Drafted {\n\t\tconst isArray = Array.isArray(base)\n\t\tconst draft: any = clonePotentialDraft(base)\n\n\t\teach(draft, prop => {\n\t\t\tproxyProperty(draft, prop, isArray || isEnumerable(base, prop))\n\t\t})\n\n\t\tconst state: ES5ObjectState | ES5ArrayState = {\n\t\t\ttype_: isArray ? ProxyTypeES5Array : (ProxyTypeES5Object as any),\n\t\t\tscope_: parent ? parent.scope_ : getCurrentScope(),\n\t\t\tmodified_: false,\n\t\t\tfinalizing_: false,\n\t\t\tfinalized_: false,\n\t\t\tassigned_: {},\n\t\t\tparent_: parent,\n\t\t\tbase_: base,\n\t\t\tdraft_: draft,\n\t\t\tcopy_: null,\n\t\t\trevoked_: false,\n\t\t\tisManual_: false\n\t\t}\n\n\t\tObject.defineProperty(draft, DRAFT_STATE, {\n\t\t\tvalue: state,\n\t\t\t// enumerable: false <- the default\n\t\t\twritable: true\n\t\t})\n\t\treturn draft\n\t}\n\n\t// Access a property without creating an Immer draft.\n\tfunction peek(draft: Drafted, prop: PropertyKey) {\n\t\tconst state: ES5State = draft[DRAFT_STATE]\n\t\tif (state && !state.finalizing_) {\n\t\t\tstate.finalizing_ = true\n\t\t\tconst value = draft[prop]\n\t\t\tstate.finalizing_ = false\n\t\t\treturn value\n\t\t}\n\t\treturn draft[prop]\n\t}\n\n\tfunction get(state: ES5State, prop: string | number) {\n\t\tassertUnrevoked(state)\n\t\tconst value = peek(latest(state), prop)\n\t\tif (state.finalizing_) return value\n\t\t// Create a draft if the value is unmodified.\n\t\tif (value === peek(state.base_, prop) && isDraftable(value)) {\n\t\t\tprepareCopy(state)\n\t\t\t// @ts-ignore\n\t\t\treturn (state.copy_![prop] = createProxy(\n\t\t\t\tstate.scope_.immer_,\n\t\t\t\tvalue,\n\t\t\t\tstate\n\t\t\t))\n\t\t}\n\t\treturn value\n\t}\n\n\tfunction set(state: ES5State, prop: string | number, value: any) {\n\t\tassertUnrevoked(state)\n\t\tstate.assigned_[prop] = true\n\t\tif (!state.modified_) {\n\t\t\tif (is(value, peek(latest(state), prop))) return\n\t\t\tmarkChangedES5_(state)\n\t\t\tprepareCopy(state)\n\t\t}\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t}\n\n\tfunction markChangedES5_(state: ImmerState) {\n\t\tif (!state.modified_) {\n\t\t\tstate.modified_ = true\n\t\t\tif (state.parent_) markChangedES5_(state.parent_)\n\t\t}\n\t}\n\n\tfunction prepareCopy(state: ES5State) {\n\t\tif (!state.copy_) state.copy_ = clonePotentialDraft(state.base_)\n\t}\n\n\tfunction clonePotentialDraft(base: Objectish) {\n\t\tconst state: ES5State | undefined = base && (base as any)[DRAFT_STATE]\n\t\tif (state) {\n\t\t\tstate.finalizing_ = true\n\t\t\tconst draft = shallowCopy(state.draft_, true)\n\t\t\tstate.finalizing_ = false\n\t\t\treturn draft\n\t\t}\n\t\treturn shallowCopy(base)\n\t}\n\n\t// property descriptors are recycled to make sure we don't create a get and set closure per property,\n\t// but share them all instead\n\tconst descriptors: {[prop: string]: PropertyDescriptor} = {}\n\n\tfunction proxyProperty(\n\t\tdraft: Drafted,\n\t\tprop: string | number,\n\t\tenumerable: boolean\n\t) {\n\t\tlet desc = descriptors[prop]\n\t\tif (desc) {\n\t\t\tdesc.enumerable = enumerable\n\t\t} else {\n\t\t\tdescriptors[prop] = desc = {\n\t\t\t\t// configurable: true,\n\t\t\t\tenumerable,\n\t\t\t\tget(this: any) {\n\t\t\t\t\treturn get(this[DRAFT_STATE], prop)\n\t\t\t\t},\n\t\t\t\tset(this: any, value) {\n\t\t\t\t\tset(this[DRAFT_STATE], prop, value)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tObject.defineProperty(draft, prop, desc)\n\t}\n\n\t// This looks expensive, but only proxies are visited, and only objects without known changes are scanned.\n\tfunction markChangesSweep(drafts: Drafted[]) {\n\t\t// The natural order of drafts in the `scope` array is based on when they\n\t\t// were accessed. By processing drafts in reverse natural order, we have a\n\t\t// better chance of processing leaf nodes first. When a leaf node is known to\n\t\t// have changed, we can avoid any traversal of its ancestor nodes.\n\t\tfor (let i = drafts.length - 1; i >= 0; i--) {\n\t\t\tconst state: ES5State = drafts[i][DRAFT_STATE]\n\t\t\tif (!state.modified_) {\n\t\t\t\tswitch (state.type_) {\n\t\t\t\t\tcase ProxyTypeES5Array:\n\t\t\t\t\t\tif (hasArrayChanges(state)) markChangedES5_(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase ProxyTypeES5Object:\n\t\t\t\t\t\tif (hasObjectChanges(state)) markChangedES5_(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction markChangesRecursively(object: any) {\n\t\tif (!object || typeof object !== \"object\") return\n\t\tconst state: ES5State | undefined = object[DRAFT_STATE]\n\t\tif (!state) return\n\t\tconst {base_, draft_, assigned_, type_} = state\n\t\tif (type_ === ProxyTypeES5Object) {\n\t\t\t// Look for added keys.\n\t\t\t// TODO: looks quite duplicate to hasObjectChanges,\n\t\t\t// probably there is a faster way to detect changes, as sweep + recurse seems to do some\n\t\t\t// unnecessary work.\n\t\t\t// also: probably we can store the information we detect here, to speed up tree finalization!\n\t\t\teach(draft_, key => {\n\t\t\t\tif ((key as any) === DRAFT_STATE) return\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif ((base_ as any)[key] === undefined && !has(base_, key)) {\n\t\t\t\t\tassigned_[key] = true\n\t\t\t\t\tmarkChangedES5_(state)\n\t\t\t\t} else if (!assigned_[key]) {\n\t\t\t\t\t// Only untouched properties trigger recursion.\n\t\t\t\t\tmarkChangesRecursively(draft_[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\t// Look for removed keys.\n\t\t\teach(base_, key => {\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif (draft_[key] === undefined && !has(draft_, key)) {\n\t\t\t\t\tassigned_[key] = false\n\t\t\t\t\tmarkChangedES5_(state)\n\t\t\t\t}\n\t\t\t})\n\t\t} else if (type_ === ProxyTypeES5Array) {\n\t\t\tif (hasArrayChanges(state as ES5ArrayState)) {\n\t\t\t\tmarkChangedES5_(state)\n\t\t\t\tassigned_.length = true\n\t\t\t}\n\n\t\t\tif (draft_.length < base_.length) {\n\t\t\t\tfor (let i = draft_.length; i < base_.length; i++) assigned_[i] = false\n\t\t\t} else {\n\t\t\t\tfor (let i = base_.length; i < draft_.length; i++) assigned_[i] = true\n\t\t\t}\n\n\t\t\t// Minimum count is enough, the other parts has been processed.\n\t\t\tconst min = Math.min(draft_.length, base_.length)\n\n\t\t\tfor (let i = 0; i < min; i++) {\n\t\t\t\t// Only untouched indices trigger recursion.\n\t\t\t\tif (assigned_[i] === undefined) markChangesRecursively(draft_[i])\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction hasObjectChanges(state: ES5ObjectState) {\n\t\tconst {base_, draft_} = state\n\n\t\t// Search for added keys and changed keys. Start at the back, because\n\t\t// non-numeric keys are ordered by time of definition on the object.\n\t\tconst keys = Object.keys(draft_)\n\t\tfor (let i = keys.length - 1; i >= 0; i--) {\n\t\t\tconst key = keys[i]\n\t\t\tconst baseValue = base_[key]\n\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\tif (baseValue === undefined && !has(base_, key)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Once a base key is deleted, future changes go undetected, because its\n\t\t\t// descriptor is erased. This branch detects any missed changes.\n\t\t\telse {\n\t\t\t\tconst value = draft_[key]\n\t\t\t\tconst state: ImmerState = value && value[DRAFT_STATE]\n\t\t\t\tif (state ? state.base_ !== baseValue : !is(value, baseValue)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// At this point, no keys were added or changed.\n\t\t// Compare key count to determine if keys were deleted.\n\t\treturn keys.length !== Object.keys(base_).length\n\t}\n\n\tfunction hasArrayChanges(state: ES5ArrayState) {\n\t\tconst {draft_} = state\n\t\tif (draft_.length !== state.base_.length) return true\n\t\t// See #116\n\t\t// If we first shorten the length, our array interceptors will be removed.\n\t\t// If after that new items are added, result in the same original length,\n\t\t// those last items will have no intercepting property.\n\t\t// So if there is no own descriptor on the last position, we know that items were removed and added\n\t\t// N.B.: splice, unshift, etc only shift values around, but not prop descriptors, so we only have to check\n\t\t// the last one\n\t\tconst descriptor = Object.getOwnPropertyDescriptor(\n\t\t\tdraft_,\n\t\t\tdraft_.length - 1\n\t\t)\n\t\t// descriptor can be null, but only for newly created sparse arrays, eg. new Array(10)\n\t\tif (descriptor && !descriptor.get) return true\n\t\t// For all other cases, we don't have to compare, as they would have been picked up by the index setters\n\t\treturn false\n\t}\n\n\t/*#__PURE__*/\n\tfunction isEnumerable(base: AnyObject, prop: PropertyKey): boolean {\n\t\tconst desc = Object.getOwnPropertyDescriptor(base, prop)\n\t\treturn desc && desc.enumerable ? true : false\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"ES5\", {\n\t\tcreateES5Proxy_,\n\t\tmarkChangedES5_,\n\t\twillFinalizeES5_\n\t})\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\toriginal,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = immer.produce\nexport default produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * By default, auto-freezing is disabled in production.\n */\nexport const setAutoFreeze = immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n * always faster than using ES5 proxies.\n *\n * By default, feature detection is used, so calling this is rarely necessary.\n */\nexport const setUseProxies = immer.setUseProxies.bind(immer)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft(value: T): Draft {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable(value: T): Immutable {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enableES5} from \"./plugins/es5\"\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableAllPlugins} from \"./plugins/all\"\n","// Should be no imports here!\n\n// SOme things that should be evaluated before all else...\nconst hasSymbol = typeof Symbol !== \"undefined\"\nexport const hasMap = typeof Map !== \"undefined\"\nexport const hasSet = typeof Set !== \"undefined\"\nexport const hasProxies =\n\ttypeof Proxy !== \"undefined\" &&\n\ttypeof Proxy.revocable !== \"undefined\" &&\n\ttypeof Reflect !== \"undefined\"\n\n/* istanbul ignore next */\nfunction mini() {}\nexport const isMinified = mini.name !== \"mini\"\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: Nothing = hasSymbol\n\t? Symbol(\"immer-nothing\")\n\t: ({[\"immer-nothing\"]: true} as any)\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = hasSymbol\n\t? Symbol(\"immer-draftable\")\n\t: (\"__$immer_draftable\" as any)\n\nexport const DRAFT_STATE: unique symbol = hasSymbol\n\t? Symbol(\"immer-state\")\n\t: (\"__$immer_state\" as any)\n\nexport const iteratorSymbol: typeof Symbol.iterator = hasSymbol\n\t? Symbol.iterator\n\t: (\"@@iterator\" as any)\n\n/** Use a class type for `nothing` so its type is unique */\nexport class Nothing {\n\t// This lets us do `Exclude`\n\t// @ts-ignore\n\tprivate _!: unique symbol\n}\n","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport ReactNativePropRegistry from './ReactNativePropRegistry';\nimport flattenStyle from './flattenStyle';\nimport validate from './validate';\nvar absoluteFillObject = {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n};\nvar absoluteFill = ReactNativePropRegistry.register(absoluteFillObject);\nvar StyleSheet = {\n absoluteFill: absoluteFill,\n absoluteFillObject: absoluteFillObject,\n compose: function compose(style1, style2) {\n if (process.env.NODE_ENV !== 'production') {\n /* eslint-disable prefer-rest-params */\n var len = arguments.length;\n\n if (len > 2) {\n var readableStyles = Array.prototype.slice.call(arguments).map(function (a) {\n return flattenStyle(a);\n });\n throw new Error(\"StyleSheet.compose() only accepts 2 arguments, received \" + len + \": \" + JSON.stringify(readableStyles));\n }\n /* eslint-enable prefer-rest-params */\n\n }\n\n if (style1 && style2) {\n return [style1, style2];\n } else {\n return style1 || style2;\n }\n },\n create: function create(styles) {\n var result = {};\n Object.keys(styles).forEach(function (key) {\n if (process.env.NODE_ENV !== 'production') {\n validate(key, styles);\n }\n\n var id = styles[key] && ReactNativePropRegistry.register(styles[key]);\n result[key] = id;\n });\n return result;\n },\n flatten: flattenStyle,\n // `hairlineWidth` is not implemented using screen density as browsers may\n // round sub-pixel values down to `0`, causing the line not to be rendered.\n hairlineWidth: 1\n};\nexport default StyleSheet;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport StyleSheet from './StyleSheet'; // allow original component styles to be inspected in React Dev Tools\n\nif (canUseDOM && window.__REACT_DEVTOOLS_GLOBAL_HOOK__) {\n window.__REACT_DEVTOOLS_GLOBAL_HOOK__.resolveRNStyle = StyleSheet.flatten;\n}\n\nexport default StyleSheet;","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport gud from 'gud';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + gud() + '__';\n\n var Provider =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer =\n /*#__PURE__*/\n function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle\";\nimport RouterContext from \"./RouterContext\";\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\nfunction Prompt({ message, when = true }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n if (!when || context.staticContext) return null;\n\n const method = context.history.block;\n\n return (\n {\n self.release = method(message);\n }}\n onUpdate={(self, prevProps) => {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n }}\n onUnmount={self => {\n self.release();\n }}\n message={message}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n const messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nexport default Prompt;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle\";\nimport RouterContext from \"./RouterContext\";\nimport generatePath from \"./generatePath\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\nimport matchPath from \"./matchPath\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\nimport matchPath from \"./matchPath\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(Context).history;\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n return path\n ? matchPath(useLocation().pathname, path)\n : useContext(Context).match;\n}\n","/**\n * The current status of a query’s execution in our system.\n */\nexport enum NetworkStatus {\n /**\n * The query has never been run before and the query is now currently running. A query will still\n * have this network status even if a partial data result was returned from the cache, but a\n * query was dispatched anyway.\n */\n loading = 1,\n\n /**\n * If `setVariables` was called and a query was fired because of that then the network status\n * will be `setVariables` until the result of that query comes back.\n */\n setVariables = 2,\n\n /**\n * Indicates that `fetchMore` was called on this query and that the query created is currently in\n * flight.\n */\n fetchMore = 3,\n\n /**\n * Similar to the `setVariables` network status. It means that `refetch` was called on a query\n * and the refetch request is currently in flight.\n */\n refetch = 4,\n\n /**\n * Indicates that a polling query is currently in flight. So for example if you are polling a\n * query every 10 seconds then the network status will switch to `poll` every 10 seconds whenever\n * a poll request has been sent but not resolved.\n */\n poll = 6,\n\n /**\n * No request is in flight for this query, and no errors happened. Everything is OK.\n */\n ready = 7,\n\n /**\n * No request is in flight for this query, but one or more errors were detected.\n */\n error = 8,\n}\n\n/**\n * Returns true if there is currently a network request in flight according to a given network\n * status.\n */\nexport function isNetworkRequestInFlight(\n networkStatus: NetworkStatus,\n): boolean {\n return networkStatus < 7;\n}\n","// This simplified polyfill attempts to follow the ECMAScript Observable proposal.\n// See https://github.com/zenparsing/es-observable\nimport { Observable as LinkObservable } from 'apollo-link';\n\nexport type Subscription = ZenObservable.Subscription;\nexport type Observer = ZenObservable.Observer;\n\nimport $$observable from 'symbol-observable';\n\n// rxjs interopt\nexport class Observable extends LinkObservable {\n public [$$observable]() {\n return this;\n }\n\n public ['@@observable' as any]() {\n return this;\n }\n}\n","export function isNonEmptyArray(value?: ArrayLike): value is Array {\n return Array.isArray(value) && value.length > 0;\n}\n","import { GraphQLError } from 'graphql';\nimport { isNonEmptyArray } from '../util/arrays';\n\nexport function isApolloError(err: Error): err is ApolloError {\n return err.hasOwnProperty('graphQLErrors');\n}\n\n// Sets the error message on this error according to the\n// the GraphQL and network errors that are present.\n// If the error message has already been set through the\n// constructor or otherwise, this function is a nop.\nconst generateErrorMessage = (err: ApolloError) => {\n let message = '';\n // If we have GraphQL errors present, add that to the error message.\n if (isNonEmptyArray(err.graphQLErrors)) {\n err.graphQLErrors.forEach((graphQLError: GraphQLError) => {\n const errorMessage = graphQLError\n ? graphQLError.message\n : 'Error message not found.';\n message += `GraphQL error: ${errorMessage}\\n`;\n });\n }\n\n if (err.networkError) {\n message += 'Network error: ' + err.networkError.message + '\\n';\n }\n\n // strip newline from the end of the message\n message = message.replace(/\\n$/, '');\n return message;\n};\n\nexport class ApolloError extends Error {\n public message: string;\n public graphQLErrors: ReadonlyArray;\n public networkError: Error | null;\n\n // An object that can be used to provide some additional information\n // about an error, e.g. specifying the type of error this is. Used\n // internally within Apollo Client.\n public extraInfo: any;\n\n // Constructs an instance of ApolloError given a GraphQLError\n // or a network error. Note that one of these has to be a valid\n // value or the constructed error will be meaningless.\n constructor({\n graphQLErrors,\n networkError,\n errorMessage,\n extraInfo,\n }: {\n graphQLErrors?: ReadonlyArray;\n networkError?: Error | null;\n errorMessage?: string;\n extraInfo?: any;\n }) {\n super(errorMessage);\n this.graphQLErrors = graphQLErrors || [];\n this.networkError = networkError || null;\n\n if (!errorMessage) {\n this.message = generateErrorMessage(this);\n } else {\n this.message = errorMessage;\n }\n\n this.extraInfo = extraInfo;\n\n // We're not using `Object.setPrototypeOf` here as it isn't fully\n // supported on Android (see issue #3236).\n (this as any).__proto__ = ApolloError.prototype;\n }\n}\n","import { FetchResult } from 'apollo-link';\nimport { DocumentNode, GraphQLError } from 'graphql';\n\nimport { QueryStoreValue } from '../data/queries';\nimport { NetworkStatus } from './networkStatus';\nimport { Resolver } from './LocalState';\n\nexport type QueryListener = (\n queryStoreValue: QueryStoreValue,\n newData?: any,\n forceResolvers?: boolean,\n) => void;\n\nexport type OperationVariables = { [key: string]: any };\n\nexport type PureQueryOptions = {\n query: DocumentNode;\n variables?: { [key: string]: any };\n context?: any;\n};\n\nexport type ApolloQueryResult = {\n data: T;\n errors?: ReadonlyArray;\n loading: boolean;\n networkStatus: NetworkStatus;\n stale: boolean;\n};\n\nexport enum FetchType {\n normal = 1,\n refetch = 2,\n poll = 3,\n}\n\n// This is part of the public API, people write these functions in `updateQueries`.\nexport type MutationQueryReducer = (\n previousResult: Record,\n options: {\n mutationResult: FetchResult;\n queryName: string | undefined;\n queryVariables: Record;\n },\n) => Record;\n\nexport type MutationQueryReducersMap = {\n [queryName: string]: MutationQueryReducer;\n};\n\nexport interface Resolvers {\n [key: string]: {\n [ field: string ]: Resolver;\n };\n}\n","import {\n isEqual,\n tryFunctionOrLogError,\n cloneDeep,\n getOperationDefinition,\n} from 'apollo-utilities';\nimport { GraphQLError } from 'graphql';\nimport { NetworkStatus, isNetworkRequestInFlight } from './networkStatus';\nimport { Observable, Observer, Subscription } from '../util/Observable';\nimport { ApolloError } from '../errors/ApolloError';\nimport { QueryManager } from './QueryManager';\nimport { ApolloQueryResult, FetchType, OperationVariables } from './types';\nimport {\n WatchQueryOptions,\n FetchMoreQueryOptions,\n SubscribeToMoreOptions,\n ErrorPolicy,\n} from './watchQueryOptions';\n\nimport { QueryStoreValue } from '../data/queries';\n\nimport { invariant, InvariantError } from 'ts-invariant';\nimport { isNonEmptyArray } from '../util/arrays';\n\n// XXX remove in the next breaking semver change (3.0)\n// Deprecated, use ApolloCurrentQueryResult\nexport type ApolloCurrentResult = {\n data: T | {};\n errors?: ReadonlyArray;\n loading: boolean;\n networkStatus: NetworkStatus;\n error?: ApolloError;\n partial?: boolean;\n};\n\nexport type ApolloCurrentQueryResult = {\n data: T | undefined;\n errors?: ReadonlyArray;\n loading: boolean;\n networkStatus: NetworkStatus;\n error?: ApolloError;\n partial?: boolean;\n stale?: boolean;\n};\n\nexport interface FetchMoreOptions<\n TData = any,\n TVariables = OperationVariables\n> {\n updateQuery: (\n previousQueryResult: TData,\n options: {\n fetchMoreResult?: TData;\n variables?: TVariables;\n },\n ) => TData;\n}\n\nexport interface UpdateQueryOptions {\n variables?: TVariables;\n}\n\nexport const hasError = (\n storeValue: QueryStoreValue,\n policy: ErrorPolicy = 'none',\n) => storeValue && (\n storeValue.networkError ||\n (policy === 'none' && isNonEmptyArray(storeValue.graphQLErrors))\n);\n\nexport class ObservableQuery<\n TData = any,\n TVariables = OperationVariables\n> extends Observable> {\n public options: WatchQueryOptions;\n public readonly queryId: string;\n public readonly queryName?: string;\n /**\n *\n * The current value of the variables for this query. Can change.\n */\n public variables: TVariables;\n\n private shouldSubscribe: boolean;\n private isTornDown: boolean;\n private queryManager: QueryManager;\n private observers = new Set>>();\n private subscriptions = new Set();\n\n private lastResult: ApolloQueryResult;\n private lastResultSnapshot: ApolloQueryResult;\n private lastError: ApolloError;\n\n constructor({\n queryManager,\n options,\n shouldSubscribe = true,\n }: {\n queryManager: QueryManager;\n options: WatchQueryOptions;\n shouldSubscribe?: boolean;\n }) {\n super((observer: Observer>) =>\n this.onSubscribe(observer),\n );\n\n // active state\n this.isTornDown = false;\n\n // query information\n this.options = options;\n this.variables = options.variables || ({} as TVariables);\n this.queryId = queryManager.generateQueryId();\n this.shouldSubscribe = shouldSubscribe;\n\n const opDef = getOperationDefinition(options.query);\n this.queryName = opDef && opDef.name && opDef.name.value;\n\n // related classes\n this.queryManager = queryManager;\n }\n\n public result(): Promise> {\n return new Promise((resolve, reject) => {\n const observer: Observer> = {\n next: (result: ApolloQueryResult) => {\n resolve(result);\n\n // Stop the query within the QueryManager if we can before\n // this function returns.\n //\n // We do this in order to prevent observers piling up within\n // the QueryManager. Notice that we only fully unsubscribe\n // from the subscription in a setTimeout(..., 0) call. This call can\n // actually be handled by the browser at a much later time. If queries\n // are fired in the meantime, observers that should have been removed\n // from the QueryManager will continue to fire, causing an unnecessary\n // performance hit.\n this.observers.delete(observer);\n if (!this.observers.size) {\n this.queryManager.removeQuery(this.queryId);\n }\n\n setTimeout(() => {\n subscription.unsubscribe();\n }, 0);\n },\n error: reject,\n };\n const subscription = this.subscribe(observer);\n });\n }\n\n // XXX remove in the next breaking semver change (3.0)\n // Deprecated, use getCurrentResult()\n public currentResult(): ApolloCurrentResult {\n const result = this.getCurrentResult() as ApolloCurrentResult;\n if (result.data === undefined) {\n result.data = {};\n }\n return result;\n }\n\n /**\n * Return the result of the query from the local cache as well as some fetching status\n * `loading` and `networkStatus` allow to know if a request is in flight\n * `partial` lets you know if the result from the local cache is complete or partial\n * @return {data: Object, error: ApolloError, loading: boolean, networkStatus: number, partial: boolean}\n */\n public getCurrentResult(): ApolloCurrentQueryResult {\n if (this.isTornDown) {\n const { lastResult } = this;\n return {\n data: !this.lastError && lastResult && lastResult.data || void 0,\n error: this.lastError,\n loading: false,\n networkStatus: NetworkStatus.error,\n };\n }\n\n const { data, partial } = this.queryManager.getCurrentQueryResult(this);\n const queryStoreValue = this.queryManager.queryStore.get(this.queryId);\n let result: ApolloQueryResult;\n\n const { fetchPolicy } = this.options;\n\n const isNetworkFetchPolicy =\n fetchPolicy === 'network-only' ||\n fetchPolicy === 'no-cache';\n\n if (queryStoreValue) {\n const { networkStatus } = queryStoreValue;\n\n if (hasError(queryStoreValue, this.options.errorPolicy)) {\n return {\n data: void 0,\n loading: false,\n networkStatus,\n error: new ApolloError({\n graphQLErrors: queryStoreValue.graphQLErrors,\n networkError: queryStoreValue.networkError,\n }),\n };\n }\n\n // Variables might have been added dynamically at query time, when\n // using `@client @export(as: \"varname\")` for example. When this happens,\n // the variables have been updated in the query store, but not updated on\n // the original `ObservableQuery`. We'll update the observable query\n // variables here to match, so retrieving from the cache doesn't fail.\n if (queryStoreValue.variables) {\n this.options.variables = {\n ...this.options.variables,\n ...(queryStoreValue.variables as TVariables),\n };\n this.variables = this.options.variables;\n }\n\n result = {\n data,\n loading: isNetworkRequestInFlight(networkStatus),\n networkStatus,\n } as ApolloQueryResult;\n\n if (queryStoreValue.graphQLErrors && this.options.errorPolicy === 'all') {\n result.errors = queryStoreValue.graphQLErrors;\n }\n\n } else {\n // We need to be careful about the loading state we show to the user, to try\n // and be vaguely in line with what the user would have seen from .subscribe()\n // but to still provide useful information synchronously when the query\n // will not end up hitting the server.\n // See more: https://github.com/apollostack/apollo-client/issues/707\n // Basically: is there a query in flight right now (modolo the next tick)?\n const loading = isNetworkFetchPolicy ||\n (partial && fetchPolicy !== 'cache-only');\n\n result = {\n data,\n loading,\n networkStatus: loading ? NetworkStatus.loading : NetworkStatus.ready,\n } as ApolloQueryResult;\n }\n\n if (!partial) {\n this.updateLastResult({ ...result, stale: false });\n }\n\n return { ...result, partial };\n }\n\n // Compares newResult to the snapshot we took of this.lastResult when it was\n // first received.\n public isDifferentFromLastResult(newResult: ApolloQueryResult) {\n const { lastResultSnapshot: snapshot } = this;\n return !(\n snapshot &&\n newResult &&\n snapshot.networkStatus === newResult.networkStatus &&\n snapshot.stale === newResult.stale &&\n isEqual(snapshot.data, newResult.data)\n );\n }\n\n // Returns the last result that observer.next was called with. This is not the same as\n // getCurrentResult! If you're not sure which you need, then you probably need getCurrentResult.\n public getLastResult(): ApolloQueryResult {\n return this.lastResult;\n }\n\n public getLastError(): ApolloError {\n return this.lastError;\n }\n\n public resetLastResults(): void {\n delete this.lastResult;\n delete this.lastResultSnapshot;\n delete this.lastError;\n this.isTornDown = false;\n }\n\n public resetQueryStoreErrors() {\n const queryStore = this.queryManager.queryStore.get(this.queryId);\n if (queryStore) {\n queryStore.networkError = null;\n queryStore.graphQLErrors = [];\n }\n }\n\n /**\n * Update the variables of this observable query, and fetch the new results.\n * This method should be preferred over `setVariables` in most use cases.\n *\n * @param variables: The new set of variables. If there are missing variables,\n * the previous values of those variables will be used.\n */\n public refetch(variables?: TVariables): Promise> {\n let { fetchPolicy } = this.options;\n // early return if trying to read from cache during refetch\n if (fetchPolicy === 'cache-only') {\n return Promise.reject(new InvariantError(\n 'cache-only fetchPolicy option should not be used together with query refetch.',\n ));\n }\n\n // Unless the provided fetchPolicy always consults the network\n // (no-cache, network-only, or cache-and-network), override it with\n // network-only to force the refetch for this fetchQuery call.\n if (fetchPolicy !== 'no-cache' &&\n fetchPolicy !== 'cache-and-network') {\n fetchPolicy = 'network-only';\n }\n\n if (!isEqual(this.variables, variables)) {\n // update observable variables\n this.variables = {\n ...this.variables,\n ...variables,\n };\n }\n\n if (!isEqual(this.options.variables, this.variables)) {\n // Update the existing options with new variables\n this.options.variables = {\n ...this.options.variables,\n ...this.variables,\n };\n }\n\n return this.queryManager.fetchQuery(\n this.queryId,\n { ...this.options, fetchPolicy },\n FetchType.refetch,\n ) as Promise>;\n }\n\n public fetchMore(\n fetchMoreOptions: FetchMoreQueryOptions &\n FetchMoreOptions,\n ): Promise> {\n // early return if no update Query\n invariant(\n fetchMoreOptions.updateQuery,\n 'updateQuery option is required. This function defines how to update the query data with the new results.',\n );\n\n const combinedOptions = {\n ...(fetchMoreOptions.query ? fetchMoreOptions : {\n ...this.options,\n ...fetchMoreOptions,\n variables: {\n ...this.variables,\n ...fetchMoreOptions.variables,\n },\n }),\n fetchPolicy: 'network-only',\n } as WatchQueryOptions;\n\n const qid = this.queryManager.generateQueryId();\n\n return this.queryManager\n .fetchQuery(\n qid,\n combinedOptions,\n FetchType.normal,\n this.queryId,\n )\n .then(\n fetchMoreResult => {\n this.updateQuery((previousResult: any) =>\n fetchMoreOptions.updateQuery(previousResult, {\n fetchMoreResult: fetchMoreResult.data as TData,\n variables: combinedOptions.variables as TVariables,\n }),\n );\n this.queryManager.stopQuery(qid);\n return fetchMoreResult as ApolloQueryResult;\n },\n error => {\n this.queryManager.stopQuery(qid);\n throw error;\n },\n );\n }\n\n // XXX the subscription variables are separate from the query variables.\n // if you want to update subscription variables, right now you have to do that separately,\n // and you can only do it by stopping the subscription and then subscribing again with new variables.\n public subscribeToMore<\n TSubscriptionData = TData,\n TSubscriptionVariables = TVariables\n >(\n options: SubscribeToMoreOptions<\n TData,\n TSubscriptionVariables,\n TSubscriptionData\n >,\n ) {\n const subscription = this.queryManager\n .startGraphQLSubscription({\n query: options.document,\n variables: options.variables,\n })\n .subscribe({\n next: (subscriptionData: { data: TSubscriptionData }) => {\n const { updateQuery } = options;\n if (updateQuery) {\n this.updateQuery(\n (previous, { variables }) =>\n updateQuery(previous, {\n subscriptionData,\n variables,\n }),\n );\n }\n },\n error: (err: any) => {\n if (options.onError) {\n options.onError(err);\n return;\n }\n invariant.error('Unhandled GraphQL subscription error', err);\n },\n });\n\n this.subscriptions.add(subscription);\n\n return () => {\n if (this.subscriptions.delete(subscription)) {\n subscription.unsubscribe();\n }\n };\n }\n\n // Note: if the query is not active (there are no subscribers), the promise\n // will return null immediately.\n public setOptions(\n opts: WatchQueryOptions,\n ): Promise | void> {\n const { fetchPolicy: oldFetchPolicy } = this.options;\n this.options = {\n ...this.options,\n ...opts,\n } as WatchQueryOptions;\n\n if (opts.pollInterval) {\n this.startPolling(opts.pollInterval);\n } else if (opts.pollInterval === 0) {\n this.stopPolling();\n }\n\n const { fetchPolicy } = opts;\n\n return this.setVariables(\n this.options.variables as TVariables,\n // Try to fetch the query if fetchPolicy changed from either cache-only\n // or standby to something else, or changed to network-only.\n oldFetchPolicy !== fetchPolicy && (\n oldFetchPolicy === 'cache-only' ||\n oldFetchPolicy === 'standby' ||\n fetchPolicy === 'network-only'\n ),\n opts.fetchResults,\n );\n }\n\n /**\n * This is for *internal* use only. Most users should instead use `refetch`\n * in order to be properly notified of results even when they come from cache.\n *\n * Update the variables of this observable query, and fetch the new results\n * if they've changed. If you want to force new results, use `refetch`.\n *\n * Note: the `next` callback will *not* fire if the variables have not changed\n * or if the result is coming from cache.\n *\n * Note: the promise will return the old results immediately if the variables\n * have not changed.\n *\n * Note: the promise will return null immediately if the query is not active\n * (there are no subscribers).\n *\n * @private\n *\n * @param variables: The new set of variables. If there are missing variables,\n * the previous values of those variables will be used.\n *\n * @param tryFetch: Try and fetch new results even if the variables haven't\n * changed (we may still just hit the store, but if there's nothing in there\n * this will refetch)\n *\n * @param fetchResults: Option to ignore fetching results when updating variables\n */\n public setVariables(\n variables: TVariables,\n tryFetch: boolean = false,\n fetchResults = true,\n ): Promise | void> {\n // since setVariables restarts the subscription, we reset the tornDown status\n this.isTornDown = false;\n\n variables = variables || this.variables;\n\n if (!tryFetch && isEqual(variables, this.variables)) {\n // If we have no observers, then we don't actually want to make a network\n // request. As soon as someone observes the query, the request will kick\n // off. For now, we just store any changes. (See #1077)\n return this.observers.size && fetchResults\n ? this.result()\n : Promise.resolve();\n }\n\n this.variables = this.options.variables = variables;\n\n // See comment above\n if (!this.observers.size) {\n return Promise.resolve();\n }\n\n // Use the same options as before, but with new variables\n return this.queryManager.fetchQuery(\n this.queryId,\n this.options,\n ) as Promise>;\n }\n\n public updateQuery(\n mapFn: (\n previousQueryResult: TData,\n options: UpdateQueryOptions,\n ) => TData,\n ): void {\n const { queryManager } = this;\n const {\n previousResult,\n variables,\n document,\n } = queryManager.getQueryWithPreviousResult(\n this.queryId,\n );\n\n const newResult = tryFunctionOrLogError(() =>\n mapFn(previousResult, { variables }),\n );\n\n if (newResult) {\n queryManager.dataStore.markUpdateQueryResult(\n document,\n variables,\n newResult,\n );\n queryManager.broadcastQueries();\n }\n }\n\n public stopPolling() {\n this.queryManager.stopPollingQuery(this.queryId);\n this.options.pollInterval = undefined;\n }\n\n public startPolling(pollInterval: number) {\n assertNotCacheFirstOrOnly(this);\n this.options.pollInterval = pollInterval;\n this.queryManager.startPollingQuery(this.options, this.queryId);\n }\n\n private updateLastResult(newResult: ApolloQueryResult) {\n const previousResult = this.lastResult;\n this.lastResult = newResult;\n this.lastResultSnapshot = this.queryManager.assumeImmutableResults\n ? newResult\n : cloneDeep(newResult);\n return previousResult;\n }\n\n private onSubscribe(observer: Observer>) {\n // Zen Observable has its own error function, so in order to log correctly\n // we need to provide a custom error callback.\n try {\n var subObserver = (observer as any)._subscription._observer;\n if (subObserver && !subObserver.error) {\n subObserver.error = defaultSubscriptionObserverErrorCallback;\n }\n } catch {}\n\n const first = !this.observers.size;\n this.observers.add(observer);\n\n // Deliver initial result\n if (observer.next && this.lastResult) observer.next(this.lastResult);\n if (observer.error && this.lastError) observer.error(this.lastError);\n\n // setup the query if it hasn't been done before\n if (first) {\n this.setUpQuery();\n }\n\n return () => {\n if (this.observers.delete(observer) && !this.observers.size) {\n this.tearDownQuery();\n }\n };\n }\n\n private setUpQuery() {\n const { queryManager, queryId } = this;\n\n if (this.shouldSubscribe) {\n queryManager.addObservableQuery(queryId, this);\n }\n\n if (this.options.pollInterval) {\n assertNotCacheFirstOrOnly(this);\n queryManager.startPollingQuery(this.options, queryId);\n }\n\n const onError = (error: ApolloError) => {\n // Since we don't get the current result on errors, only the error, we\n // must mirror the updates that occur in QueryStore.markQueryError here\n this.updateLastResult({\n ...this.lastResult,\n errors: error.graphQLErrors,\n networkStatus: NetworkStatus.error,\n loading: false,\n });\n iterateObserversSafely(this.observers, 'error', this.lastError = error);\n };\n\n queryManager.observeQuery(queryId, this.options, {\n next: (result: ApolloQueryResult) => {\n if (this.lastError || this.isDifferentFromLastResult(result)) {\n const previousResult = this.updateLastResult(result);\n const { query, variables, fetchPolicy } = this.options;\n\n // Before calling `next` on each observer, we need to first see if\n // the query is using `@client @export` directives, and update\n // any variables that might have changed. If `@export` variables have\n // changed, and the query is calling against both local and remote\n // data, a refetch is needed to pull in new data, using the\n // updated `@export` variables.\n if (queryManager.transform(query).hasClientExports) {\n queryManager.getLocalState().addExportedVariables(\n query,\n variables,\n ).then((variables: TVariables) => {\n const previousVariables = this.variables;\n this.variables = this.options.variables = variables;\n if (\n !result.loading &&\n previousResult &&\n fetchPolicy !== 'cache-only' &&\n queryManager.transform(query).serverQuery &&\n !isEqual(previousVariables, variables)\n ) {\n this.refetch();\n } else {\n iterateObserversSafely(this.observers, 'next', result);\n }\n });\n } else {\n iterateObserversSafely(this.observers, 'next', result);\n }\n }\n },\n error: onError,\n }).catch(onError);\n }\n\n private tearDownQuery() {\n const { queryManager } = this;\n\n this.isTornDown = true;\n queryManager.stopPollingQuery(this.queryId);\n\n // stop all active GraphQL subscriptions\n this.subscriptions.forEach(sub => sub.unsubscribe());\n this.subscriptions.clear();\n\n queryManager.removeObservableQuery(this.queryId);\n queryManager.stopQuery(this.queryId);\n\n this.observers.clear();\n }\n}\n\nfunction defaultSubscriptionObserverErrorCallback(error: ApolloError) {\n invariant.error('Unhandled error', error.message, error.stack);\n}\n\nfunction iterateObserversSafely(\n observers: Set>,\n method: keyof Observer,\n argument?: A,\n) {\n // In case observers is modified during iteration, we need to commit to the\n // original elements, which also provides an opportunity to filter them down\n // to just the observers with the given method.\n const observersWithMethod: Observer[] = [];\n observers.forEach(obs => obs[method] && observersWithMethod.push(obs));\n observersWithMethod.forEach(obs => (obs as any)[method](argument));\n}\n\nfunction assertNotCacheFirstOrOnly(\n obsQuery: ObservableQuery,\n) {\n const { fetchPolicy } = obsQuery.options;\n invariant(\n fetchPolicy !== 'cache-first' && fetchPolicy !== 'cache-only',\n 'Queries that specify the cache-first and cache-only fetchPolicies cannot also be polling queries.',\n );\n}\n","import { DocumentNode } from 'graphql';\n\nexport class MutationStore {\n private store: { [mutationId: string]: MutationStoreValue } = {};\n\n public getStore(): { [mutationId: string]: MutationStoreValue } {\n return this.store;\n }\n\n public get(mutationId: string): MutationStoreValue {\n return this.store[mutationId];\n }\n\n public initMutation(\n mutationId: string,\n mutation: DocumentNode,\n variables: Object | undefined,\n ) {\n this.store[mutationId] = {\n mutation,\n variables: variables || {},\n loading: true,\n error: null,\n };\n }\n\n public markMutationError(mutationId: string, error: Error) {\n const mutation = this.store[mutationId];\n if (mutation) {\n mutation.loading = false;\n mutation.error = error;\n }\n }\n\n public markMutationResult(mutationId: string) {\n const mutation = this.store[mutationId];\n if (mutation) {\n mutation.loading = false;\n mutation.error = null;\n }\n }\n\n public reset() {\n this.store = {};\n }\n}\n\nexport interface MutationStoreValue {\n mutation: DocumentNode;\n variables: Object;\n loading: boolean;\n error: Error | null;\n}\n","import { DocumentNode, GraphQLError, ExecutionResult } from 'graphql';\nimport { isEqual } from 'apollo-utilities';\nimport { invariant } from 'ts-invariant';\nimport { NetworkStatus } from '../core/networkStatus';\nimport { isNonEmptyArray } from '../util/arrays';\n\nexport type QueryStoreValue = {\n document: DocumentNode;\n variables: Object;\n previousVariables?: Object | null;\n networkStatus: NetworkStatus;\n networkError?: Error | null;\n graphQLErrors?: ReadonlyArray;\n metadata: any;\n};\n\nexport class QueryStore {\n private store: { [queryId: string]: QueryStoreValue } = {};\n\n public getStore(): { [queryId: string]: QueryStoreValue } {\n return this.store;\n }\n\n public get(queryId: string): QueryStoreValue {\n return this.store[queryId];\n }\n\n public initQuery(query: {\n queryId: string;\n document: DocumentNode;\n storePreviousVariables: boolean;\n variables: Object;\n isPoll: boolean;\n isRefetch: boolean;\n metadata: any;\n fetchMoreForQueryId: string | undefined;\n }) {\n const previousQuery = this.store[query.queryId];\n\n // XXX we're throwing an error here to catch bugs where a query gets overwritten by a new one.\n // we should implement a separate action for refetching so that QUERY_INIT may never overwrite\n // an existing query (see also: https://github.com/apollostack/apollo-client/issues/732)\n invariant(\n !previousQuery ||\n previousQuery.document === query.document ||\n isEqual(previousQuery.document, query.document),\n 'Internal Error: may not update existing query string in store',\n );\n\n let isSetVariables = false;\n\n let previousVariables: Object | null = null;\n if (\n query.storePreviousVariables &&\n previousQuery &&\n previousQuery.networkStatus !== NetworkStatus.loading\n // if the previous query was still loading, we don't want to remember it at all.\n ) {\n if (!isEqual(previousQuery.variables, query.variables)) {\n isSetVariables = true;\n previousVariables = previousQuery.variables;\n }\n }\n\n // TODO break this out into a separate function\n let networkStatus;\n if (isSetVariables) {\n networkStatus = NetworkStatus.setVariables;\n } else if (query.isPoll) {\n networkStatus = NetworkStatus.poll;\n } else if (query.isRefetch) {\n networkStatus = NetworkStatus.refetch;\n // TODO: can we determine setVariables here if it's a refetch and the variables have changed?\n } else {\n networkStatus = NetworkStatus.loading;\n }\n\n let graphQLErrors: ReadonlyArray = [];\n if (previousQuery && previousQuery.graphQLErrors) {\n graphQLErrors = previousQuery.graphQLErrors;\n }\n\n // XXX right now if QUERY_INIT is fired twice, like in a refetch situation, we just overwrite\n // the store. We probably want a refetch action instead, because I suspect that if you refetch\n // before the initial fetch is done, you'll get an error.\n this.store[query.queryId] = {\n document: query.document,\n variables: query.variables,\n previousVariables,\n networkError: null,\n graphQLErrors: graphQLErrors,\n networkStatus,\n metadata: query.metadata,\n };\n\n // If the action had a `moreForQueryId` property then we need to set the\n // network status on that query as well to `fetchMore`.\n //\n // We have a complement to this if statement in the query result and query\n // error action branch, but importantly *not* in the client result branch.\n // This is because the implementation of `fetchMore` *always* sets\n // `fetchPolicy` to `network-only` so we would never have a client result.\n if (\n typeof query.fetchMoreForQueryId === 'string' &&\n this.store[query.fetchMoreForQueryId]\n ) {\n this.store[query.fetchMoreForQueryId].networkStatus =\n NetworkStatus.fetchMore;\n }\n }\n\n public markQueryResult(\n queryId: string,\n result: ExecutionResult,\n fetchMoreForQueryId: string | undefined,\n ) {\n if (!this.store || !this.store[queryId]) return;\n\n this.store[queryId].networkError = null;\n this.store[queryId].graphQLErrors = isNonEmptyArray(result.errors) ? result.errors : [];\n this.store[queryId].previousVariables = null;\n this.store[queryId].networkStatus = NetworkStatus.ready;\n\n // If we have a `fetchMoreForQueryId` then we need to update the network\n // status for that query. See the branch for query initialization for more\n // explanation about this process.\n if (\n typeof fetchMoreForQueryId === 'string' &&\n this.store[fetchMoreForQueryId]\n ) {\n this.store[fetchMoreForQueryId].networkStatus = NetworkStatus.ready;\n }\n }\n\n public markQueryError(\n queryId: string,\n error: Error,\n fetchMoreForQueryId: string | undefined,\n ) {\n if (!this.store || !this.store[queryId]) return;\n\n this.store[queryId].networkError = error;\n this.store[queryId].networkStatus = NetworkStatus.error;\n\n // If we have a `fetchMoreForQueryId` then we need to update the network\n // status for that query. See the branch for query initialization for more\n // explanation about this process.\n if (typeof fetchMoreForQueryId === 'string') {\n this.markQueryResultClient(fetchMoreForQueryId, true);\n }\n }\n\n public markQueryResultClient(queryId: string, complete: boolean) {\n const storeValue = this.store && this.store[queryId];\n if (storeValue) {\n storeValue.networkError = null;\n storeValue.previousVariables = null;\n if (complete) {\n storeValue.networkStatus = NetworkStatus.ready;\n }\n }\n }\n\n public stopQuery(queryId: string) {\n delete this.store[queryId];\n }\n\n public reset(observableQueryIds: string[]) {\n Object.keys(this.store).forEach(queryId => {\n if (observableQueryIds.indexOf(queryId) < 0) {\n this.stopQuery(queryId);\n } else {\n // XXX set loading to true so listeners don't trigger unless they want results with partial data\n this.store[queryId].networkStatus = NetworkStatus.loading;\n }\n });\n }\n}\n","import {\n ExecutionResult,\n DocumentNode,\n OperationDefinitionNode,\n SelectionSetNode,\n SelectionNode,\n InlineFragmentNode,\n FragmentDefinitionNode,\n FieldNode,\n ASTNode,\n} from 'graphql';\nimport { visit, BREAK } from 'graphql/language/visitor';\n\nimport { ApolloCache } from 'apollo-cache';\nimport {\n getMainDefinition,\n buildQueryFromSelectionSet,\n hasDirectives,\n removeClientSetsFromDocument,\n mergeDeep,\n mergeDeepArray,\n FragmentMap,\n argumentsObjectFromField,\n resultKeyNameFromField,\n getFragmentDefinitions,\n createFragmentMap,\n shouldInclude,\n isField,\n isInlineFragment,\n} from 'apollo-utilities';\n\nimport { invariant } from 'ts-invariant';\n\nimport ApolloClient from '../ApolloClient';\nimport { Resolvers, OperationVariables } from './types';\nimport { capitalizeFirstLetter } from '../util/capitalizeFirstLetter';\n\nexport type Resolver = (\n rootValue?: any,\n args?: any,\n context?: any,\n info?: {\n field: FieldNode;\n fragmentMap: FragmentMap;\n },\n) => any;\n\nexport type VariableMap = { [name: string]: any };\n\nexport type FragmentMatcher = (\n rootValue: any,\n typeCondition: string,\n context: any,\n) => boolean;\n\nexport type ExecContext = {\n fragmentMap: FragmentMap;\n context: any;\n variables: VariableMap;\n fragmentMatcher: FragmentMatcher;\n defaultOperationType: string;\n exportedVariables: Record;\n onlyRunForcedResolvers: boolean;\n};\n\nexport type LocalStateOptions = {\n cache: ApolloCache;\n client?: ApolloClient;\n resolvers?: Resolvers | Resolvers[];\n fragmentMatcher?: FragmentMatcher;\n};\n\nexport class LocalState {\n private cache: ApolloCache;\n private client: ApolloClient;\n private resolvers?: Resolvers;\n private fragmentMatcher: FragmentMatcher;\n\n constructor({\n cache,\n client,\n resolvers,\n fragmentMatcher,\n }: LocalStateOptions) {\n this.cache = cache;\n\n if (client) {\n this.client = client;\n }\n\n if (resolvers) {\n this.addResolvers(resolvers);\n }\n\n if (fragmentMatcher) {\n this.setFragmentMatcher(fragmentMatcher);\n }\n }\n\n public addResolvers(resolvers: Resolvers | Resolvers[]) {\n this.resolvers = this.resolvers || {};\n if (Array.isArray(resolvers)) {\n resolvers.forEach(resolverGroup => {\n this.resolvers = mergeDeep(this.resolvers, resolverGroup);\n });\n } else {\n this.resolvers = mergeDeep(this.resolvers, resolvers);\n }\n }\n\n public setResolvers(resolvers: Resolvers | Resolvers[]) {\n this.resolvers = {};\n this.addResolvers(resolvers);\n }\n\n public getResolvers() {\n return this.resolvers || {};\n }\n\n // Run local client resolvers against the incoming query and remote data.\n // Locally resolved field values are merged with the incoming remote data,\n // and returned. Note that locally resolved fields will overwrite\n // remote data using the same field name.\n public async runResolvers({\n document,\n remoteResult,\n context,\n variables,\n onlyRunForcedResolvers = false,\n }: {\n document: DocumentNode | null;\n remoteResult: ExecutionResult;\n context?: Record;\n variables?: Record;\n onlyRunForcedResolvers?: boolean;\n }): Promise> {\n if (document) {\n return this.resolveDocument(\n document,\n remoteResult.data,\n context,\n variables,\n this.fragmentMatcher,\n onlyRunForcedResolvers,\n ).then(localResult => ({\n ...remoteResult,\n data: localResult.result,\n }));\n }\n\n return remoteResult;\n }\n\n public setFragmentMatcher(fragmentMatcher: FragmentMatcher) {\n this.fragmentMatcher = fragmentMatcher;\n }\n\n public getFragmentMatcher(): FragmentMatcher {\n return this.fragmentMatcher;\n }\n\n // Client queries contain everything in the incoming document (if a @client\n // directive is found).\n public clientQuery(document: DocumentNode) {\n if (hasDirectives(['client'], document)) {\n if (this.resolvers) {\n return document;\n }\n invariant.warn(\n 'Found @client directives in a query but no ApolloClient resolvers ' +\n 'were specified. This means ApolloClient local resolver handling ' +\n 'has been disabled, and @client directives will be passed through ' +\n 'to your link chain.',\n );\n }\n return null;\n }\n\n // Server queries are stripped of all @client based selection sets.\n public serverQuery(document: DocumentNode) {\n return this.resolvers ? removeClientSetsFromDocument(document) : document;\n }\n\n public prepareContext(context = {}) {\n const { cache } = this;\n\n const newContext = {\n ...context,\n cache,\n // Getting an entry's cache key is useful for local state resolvers.\n getCacheKey: (obj: { __typename: string; id: string | number }) => {\n if ((cache as any).config) {\n return (cache as any).config.dataIdFromObject(obj);\n } else {\n invariant(false,\n 'To use context.getCacheKey, you need to use a cache that has ' +\n 'a configurable dataIdFromObject, like apollo-cache-inmemory.',\n );\n }\n },\n };\n\n return newContext;\n }\n\n // To support `@client @export(as: \"someVar\")` syntax, we'll first resolve\n // @client @export fields locally, then pass the resolved values back to be\n // used alongside the original operation variables.\n public async addExportedVariables(\n document: DocumentNode,\n variables: OperationVariables = {},\n context = {},\n ) {\n if (document) {\n return this.resolveDocument(\n document,\n this.buildRootValueFromCache(document, variables) || {},\n this.prepareContext(context),\n variables,\n ).then(data => ({\n ...variables,\n ...data.exportedVariables,\n }));\n }\n\n return {\n ...variables,\n };\n }\n\n public shouldForceResolvers(document: ASTNode) {\n let forceResolvers = false;\n visit(document, {\n Directive: {\n enter(node) {\n if (node.name.value === 'client' && node.arguments) {\n forceResolvers = node.arguments.some(\n arg =>\n arg.name.value === 'always' &&\n arg.value.kind === 'BooleanValue' &&\n arg.value.value === true,\n );\n if (forceResolvers) {\n return BREAK;\n }\n }\n },\n },\n });\n return forceResolvers;\n }\n\n // Query the cache and return matching data.\n private buildRootValueFromCache(\n document: DocumentNode,\n variables?: Record,\n ) {\n return this.cache.diff({\n query: buildQueryFromSelectionSet(document),\n variables,\n returnPartialData: true,\n optimistic: false,\n }).result;\n }\n\n private async resolveDocument(\n document: DocumentNode,\n rootValue: TData,\n context: any = {},\n variables: VariableMap = {},\n fragmentMatcher: FragmentMatcher = () => true,\n onlyRunForcedResolvers: boolean = false,\n ) {\n const mainDefinition = getMainDefinition(document);\n const fragments = getFragmentDefinitions(document);\n const fragmentMap = createFragmentMap(fragments);\n\n const definitionOperation = (mainDefinition as OperationDefinitionNode)\n .operation;\n\n const defaultOperationType = definitionOperation\n ? capitalizeFirstLetter(definitionOperation)\n : 'Query';\n\n const { cache, client } = this;\n const execContext: ExecContext = {\n fragmentMap,\n context: {\n ...context,\n cache,\n client,\n },\n variables,\n fragmentMatcher,\n defaultOperationType,\n exportedVariables: {},\n onlyRunForcedResolvers,\n };\n\n return this.resolveSelectionSet(\n mainDefinition.selectionSet,\n rootValue,\n execContext,\n ).then(result => ({\n result,\n exportedVariables: execContext.exportedVariables,\n }));\n }\n\n private async resolveSelectionSet(\n selectionSet: SelectionSetNode,\n rootValue: TData,\n execContext: ExecContext,\n ) {\n const { fragmentMap, context, variables } = execContext;\n const resultsToMerge: TData[] = [rootValue];\n\n const execute = async (selection: SelectionNode): Promise => {\n if (!shouldInclude(selection, variables)) {\n // Skip this entirely.\n return;\n }\n\n if (isField(selection)) {\n return this.resolveField(selection, rootValue, execContext).then(\n fieldResult => {\n if (typeof fieldResult !== 'undefined') {\n resultsToMerge.push({\n [resultKeyNameFromField(selection)]: fieldResult,\n } as TData);\n }\n },\n );\n }\n\n let fragment: InlineFragmentNode | FragmentDefinitionNode;\n\n if (isInlineFragment(selection)) {\n fragment = selection;\n } else {\n // This is a named fragment.\n fragment = fragmentMap[selection.name.value];\n invariant(fragment, `No fragment named ${selection.name.value}`);\n }\n\n if (fragment && fragment.typeCondition) {\n const typeCondition = fragment.typeCondition.name.value;\n if (execContext.fragmentMatcher(rootValue, typeCondition, context)) {\n return this.resolveSelectionSet(\n fragment.selectionSet,\n rootValue,\n execContext,\n ).then(fragmentResult => {\n resultsToMerge.push(fragmentResult);\n });\n }\n }\n };\n\n return Promise.all(selectionSet.selections.map(execute)).then(function() {\n return mergeDeepArray(resultsToMerge);\n });\n }\n\n private async resolveField(\n field: FieldNode,\n rootValue: any,\n execContext: ExecContext,\n ): Promise {\n const { variables } = execContext;\n const fieldName = field.name.value;\n const aliasedFieldName = resultKeyNameFromField(field);\n const aliasUsed = fieldName !== aliasedFieldName;\n const defaultResult = rootValue[aliasedFieldName] || rootValue[fieldName];\n let resultPromise = Promise.resolve(defaultResult);\n\n // Usually all local resolvers are run when passing through here, but\n // if we've specifically identified that we only want to run forced\n // resolvers (that is, resolvers for fields marked with\n // `@client(always: true)`), then we'll skip running non-forced resolvers.\n if (\n !execContext.onlyRunForcedResolvers ||\n this.shouldForceResolvers(field)\n ) {\n const resolverType =\n rootValue.__typename || execContext.defaultOperationType;\n const resolverMap = this.resolvers && this.resolvers[resolverType];\n if (resolverMap) {\n const resolve = resolverMap[aliasUsed ? fieldName : aliasedFieldName];\n if (resolve) {\n resultPromise = Promise.resolve(resolve(\n rootValue,\n argumentsObjectFromField(field, variables),\n execContext.context,\n { field, fragmentMap: execContext.fragmentMap },\n ));\n }\n }\n }\n\n return resultPromise.then((result = defaultResult) => {\n // If an @export directive is associated with the current field, store\n // the `as` export variable name and current result for later use.\n if (field.directives) {\n field.directives.forEach(directive => {\n if (directive.name.value === 'export' && directive.arguments) {\n directive.arguments.forEach(arg => {\n if (arg.name.value === 'as' && arg.value.kind === 'StringValue') {\n execContext.exportedVariables[arg.value.value] = result;\n }\n });\n }\n });\n }\n\n // Handle all scalar types here.\n if (!field.selectionSet) {\n return result;\n }\n\n // From here down, the field has a selection set, which means it's trying\n // to query a GraphQLObjectType.\n if (result == null) {\n // Basically any field in a GraphQL response can be null, or missing\n return result;\n }\n\n if (Array.isArray(result)) {\n return this.resolveSubSelectedArray(field, result, execContext);\n }\n\n // Returned value is an object, and the query has a sub-selection. Recurse.\n if (field.selectionSet) {\n return this.resolveSelectionSet(\n field.selectionSet,\n result,\n execContext,\n );\n }\n });\n }\n\n private resolveSubSelectedArray(\n field: FieldNode,\n result: any[],\n execContext: ExecContext,\n ): any {\n return Promise.all(\n result.map(item => {\n if (item === null) {\n return null;\n }\n\n // This is a nested array, recurse.\n if (Array.isArray(item)) {\n return this.resolveSubSelectedArray(field, item, execContext);\n }\n\n // This is an object, run the selection set on it.\n if (field.selectionSet) {\n return this.resolveSelectionSet(field.selectionSet, item, execContext);\n }\n }),\n );\n }\n}\n","export function capitalizeFirstLetter(str: string) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n","import { Observable, Observer, Subscription } from './Observable';\n\n// Returns a normal Observable that can have any number of subscribers,\n// while ensuring the original Observable gets subscribed to at most once.\nexport function multiplex(inner: Observable): Observable {\n const observers = new Set>();\n let sub: Subscription | null = null;\n return new Observable(observer => {\n observers.add(observer);\n sub = sub || inner.subscribe({\n next(value) {\n observers.forEach(obs => obs.next && obs.next(value));\n },\n error(error) {\n observers.forEach(obs => obs.error && obs.error(error));\n },\n complete() {\n observers.forEach(obs => obs.complete && obs.complete());\n },\n });\n return () => {\n if (observers.delete(observer) && !observers.size && sub) {\n sub.unsubscribe();\n sub = null;\n }\n };\n });\n}\n\n// Like Observable.prototype.map, except that the mapping function can\n// optionally return a Promise (or be async).\nexport function asyncMap(\n observable: Observable,\n mapFn: (value: V) => R | Promise,\n): Observable {\n return new Observable(observer => {\n const { next, error, complete } = observer;\n let activeNextCount = 0;\n let completed = false;\n\n const handler: Observer = {\n next(value) {\n ++activeNextCount;\n new Promise(resolve => {\n resolve(mapFn(value));\n }).then(\n result => {\n --activeNextCount;\n next && next.call(observer, result);\n completed && handler.complete!();\n },\n e => {\n --activeNextCount;\n error && error.call(observer, e);\n },\n );\n },\n error(e) {\n error && error.call(observer, e);\n },\n complete() {\n completed = true;\n if (!activeNextCount) {\n complete && complete.call(observer);\n }\n },\n };\n\n const sub = observable.subscribe(handler);\n return () => sub.unsubscribe();\n });\n}\n","import { execute, ApolloLink, FetchResult } from 'apollo-link';\nimport { ExecutionResult, DocumentNode } from 'graphql';\nimport { Cache } from 'apollo-cache';\nimport {\n getDefaultValues,\n getOperationDefinition,\n getOperationName,\n hasDirectives,\n graphQLResultHasError,\n hasClientExports,\n removeConnectionDirectiveFromDocument,\n canUseWeakMap,\n} from 'apollo-utilities';\n\nimport { invariant, InvariantError } from 'ts-invariant';\n\nimport { isApolloError, ApolloError } from '../errors/ApolloError';\nimport { Observer, Subscription, Observable } from '../util/Observable';\nimport { QueryWithUpdater, DataStore } from '../data/store';\nimport { MutationStore } from '../data/mutations';\nimport { QueryStore, QueryStoreValue } from '../data/queries';\n\nimport {\n QueryOptions,\n WatchQueryOptions,\n SubscriptionOptions,\n MutationOptions,\n ErrorPolicy,\n} from './watchQueryOptions';\nimport { ObservableQuery } from './ObservableQuery';\nimport { NetworkStatus, isNetworkRequestInFlight } from './networkStatus';\nimport {\n QueryListener,\n ApolloQueryResult,\n FetchType,\n OperationVariables,\n} from './types';\nimport { LocalState } from './LocalState';\nimport { asyncMap, multiplex } from '../util/observables';\nimport { isNonEmptyArray } from '../util/arrays';\n\nconst { hasOwnProperty } = Object.prototype;\n\nexport interface QueryInfo {\n listeners: Set;\n invalidated: boolean;\n newData: Cache.DiffResult | null;\n document: DocumentNode | null;\n lastRequestId: number;\n // A map going from queryId to an observer for a query issued by watchQuery. We use\n // these to keep track of queries that are inflight and error on the observers associated\n // with them in case of some destabalizing action (e.g. reset of the Apollo store).\n observableQuery: ObservableQuery | null;\n subscriptions: Set;\n cancel?: () => void;\n}\n\nexport class QueryManager {\n public link: ApolloLink;\n public mutationStore: MutationStore = new MutationStore();\n public queryStore: QueryStore = new QueryStore();\n public dataStore: DataStore;\n public readonly assumeImmutableResults: boolean;\n\n private queryDeduplication: boolean;\n private clientAwareness: Record = {};\n private localState: LocalState;\n\n private onBroadcast: () => void;\n\n private ssrMode: boolean;\n\n // let's not start at zero to avoid pain with bad checks\n private idCounter = 1;\n\n // XXX merge with ObservableQuery but that needs to be expanded to support mutations and\n // subscriptions as well\n private queries: Map = new Map();\n\n // A map of Promise reject functions for fetchQuery promises that have not\n // yet been resolved, used to keep track of in-flight queries so that we can\n // reject them in case a destabilizing event occurs (e.g. Apollo store reset).\n // The key is in the format of `query:${queryId}` or `fetchRequest:${queryId}`,\n // depending on where the promise's rejection function was created from.\n private fetchQueryRejectFns = new Map();\n\n constructor({\n link,\n queryDeduplication = false,\n store,\n onBroadcast = () => undefined,\n ssrMode = false,\n clientAwareness = {},\n localState,\n assumeImmutableResults,\n }: {\n link: ApolloLink;\n queryDeduplication?: boolean;\n store: DataStore;\n onBroadcast?: () => void;\n ssrMode?: boolean;\n clientAwareness?: Record;\n localState?: LocalState;\n assumeImmutableResults?: boolean;\n }) {\n this.link = link;\n this.queryDeduplication = queryDeduplication;\n this.dataStore = store;\n this.onBroadcast = onBroadcast;\n this.clientAwareness = clientAwareness;\n this.localState = localState || new LocalState({ cache: store.getCache() });\n this.ssrMode = ssrMode;\n this.assumeImmutableResults = !!assumeImmutableResults;\n }\n\n /**\n * Call this method to terminate any active query processes, making it safe\n * to dispose of this QueryManager instance.\n */\n public stop() {\n this.queries.forEach((_info, queryId) => {\n this.stopQueryNoBroadcast(queryId);\n });\n\n this.fetchQueryRejectFns.forEach(reject => {\n reject(\n new InvariantError('QueryManager stopped while query was in flight'),\n );\n });\n }\n\n public async mutate({\n mutation,\n variables,\n optimisticResponse,\n updateQueries: updateQueriesByName,\n refetchQueries = [],\n awaitRefetchQueries = false,\n update: updateWithProxyFn,\n errorPolicy = 'none',\n fetchPolicy,\n context = {},\n }: MutationOptions): Promise> {\n invariant(\n mutation,\n 'mutation option is required. You must specify your GraphQL document in the mutation option.',\n );\n\n invariant(\n !fetchPolicy || fetchPolicy === 'no-cache',\n \"Mutations only support a 'no-cache' fetchPolicy. If you don't want to disable the cache, remove your fetchPolicy setting to proceed with the default mutation behavior.\"\n );\n\n const mutationId = this.generateQueryId();\n mutation = this.transform(mutation).document;\n\n this.setQuery(mutationId, () => ({ document: mutation }));\n\n variables = this.getVariables(mutation, variables);\n\n if (this.transform(mutation).hasClientExports) {\n variables = await this.localState.addExportedVariables(mutation, variables, context);\n }\n\n // Create a map of update queries by id to the query instead of by name.\n const generateUpdateQueriesInfo: () => {\n [queryId: string]: QueryWithUpdater;\n } = () => {\n const ret: { [queryId: string]: QueryWithUpdater } = {};\n\n if (updateQueriesByName) {\n this.queries.forEach(({ observableQuery }, queryId) => {\n if (observableQuery) {\n const { queryName } = observableQuery;\n if (\n queryName &&\n hasOwnProperty.call(updateQueriesByName, queryName)\n ) {\n ret[queryId] = {\n updater: updateQueriesByName[queryName],\n query: this.queryStore.get(queryId),\n };\n }\n }\n });\n }\n\n return ret;\n };\n\n this.mutationStore.initMutation(\n mutationId,\n mutation,\n variables,\n );\n\n this.dataStore.markMutationInit({\n mutationId,\n document: mutation,\n variables,\n updateQueries: generateUpdateQueriesInfo(),\n update: updateWithProxyFn,\n optimisticResponse,\n });\n\n this.broadcastQueries();\n\n const self = this;\n\n return new Promise((resolve, reject) => {\n let storeResult: FetchResult | null;\n let error: ApolloError;\n\n self.getObservableFromLink(\n mutation,\n {\n ...context,\n optimisticResponse,\n },\n variables,\n false,\n ).subscribe({\n next(result: ExecutionResult) {\n if (graphQLResultHasError(result) && errorPolicy === 'none') {\n error = new ApolloError({\n graphQLErrors: result.errors,\n });\n return;\n }\n\n self.mutationStore.markMutationResult(mutationId);\n\n if (fetchPolicy !== 'no-cache') {\n self.dataStore.markMutationResult({\n mutationId,\n result,\n document: mutation,\n variables,\n updateQueries: generateUpdateQueriesInfo(),\n update: updateWithProxyFn,\n });\n }\n\n storeResult = result as FetchResult;\n },\n\n error(err: Error) {\n self.mutationStore.markMutationError(mutationId, err);\n self.dataStore.markMutationComplete({\n mutationId,\n optimisticResponse,\n });\n self.broadcastQueries();\n self.setQuery(mutationId, () => ({ document: null }));\n reject(\n new ApolloError({\n networkError: err,\n }),\n );\n },\n\n complete() {\n if (error) {\n self.mutationStore.markMutationError(mutationId, error);\n }\n\n self.dataStore.markMutationComplete({\n mutationId,\n optimisticResponse,\n });\n\n self.broadcastQueries();\n\n if (error) {\n reject(error);\n return;\n }\n\n // allow for conditional refetches\n // XXX do we want to make this the only API one day?\n if (typeof refetchQueries === 'function') {\n refetchQueries = refetchQueries(storeResult as ExecutionResult);\n }\n\n const refetchQueryPromises: Promise<\n ApolloQueryResult[] | ApolloQueryResult<{}>\n >[] = [];\n\n if (isNonEmptyArray(refetchQueries)) {\n refetchQueries.forEach(refetchQuery => {\n if (typeof refetchQuery === 'string') {\n self.queries.forEach(({ observableQuery }) => {\n if (\n observableQuery &&\n observableQuery.queryName === refetchQuery\n ) {\n refetchQueryPromises.push(observableQuery.refetch());\n }\n });\n } else {\n const queryOptions: QueryOptions = {\n query: refetchQuery.query,\n variables: refetchQuery.variables,\n fetchPolicy: 'network-only',\n };\n\n if (refetchQuery.context) {\n queryOptions.context = refetchQuery.context;\n }\n\n refetchQueryPromises.push(self.query(queryOptions));\n }\n });\n }\n\n Promise.all(\n awaitRefetchQueries ? refetchQueryPromises : [],\n ).then(() => {\n self.setQuery(mutationId, () => ({ document: null }));\n\n if (\n errorPolicy === 'ignore' &&\n storeResult &&\n graphQLResultHasError(storeResult)\n ) {\n delete storeResult.errors;\n }\n\n resolve(storeResult!);\n });\n },\n });\n });\n }\n\n public async fetchQuery(\n queryId: string,\n options: WatchQueryOptions,\n fetchType?: FetchType,\n // This allows us to track if this is a query spawned by a `fetchMore`\n // call for another query. We need this data to compute the `fetchMore`\n // network status for the query this is fetching for.\n fetchMoreForQueryId?: string,\n ): Promise> {\n const {\n metadata = null,\n fetchPolicy = 'cache-first', // cache-first is the default fetch policy.\n context = {},\n } = options;\n\n const query = this.transform(options.query).document;\n\n let variables = this.getVariables(query, options.variables);\n\n if (this.transform(query).hasClientExports) {\n variables = await this.localState.addExportedVariables(query, variables, context);\n }\n\n options = { ...options, variables };\n\n let storeResult: any;\n const isNetworkOnly =\n fetchPolicy === 'network-only' || fetchPolicy === 'no-cache';\n let needToFetch = isNetworkOnly;\n\n // Unless we are completely skipping the cache, we want to diff the query\n // against the cache before we fetch it from the network interface.\n if (!isNetworkOnly) {\n const { complete, result } = this.dataStore.getCache().diff({\n query,\n variables,\n returnPartialData: true,\n optimistic: false,\n });\n\n // If we're in here, only fetch if we have missing fields\n needToFetch = !complete || fetchPolicy === 'cache-and-network';\n storeResult = result;\n }\n\n let shouldFetch =\n needToFetch && fetchPolicy !== 'cache-only' && fetchPolicy !== 'standby';\n\n // we need to check to see if this is an operation that uses the @live directive\n if (hasDirectives(['live'], query)) shouldFetch = true;\n\n const requestId = this.idCounter++;\n\n // set up a watcher to listen to cache updates\n const cancel = fetchPolicy !== 'no-cache'\n ? this.updateQueryWatch(queryId, query, options)\n : undefined;\n\n // Initialize query in store with unique requestId\n this.setQuery(queryId, () => ({\n document: query,\n lastRequestId: requestId,\n invalidated: true,\n cancel,\n }));\n\n this.invalidate(fetchMoreForQueryId);\n\n this.queryStore.initQuery({\n queryId,\n document: query,\n storePreviousVariables: shouldFetch,\n variables,\n isPoll: fetchType === FetchType.poll,\n isRefetch: fetchType === FetchType.refetch,\n metadata,\n fetchMoreForQueryId,\n });\n\n this.broadcastQueries();\n\n if (shouldFetch) {\n const networkResult = this.fetchRequest({\n requestId,\n queryId,\n document: query,\n options,\n fetchMoreForQueryId,\n }).catch(error => {\n // This is for the benefit of `refetch` promises, which currently don't get their errors\n // through the store like watchQuery observers do\n if (isApolloError(error)) {\n throw error;\n } else {\n if (requestId >= this.getQuery(queryId).lastRequestId) {\n this.queryStore.markQueryError(queryId, error, fetchMoreForQueryId);\n this.invalidate(queryId);\n this.invalidate(fetchMoreForQueryId);\n this.broadcastQueries();\n }\n throw new ApolloError({ networkError: error });\n }\n });\n\n // we don't return the promise for cache-and-network since it is already\n // returned below from the cache\n if (fetchPolicy !== 'cache-and-network') {\n return networkResult;\n }\n\n // however we need to catch the error so it isn't unhandled in case of\n // network error\n networkResult.catch(() => {});\n }\n\n // If there is no part of the query we need to fetch from the server (or,\n // fetchPolicy is cache-only), we just write the store result as the final result.\n this.queryStore.markQueryResultClient(queryId, !shouldFetch);\n this.invalidate(queryId);\n this.invalidate(fetchMoreForQueryId);\n\n if (this.transform(query).hasForcedResolvers) {\n return this.localState.runResolvers({\n document: query,\n remoteResult: { data: storeResult },\n context,\n variables,\n onlyRunForcedResolvers: true,\n }).then((result: FetchResult) => {\n this.markQueryResult(\n queryId,\n result,\n options,\n fetchMoreForQueryId,\n );\n this.broadcastQueries();\n return result;\n });\n }\n\n this.broadcastQueries();\n\n // If we have no query to send to the server, we should return the result\n // found within the store.\n return { data: storeResult };\n }\n\n private markQueryResult(\n queryId: string,\n result: ExecutionResult,\n {\n fetchPolicy,\n variables,\n errorPolicy,\n }: WatchQueryOptions,\n fetchMoreForQueryId?: string,\n ) {\n if (fetchPolicy === 'no-cache') {\n this.setQuery(queryId, () => ({\n newData: { result: result.data, complete: true },\n }));\n } else {\n this.dataStore.markQueryResult(\n result,\n this.getQuery(queryId).document!,\n variables,\n fetchMoreForQueryId,\n errorPolicy === 'ignore' || errorPolicy === 'all',\n );\n }\n }\n\n // Returns a query listener that will update the given observer based on the\n // results (or lack thereof) for a particular query.\n public queryListenerForObserver(\n queryId: string,\n options: WatchQueryOptions,\n observer: Observer>,\n ): QueryListener {\n function invoke(method: 'next' | 'error', argument: any) {\n if (observer[method]) {\n try {\n observer[method]!(argument);\n } catch (e) {\n invariant.error(e);\n }\n } else if (method === 'error') {\n invariant.error(argument);\n }\n }\n\n return (\n queryStoreValue: QueryStoreValue,\n newData?: Cache.DiffResult,\n ) => {\n // we're going to take a look at the data, so the query is no longer invalidated\n this.invalidate(queryId, false);\n\n // The query store value can be undefined in the event of a store\n // reset.\n if (!queryStoreValue) return;\n\n const { observableQuery, document } = this.getQuery(queryId);\n\n const fetchPolicy = observableQuery\n ? observableQuery.options.fetchPolicy\n : options.fetchPolicy;\n\n // don't watch the store for queries on standby\n if (fetchPolicy === 'standby') return;\n\n const loading = isNetworkRequestInFlight(queryStoreValue.networkStatus);\n const lastResult = observableQuery && observableQuery.getLastResult();\n\n const networkStatusChanged = !!(\n lastResult &&\n lastResult.networkStatus !== queryStoreValue.networkStatus\n );\n\n const shouldNotifyIfLoading =\n options.returnPartialData ||\n (!newData && queryStoreValue.previousVariables) ||\n (networkStatusChanged && options.notifyOnNetworkStatusChange) ||\n fetchPolicy === 'cache-only' ||\n fetchPolicy === 'cache-and-network';\n\n if (loading && !shouldNotifyIfLoading) {\n return;\n }\n\n const hasGraphQLErrors = isNonEmptyArray(queryStoreValue.graphQLErrors);\n\n const errorPolicy: ErrorPolicy = observableQuery\n && observableQuery.options.errorPolicy\n || options.errorPolicy\n || 'none';\n\n // If we have either a GraphQL error or a network error, we create\n // an error and tell the observer about it.\n if (errorPolicy === 'none' && hasGraphQLErrors || queryStoreValue.networkError) {\n return invoke('error', new ApolloError({\n graphQLErrors: queryStoreValue.graphQLErrors,\n networkError: queryStoreValue.networkError,\n }));\n }\n\n try {\n let data: any;\n let isMissing: boolean;\n\n if (newData) {\n // As long as we're using the cache, clear out the latest\n // `newData`, since it will now become the current data. We need\n // to keep the `newData` stored with the query when using\n // `no-cache` since `getCurrentQueryResult` attemps to pull from\n // `newData` first, following by trying the cache (which won't\n // find a hit for `no-cache`).\n if (fetchPolicy !== 'no-cache' && fetchPolicy !== 'network-only') {\n this.setQuery(queryId, () => ({ newData: null }));\n }\n\n data = newData.result;\n isMissing = !newData.complete;\n } else {\n const lastError = observableQuery && observableQuery.getLastError();\n const errorStatusChanged =\n errorPolicy !== 'none' &&\n (lastError && lastError.graphQLErrors) !==\n queryStoreValue.graphQLErrors;\n\n if (lastResult && lastResult.data && !errorStatusChanged) {\n data = lastResult.data;\n isMissing = false;\n } else {\n const diffResult = this.dataStore.getCache().diff({\n query: document as DocumentNode,\n variables:\n queryStoreValue.previousVariables ||\n queryStoreValue.variables,\n returnPartialData: true,\n optimistic: true,\n });\n\n data = diffResult.result;\n isMissing = !diffResult.complete;\n }\n }\n\n // If there is some data missing and the user has told us that they\n // do not tolerate partial data then we want to return the previous\n // result and mark it as stale.\n const stale = isMissing && !(\n options.returnPartialData ||\n fetchPolicy === 'cache-only'\n );\n\n const resultFromStore: ApolloQueryResult = {\n data: stale ? lastResult && lastResult.data : data,\n loading,\n networkStatus: queryStoreValue.networkStatus,\n stale,\n };\n\n // if the query wants updates on errors we need to add it to the result\n if (errorPolicy === 'all' && hasGraphQLErrors) {\n resultFromStore.errors = queryStoreValue.graphQLErrors;\n }\n\n invoke('next', resultFromStore);\n\n } catch (networkError) {\n invoke('error', new ApolloError({ networkError }));\n }\n };\n }\n\n private transformCache = new (canUseWeakMap ? WeakMap : Map)<\n DocumentNode,\n Readonly<{\n document: Readonly;\n hasClientExports: boolean;\n hasForcedResolvers: boolean;\n clientQuery: Readonly | null;\n serverQuery: Readonly | null;\n defaultVars: Readonly;\n }>\n >();\n\n public transform(document: DocumentNode) {\n const { transformCache } = this;\n\n if (!transformCache.has(document)) {\n const cache = this.dataStore.getCache();\n const transformed = cache.transformDocument(document);\n const forLink = removeConnectionDirectiveFromDocument(\n cache.transformForLink(transformed));\n\n const clientQuery = this.localState.clientQuery(transformed);\n const serverQuery = this.localState.serverQuery(forLink);\n\n const cacheEntry = {\n document: transformed,\n // TODO These two calls (hasClientExports and shouldForceResolvers)\n // could probably be merged into a single traversal.\n hasClientExports: hasClientExports(transformed),\n hasForcedResolvers: this.localState.shouldForceResolvers(transformed),\n clientQuery,\n serverQuery,\n defaultVars: getDefaultValues(\n getOperationDefinition(transformed)\n ) as OperationVariables,\n };\n\n const add = (doc: DocumentNode | null) => {\n if (doc && !transformCache.has(doc)) {\n transformCache.set(doc, cacheEntry);\n }\n }\n // Add cacheEntry to the transformCache using several different keys,\n // since any one of these documents could end up getting passed to the\n // transform method again in the future.\n add(document);\n add(transformed);\n add(clientQuery);\n add(serverQuery);\n }\n\n return transformCache.get(document)!;\n }\n\n private getVariables(\n document: DocumentNode,\n variables?: OperationVariables,\n ): OperationVariables {\n return {\n ...this.transform(document).defaultVars,\n ...variables,\n };\n }\n\n // The shouldSubscribe option is a temporary fix that tells us whether watchQuery was called\n // directly (i.e. through ApolloClient) or through the query method within QueryManager.\n // Currently, the query method uses watchQuery in order to handle non-network errors correctly\n // but we don't want to keep track observables issued for the query method since those aren't\n // supposed to be refetched in the event of a store reset. Once we unify error handling for\n // network errors and non-network errors, the shouldSubscribe option will go away.\n\n public watchQuery(\n options: WatchQueryOptions,\n shouldSubscribe = true,\n ): ObservableQuery {\n invariant(\n options.fetchPolicy !== 'standby',\n 'client.watchQuery cannot be called with fetchPolicy set to \"standby\"',\n );\n\n // assign variable default values if supplied\n options.variables = this.getVariables(options.query, options.variables);\n\n if (typeof options.notifyOnNetworkStatusChange === 'undefined') {\n options.notifyOnNetworkStatusChange = false;\n }\n\n let transformedOptions = { ...options } as WatchQueryOptions;\n\n return new ObservableQuery({\n queryManager: this,\n options: transformedOptions,\n shouldSubscribe: shouldSubscribe,\n });\n }\n\n public query(options: QueryOptions): Promise> {\n invariant(\n options.query,\n 'query option is required. You must specify your GraphQL document ' +\n 'in the query option.',\n );\n\n invariant(\n options.query.kind === 'Document',\n 'You must wrap the query string in a \"gql\" tag.',\n );\n\n invariant(\n !(options as any).returnPartialData,\n 'returnPartialData option only supported on watchQuery.',\n );\n\n invariant(\n !(options as any).pollInterval,\n 'pollInterval option only supported on watchQuery.',\n );\n\n return new Promise>((resolve, reject) => {\n const watchedQuery = this.watchQuery(options, false);\n this.fetchQueryRejectFns.set(`query:${watchedQuery.queryId}`, reject);\n watchedQuery\n .result()\n .then(resolve, reject)\n // Since neither resolve nor reject throw or return a value, this .then\n // handler is guaranteed to execute. Note that it doesn't really matter\n // when we remove the reject function from this.fetchQueryRejectFns,\n // since resolve and reject are mutually idempotent. In fact, it would\n // not be incorrect to let reject functions accumulate over time; it's\n // just a waste of memory.\n .then(() =>\n this.fetchQueryRejectFns.delete(`query:${watchedQuery.queryId}`),\n );\n });\n }\n\n public generateQueryId() {\n return String(this.idCounter++);\n }\n\n public stopQueryInStore(queryId: string) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.broadcastQueries();\n }\n\n private stopQueryInStoreNoBroadcast(queryId: string) {\n this.stopPollingQuery(queryId);\n this.queryStore.stopQuery(queryId);\n this.invalidate(queryId);\n }\n\n public addQueryListener(queryId: string, listener: QueryListener) {\n this.setQuery(queryId, ({ listeners }) => {\n listeners.add(listener);\n return { invalidated: false };\n });\n }\n\n public updateQueryWatch(\n queryId: string,\n document: DocumentNode,\n options: WatchQueryOptions,\n ) {\n const { cancel } = this.getQuery(queryId);\n if (cancel) cancel();\n const previousResult = () => {\n let previousResult = null;\n const { observableQuery } = this.getQuery(queryId);\n if (observableQuery) {\n const lastResult = observableQuery.getLastResult();\n if (lastResult) {\n previousResult = lastResult.data;\n }\n }\n\n return previousResult;\n };\n return this.dataStore.getCache().watch({\n query: document as DocumentNode,\n variables: options.variables,\n optimistic: true,\n previousResult,\n callback: newData => {\n this.setQuery(queryId, () => ({ invalidated: true, newData }));\n },\n });\n }\n\n // Adds an ObservableQuery to this.observableQueries and to this.observableQueriesByName.\n public addObservableQuery(\n queryId: string,\n observableQuery: ObservableQuery,\n ) {\n this.setQuery(queryId, () => ({ observableQuery }));\n }\n\n public removeObservableQuery(queryId: string) {\n const { cancel } = this.getQuery(queryId);\n this.setQuery(queryId, () => ({ observableQuery: null }));\n if (cancel) cancel();\n }\n\n public clearStore(): Promise {\n // Before we have sent the reset action to the store,\n // we can no longer rely on the results returned by in-flight\n // requests since these may depend on values that previously existed\n // in the data portion of the store. So, we cancel the promises and observers\n // that we have issued so far and not yet resolved (in the case of\n // queries).\n this.fetchQueryRejectFns.forEach(reject => {\n reject(new InvariantError(\n 'Store reset while query was in flight (not completed in link chain)',\n ));\n });\n\n const resetIds: string[] = [];\n this.queries.forEach(({ observableQuery }, queryId) => {\n if (observableQuery) resetIds.push(queryId);\n });\n\n this.queryStore.reset(resetIds);\n this.mutationStore.reset();\n\n // begin removing data from the store\n return this.dataStore.reset();\n }\n\n public resetStore(): Promise[]> {\n // Similarly, we have to have to refetch each of the queries currently being\n // observed. We refetch instead of error'ing on these since the assumption is that\n // resetting the store doesn't eliminate the need for the queries currently being\n // watched. If there is an existing query in flight when the store is reset,\n // the promise for it will be rejected and its results will not be written to the\n // store.\n return this.clearStore().then(() => {\n return this.reFetchObservableQueries();\n });\n }\n\n public reFetchObservableQueries(\n includeStandby: boolean = false,\n ): Promise[]> {\n const observableQueryPromises: Promise>[] = [];\n\n this.queries.forEach(({ observableQuery }, queryId) => {\n if (observableQuery) {\n const fetchPolicy = observableQuery.options.fetchPolicy;\n\n observableQuery.resetLastResults();\n if (\n fetchPolicy !== 'cache-only' &&\n (includeStandby || fetchPolicy !== 'standby')\n ) {\n observableQueryPromises.push(observableQuery.refetch());\n }\n\n this.setQuery(queryId, () => ({ newData: null }));\n this.invalidate(queryId);\n }\n });\n\n this.broadcastQueries();\n\n return Promise.all(observableQueryPromises);\n }\n\n public observeQuery(\n queryId: string,\n options: WatchQueryOptions,\n observer: Observer>,\n ) {\n this.addQueryListener(\n queryId,\n this.queryListenerForObserver(queryId, options, observer),\n );\n return this.fetchQuery(queryId, options);\n }\n\n public startQuery(\n queryId: string,\n options: WatchQueryOptions,\n listener: QueryListener,\n ) {\n invariant.warn(\"The QueryManager.startQuery method has been deprecated\");\n\n this.addQueryListener(queryId, listener);\n\n this.fetchQuery(queryId, options)\n // `fetchQuery` returns a Promise. In case of a failure it should be caucht or else the\n // console will show an `Uncaught (in promise)` message. Ignore the error for now.\n .catch(() => undefined);\n\n return queryId;\n }\n\n public startGraphQLSubscription({\n query,\n fetchPolicy,\n variables,\n }: SubscriptionOptions): Observable> {\n query = this.transform(query).document;\n variables = this.getVariables(query, variables);\n\n const makeObservable = (variables: OperationVariables) =>\n this.getObservableFromLink(\n query,\n {},\n variables,\n false,\n ).map(result => {\n if (!fetchPolicy || fetchPolicy !== 'no-cache') {\n this.dataStore.markSubscriptionResult(\n result,\n query,\n variables,\n );\n this.broadcastQueries();\n }\n\n if (graphQLResultHasError(result)) {\n throw new ApolloError({\n graphQLErrors: result.errors,\n });\n }\n\n return result;\n });\n\n if (this.transform(query).hasClientExports) {\n const observablePromise = this.localState.addExportedVariables(\n query,\n variables,\n ).then(makeObservable);\n\n return new Observable>(observer => {\n let sub: Subscription | null = null;\n observablePromise.then(\n observable => sub = observable.subscribe(observer),\n observer.error,\n );\n return () => sub && sub.unsubscribe();\n });\n }\n\n return makeObservable(variables);\n }\n\n public stopQuery(queryId: string) {\n this.stopQueryNoBroadcast(queryId);\n this.broadcastQueries();\n }\n\n private stopQueryNoBroadcast(queryId: string) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.removeQuery(queryId);\n }\n\n public removeQuery(queryId: string) {\n // teardown all links\n // Both `QueryManager.fetchRequest` and `QueryManager.query` create separate promises\n // that each add their reject functions to fetchQueryRejectFns.\n // A query created with `QueryManager.query()` could trigger a `QueryManager.fetchRequest`.\n // The same queryId could have two rejection fns for two promises\n this.fetchQueryRejectFns.delete(`query:${queryId}`);\n this.fetchQueryRejectFns.delete(`fetchRequest:${queryId}`);\n this.getQuery(queryId).subscriptions.forEach(x => x.unsubscribe());\n this.queries.delete(queryId);\n }\n\n public getCurrentQueryResult(\n observableQuery: ObservableQuery,\n optimistic: boolean = true,\n ): {\n data: T | undefined;\n partial: boolean;\n } {\n const { variables, query, fetchPolicy, returnPartialData } = observableQuery.options;\n const lastResult = observableQuery.getLastResult();\n const { newData } = this.getQuery(observableQuery.queryId);\n\n if (newData && newData.complete) {\n return { data: newData.result, partial: false };\n }\n\n if (fetchPolicy === 'no-cache' || fetchPolicy === 'network-only') {\n return { data: undefined, partial: false };\n }\n\n const { result, complete } = this.dataStore.getCache().diff({\n query,\n variables,\n previousResult: lastResult ? lastResult.data : undefined,\n returnPartialData: true,\n optimistic,\n });\n\n return {\n data: (complete || returnPartialData) ? result : void 0,\n partial: !complete,\n };\n }\n\n public getQueryWithPreviousResult(\n queryIdOrObservable: string | ObservableQuery,\n ): {\n previousResult: any;\n variables: TVariables | undefined;\n document: DocumentNode;\n } {\n let observableQuery: ObservableQuery;\n if (typeof queryIdOrObservable === 'string') {\n const { observableQuery: foundObserveableQuery } = this.getQuery(\n queryIdOrObservable,\n );\n invariant(\n foundObserveableQuery,\n `ObservableQuery with this id doesn't exist: ${queryIdOrObservable}`\n );\n observableQuery = foundObserveableQuery!;\n } else {\n observableQuery = queryIdOrObservable;\n }\n\n const { variables, query } = observableQuery.options;\n return {\n previousResult: this.getCurrentQueryResult(observableQuery, false).data,\n variables,\n document: query,\n };\n }\n\n public broadcastQueries() {\n this.onBroadcast();\n this.queries.forEach((info, id) => {\n if (info.invalidated) {\n info.listeners.forEach(listener => {\n // it's possible for the listener to be undefined if the query is being stopped\n // See here for more detail: https://github.com/apollostack/apollo-client/issues/231\n if (listener) {\n listener(this.queryStore.get(id), info.newData);\n }\n });\n }\n });\n }\n\n public getLocalState(): LocalState {\n return this.localState;\n }\n\n private inFlightLinkObservables = new Map<\n DocumentNode,\n Map>\n >();\n\n private getObservableFromLink(\n query: DocumentNode,\n context: any,\n variables?: OperationVariables,\n deduplication: boolean = this.queryDeduplication,\n ): Observable> {\n let observable: Observable>;\n\n const { serverQuery } = this.transform(query);\n if (serverQuery) {\n const { inFlightLinkObservables, link } = this;\n\n const operation = {\n query: serverQuery,\n variables,\n operationName: getOperationName(serverQuery) || void 0,\n context: this.prepareContext({\n ...context,\n forceFetch: !deduplication\n }),\n };\n\n context = operation.context;\n\n if (deduplication) {\n const byVariables = inFlightLinkObservables.get(serverQuery) || new Map();\n inFlightLinkObservables.set(serverQuery, byVariables);\n\n const varJson = JSON.stringify(variables);\n observable = byVariables.get(varJson);\n\n if (!observable) {\n byVariables.set(\n varJson,\n observable = multiplex(\n execute(link, operation) as Observable>\n )\n );\n\n const cleanup = () => {\n byVariables.delete(varJson);\n if (!byVariables.size) inFlightLinkObservables.delete(serverQuery);\n cleanupSub.unsubscribe();\n };\n\n const cleanupSub = observable.subscribe({\n next: cleanup,\n error: cleanup,\n complete: cleanup,\n });\n }\n\n } else {\n observable = multiplex(execute(link, operation) as Observable>);\n }\n } else {\n observable = Observable.of({ data: {} } as FetchResult);\n context = this.prepareContext(context);\n }\n\n const { clientQuery } = this.transform(query);\n if (clientQuery) {\n observable = asyncMap(observable, result => {\n return this.localState.runResolvers({\n document: clientQuery,\n remoteResult: result,\n context,\n variables,\n });\n });\n }\n\n return observable;\n }\n\n // Takes a request id, query id, a query document and information associated with the query\n // and send it to the network interface. Returns\n // a promise for the result associated with that request.\n private fetchRequest({\n requestId,\n queryId,\n document,\n options,\n fetchMoreForQueryId,\n }: {\n requestId: number;\n queryId: string;\n document: DocumentNode;\n options: WatchQueryOptions;\n fetchMoreForQueryId?: string;\n }): Promise> {\n const { variables, errorPolicy = 'none', fetchPolicy } = options;\n let resultFromStore: any;\n let errorsFromStore: any;\n\n return new Promise>((resolve, reject) => {\n const observable = this.getObservableFromLink(\n document,\n options.context,\n variables,\n );\n\n const fqrfId = `fetchRequest:${queryId}`;\n this.fetchQueryRejectFns.set(fqrfId, reject);\n\n const cleanup = () => {\n this.fetchQueryRejectFns.delete(fqrfId);\n this.setQuery(queryId, ({ subscriptions }) => {\n subscriptions.delete(subscription);\n });\n };\n\n const subscription = observable.map((result: ExecutionResult) => {\n if (requestId >= this.getQuery(queryId).lastRequestId) {\n this.markQueryResult(\n queryId,\n result,\n options,\n fetchMoreForQueryId,\n );\n\n this.queryStore.markQueryResult(\n queryId,\n result,\n fetchMoreForQueryId,\n );\n\n this.invalidate(queryId);\n this.invalidate(fetchMoreForQueryId);\n\n this.broadcastQueries();\n }\n\n if (errorPolicy === 'none' && isNonEmptyArray(result.errors)) {\n return reject(new ApolloError({\n graphQLErrors: result.errors,\n }));\n }\n\n if (errorPolicy === 'all') {\n errorsFromStore = result.errors;\n }\n\n if (fetchMoreForQueryId || fetchPolicy === 'no-cache') {\n // We don't write fetchMore results to the store because this would overwrite\n // the original result in case an @connection directive is used.\n resultFromStore = result.data;\n } else {\n // ensure result is combined with data already in store\n const { result, complete } = this.dataStore.getCache().diff({\n variables,\n query: document,\n optimistic: false,\n returnPartialData: true,\n });\n\n if (complete || options.returnPartialData) {\n resultFromStore = result;\n }\n }\n }).subscribe({\n error(error: ApolloError) {\n cleanup();\n reject(error);\n },\n\n complete() {\n cleanup();\n resolve({\n data: resultFromStore,\n errors: errorsFromStore,\n loading: false,\n networkStatus: NetworkStatus.ready,\n stale: false,\n });\n },\n });\n\n this.setQuery(queryId, ({ subscriptions }) => {\n subscriptions.add(subscription);\n });\n });\n }\n\n private getQuery(queryId: string) {\n return (\n this.queries.get(queryId) || {\n listeners: new Set(),\n invalidated: false,\n document: null,\n newData: null,\n lastRequestId: 1,\n observableQuery: null,\n subscriptions: new Set(),\n }\n );\n }\n\n private setQuery(\n queryId: string,\n updater: (prev: QueryInfo) => Pick | void,\n ) {\n const prev = this.getQuery(queryId);\n const newInfo = { ...prev, ...updater(prev) };\n this.queries.set(queryId, newInfo);\n }\n\n private invalidate(\n queryId: string | undefined,\n invalidated = true,\n ) {\n if (queryId) {\n this.setQuery(queryId, () => ({ invalidated }));\n }\n }\n\n private prepareContext(context = {}) {\n const newContext = this.localState.prepareContext(context);\n return {\n ...newContext,\n clientAwareness: this.clientAwareness,\n };\n }\n\n public checkInFlight(queryId: string) {\n const query = this.queryStore.get(queryId);\n\n return (\n query &&\n query.networkStatus !== NetworkStatus.ready &&\n query.networkStatus !== NetworkStatus.error\n );\n }\n\n // Map from client ID to { interval, options }.\n private pollingInfoByQueryId = new Map();\n\n public startPollingQuery(\n options: WatchQueryOptions,\n queryId: string,\n listener?: QueryListener,\n ): string {\n const { pollInterval } = options;\n\n invariant(\n pollInterval,\n 'Attempted to start a polling query without a polling interval.',\n );\n\n // Do not poll in SSR mode\n if (!this.ssrMode) {\n let info = this.pollingInfoByQueryId.get(queryId)!;\n if (!info) {\n this.pollingInfoByQueryId.set(queryId, (info = {} as any));\n }\n\n info.interval = pollInterval!;\n info.options = {\n ...options,\n fetchPolicy: 'network-only',\n };\n\n const maybeFetch = () => {\n const info = this.pollingInfoByQueryId.get(queryId);\n if (info) {\n if (this.checkInFlight(queryId)) {\n poll();\n } else {\n this.fetchQuery(queryId, info.options, FetchType.poll).then(\n poll,\n poll,\n );\n }\n }\n };\n\n const poll = () => {\n const info = this.pollingInfoByQueryId.get(queryId);\n if (info) {\n clearTimeout(info.timeout);\n info.timeout = setTimeout(maybeFetch, info.interval);\n }\n };\n\n if (listener) {\n this.addQueryListener(queryId, listener);\n }\n\n poll();\n }\n\n return queryId;\n }\n\n public stopPollingQuery(queryId: string) {\n this.pollingInfoByQueryId.delete(queryId);\n }\n}\n","import { ExecutionResult, DocumentNode } from 'graphql';\nimport { ApolloCache, Cache, DataProxy } from 'apollo-cache';\n\nimport { QueryStoreValue } from '../data/queries';\nimport {\n getOperationName,\n tryFunctionOrLogError,\n graphQLResultHasError,\n} from 'apollo-utilities';\nimport { MutationQueryReducer } from '../core/types';\n\nexport type QueryWithUpdater = {\n updater: MutationQueryReducer;\n query: QueryStoreValue;\n};\n\nexport interface DataWrite {\n rootId: string;\n result: any;\n document: DocumentNode;\n operationName: string | null;\n variables: Object;\n}\n\nexport class DataStore {\n private cache: ApolloCache;\n\n constructor(initialCache: ApolloCache) {\n this.cache = initialCache;\n }\n\n public getCache(): ApolloCache {\n return this.cache;\n }\n\n public markQueryResult(\n result: ExecutionResult,\n document: DocumentNode,\n variables: any,\n fetchMoreForQueryId: string | undefined,\n ignoreErrors: boolean = false,\n ) {\n let writeWithErrors = !graphQLResultHasError(result);\n if (ignoreErrors && graphQLResultHasError(result) && result.data) {\n writeWithErrors = true;\n }\n if (!fetchMoreForQueryId && writeWithErrors) {\n this.cache.write({\n result: result.data,\n dataId: 'ROOT_QUERY',\n query: document,\n variables: variables,\n });\n }\n }\n\n public markSubscriptionResult(\n result: ExecutionResult,\n document: DocumentNode,\n variables: any,\n ) {\n // the subscription interface should handle not sending us results we no longer subscribe to.\n // XXX I don't think we ever send in an object with errors, but we might in the future...\n if (!graphQLResultHasError(result)) {\n this.cache.write({\n result: result.data,\n dataId: 'ROOT_SUBSCRIPTION',\n query: document,\n variables: variables,\n });\n }\n }\n\n public markMutationInit(mutation: {\n mutationId: string;\n document: DocumentNode;\n variables: any;\n updateQueries: { [queryId: string]: QueryWithUpdater };\n update: ((proxy: DataProxy, mutationResult: Object) => void) | undefined;\n optimisticResponse: Object | Function | undefined;\n }) {\n if (mutation.optimisticResponse) {\n let optimistic: Object;\n if (typeof mutation.optimisticResponse === 'function') {\n optimistic = mutation.optimisticResponse(mutation.variables);\n } else {\n optimistic = mutation.optimisticResponse;\n }\n\n this.cache.recordOptimisticTransaction(c => {\n const orig = this.cache;\n this.cache = c;\n\n try {\n this.markMutationResult({\n mutationId: mutation.mutationId,\n result: { data: optimistic },\n document: mutation.document,\n variables: mutation.variables,\n updateQueries: mutation.updateQueries,\n update: mutation.update,\n });\n } finally {\n this.cache = orig;\n }\n }, mutation.mutationId);\n }\n }\n\n public markMutationResult(mutation: {\n mutationId: string;\n result: ExecutionResult;\n document: DocumentNode;\n variables: any;\n updateQueries: { [queryId: string]: QueryWithUpdater };\n update: ((proxy: DataProxy, mutationResult: Object) => void) | undefined;\n }) {\n // Incorporate the result from this mutation into the store\n if (!graphQLResultHasError(mutation.result)) {\n const cacheWrites: Cache.WriteOptions[] = [{\n result: mutation.result.data,\n dataId: 'ROOT_MUTATION',\n query: mutation.document,\n variables: mutation.variables,\n }];\n\n const { updateQueries } = mutation;\n if (updateQueries) {\n Object.keys(updateQueries).forEach(id => {\n const { query, updater } = updateQueries[id];\n\n // Read the current query result from the store.\n const { result: currentQueryResult, complete } = this.cache.diff({\n query: query.document,\n variables: query.variables,\n returnPartialData: true,\n optimistic: false,\n });\n\n if (complete) {\n // Run our reducer using the current query result and the mutation result.\n const nextQueryResult = tryFunctionOrLogError(() =>\n updater(currentQueryResult, {\n mutationResult: mutation.result,\n queryName: getOperationName(query.document) || undefined,\n queryVariables: query.variables,\n }),\n );\n\n // Write the modified result back into the store if we got a new result.\n if (nextQueryResult) {\n cacheWrites.push({\n result: nextQueryResult,\n dataId: 'ROOT_QUERY',\n query: query.document,\n variables: query.variables,\n });\n }\n }\n });\n }\n\n this.cache.performTransaction(c => {\n cacheWrites.forEach(write => c.write(write));\n\n // If the mutation has some writes associated with it then we need to\n // apply those writes to the store by running this reducer again with a\n // write action.\n const { update } = mutation;\n if (update) {\n tryFunctionOrLogError(() => update(c, mutation.result));\n }\n });\n }\n }\n\n public markMutationComplete({\n mutationId,\n optimisticResponse,\n }: {\n mutationId: string;\n optimisticResponse?: any;\n }) {\n if (optimisticResponse) {\n this.cache.removeOptimistic(mutationId);\n }\n }\n\n public markUpdateQueryResult(\n document: DocumentNode,\n variables: any,\n newResult: any,\n ) {\n this.cache.write({\n result: newResult,\n dataId: 'ROOT_QUERY',\n variables,\n query: document,\n });\n }\n\n public reset(): Promise {\n return this.cache.reset();\n }\n}\n","import {\n ApolloLink,\n FetchResult,\n GraphQLRequest,\n execute,\n} from 'apollo-link';\nimport { ExecutionResult, DocumentNode } from 'graphql';\nimport { ApolloCache, DataProxy } from 'apollo-cache';\n\nimport { invariant, InvariantError } from 'ts-invariant';\n\nimport { QueryManager } from './core/QueryManager';\nimport {\n ApolloQueryResult,\n OperationVariables,\n Resolvers,\n} from './core/types';\nimport { ObservableQuery } from './core/ObservableQuery';\nimport { LocalState, FragmentMatcher } from './core/LocalState';\nimport { Observable } from './util/Observable';\n\nimport {\n QueryOptions,\n WatchQueryOptions,\n SubscriptionOptions,\n MutationOptions,\n WatchQueryFetchPolicy,\n} from './core/watchQueryOptions';\n\nimport { DataStore } from './data/store';\n\nimport { version } from './version';\n\nexport interface DefaultOptions {\n watchQuery?: Partial;\n query?: Partial;\n mutate?: Partial;\n}\n\nlet hasSuggestedDevtools = false;\n\nexport type ApolloClientOptions = {\n link?: ApolloLink;\n cache: ApolloCache;\n ssrForceFetchDelay?: number;\n ssrMode?: boolean;\n connectToDevTools?: boolean;\n queryDeduplication?: boolean;\n defaultOptions?: DefaultOptions;\n assumeImmutableResults?: boolean;\n resolvers?: Resolvers | Resolvers[];\n typeDefs?: string | string[] | DocumentNode | DocumentNode[];\n fragmentMatcher?: FragmentMatcher;\n name?: string;\n version?: string;\n};\n\n/**\n * This is the primary Apollo Client class. It is used to send GraphQL documents (i.e. queries\n * and mutations) to a GraphQL spec-compliant server over a {@link NetworkInterface} instance,\n * receive results from the server and cache the results in a store. It also delivers updates\n * to GraphQL queries through {@link Observable} instances.\n */\nexport default class ApolloClient implements DataProxy {\n public link: ApolloLink;\n public store: DataStore;\n public cache: ApolloCache;\n public readonly queryManager: QueryManager;\n public disableNetworkFetches: boolean;\n public version: string;\n public queryDeduplication: boolean;\n public defaultOptions: DefaultOptions = {};\n public readonly typeDefs: ApolloClientOptions['typeDefs'];\n\n private devToolsHookCb: Function;\n private resetStoreCallbacks: Array<() => Promise> = [];\n private clearStoreCallbacks: Array<() => Promise> = [];\n private localState: LocalState;\n\n /**\n * Constructs an instance of {@link ApolloClient}.\n *\n * @param link The {@link ApolloLink} over which GraphQL documents will be resolved into a response.\n *\n * @param cache The initial cache to use in the data store.\n *\n * @param ssrMode Determines whether this is being run in Server Side Rendering (SSR) mode.\n *\n * @param ssrForceFetchDelay Determines the time interval before we force fetch queries for a\n * server side render.\n *\n * @param queryDeduplication If set to false, a query will still be sent to the server even if a query\n * with identical parameters (query, variables, operationName) is already in flight.\n *\n * @param defaultOptions Used to set application wide defaults for the\n * options supplied to `watchQuery`, `query`, or\n * `mutate`.\n *\n * @param assumeImmutableResults When this option is true, the client will assume results\n * read from the cache are never mutated by application code,\n * which enables substantial performance optimizations. Passing\n * `{ freezeResults: true }` to the `InMemoryCache` constructor\n * can help enforce this immutability.\n *\n * @param name A custom name that can be used to identify this client, when\n * using Apollo client awareness features. E.g. \"iOS\".\n *\n * @param version A custom version that can be used to identify this client,\n * when using Apollo client awareness features. This is the\n * version of your client, which you may want to increment on\n * new builds. This is NOT the version of Apollo Client that\n * you are using.\n */\n constructor(options: ApolloClientOptions) {\n const {\n cache,\n ssrMode = false,\n ssrForceFetchDelay = 0,\n connectToDevTools,\n queryDeduplication = true,\n defaultOptions,\n assumeImmutableResults = false,\n resolvers,\n typeDefs,\n fragmentMatcher,\n name: clientAwarenessName,\n version: clientAwarenessVersion,\n } = options;\n\n let { link } = options;\n\n // If a link hasn't been defined, but local state resolvers have been set,\n // setup a default empty link.\n if (!link && resolvers) {\n link = ApolloLink.empty();\n }\n\n if (!link || !cache) {\n throw new InvariantError(\n \"In order to initialize Apollo Client, you must specify 'link' and 'cache' properties in the options object.\\n\" +\n \"These options are part of the upgrade requirements when migrating from Apollo Client 1.x to Apollo Client 2.x.\\n\" +\n \"For more information, please visit: https://www.apollographql.com/docs/tutorial/client.html#apollo-client-setup\"\n );\n }\n\n // remove apollo-client supported directives\n this.link = link;\n this.cache = cache;\n this.store = new DataStore(cache);\n this.disableNetworkFetches = ssrMode || ssrForceFetchDelay > 0;\n this.queryDeduplication = queryDeduplication;\n this.defaultOptions = defaultOptions || {};\n this.typeDefs = typeDefs;\n\n if (ssrForceFetchDelay) {\n setTimeout(\n () => (this.disableNetworkFetches = false),\n ssrForceFetchDelay,\n );\n }\n\n this.watchQuery = this.watchQuery.bind(this);\n this.query = this.query.bind(this);\n this.mutate = this.mutate.bind(this);\n this.resetStore = this.resetStore.bind(this);\n this.reFetchObservableQueries = this.reFetchObservableQueries.bind(this);\n\n // Attach the client instance to window to let us be found by chrome devtools, but only in\n // development mode\n const defaultConnectToDevTools =\n process.env.NODE_ENV !== 'production' &&\n typeof window !== 'undefined' &&\n !(window as any).__APOLLO_CLIENT__;\n\n if (\n typeof connectToDevTools === 'undefined'\n ? defaultConnectToDevTools\n : connectToDevTools && typeof window !== 'undefined'\n ) {\n (window as any).__APOLLO_CLIENT__ = this;\n }\n\n /**\n * Suggest installing the devtools for developers who don't have them\n */\n if (!hasSuggestedDevtools && process.env.NODE_ENV !== 'production') {\n hasSuggestedDevtools = true;\n if (\n typeof window !== 'undefined' &&\n window.document &&\n window.top === window.self\n ) {\n // First check if devtools is not installed\n if (\n typeof (window as any).__APOLLO_DEVTOOLS_GLOBAL_HOOK__ === 'undefined'\n ) {\n // Only for Chrome\n if (\n window.navigator &&\n window.navigator.userAgent &&\n window.navigator.userAgent.indexOf('Chrome') > -1\n ) {\n // tslint:disable-next-line\n console.debug(\n 'Download the Apollo DevTools ' +\n 'for a better development experience: ' +\n 'https://chrome.google.com/webstore/detail/apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm',\n );\n }\n }\n }\n }\n\n this.version = version;\n\n this.localState = new LocalState({\n cache,\n client: this,\n resolvers,\n fragmentMatcher,\n });\n\n this.queryManager = new QueryManager({\n link: this.link,\n store: this.store,\n queryDeduplication,\n ssrMode,\n clientAwareness: {\n name: clientAwarenessName!,\n version: clientAwarenessVersion!,\n },\n localState: this.localState,\n assumeImmutableResults,\n onBroadcast: () => {\n if (this.devToolsHookCb) {\n this.devToolsHookCb({\n action: {},\n state: {\n queries: this.queryManager.queryStore.getStore(),\n mutations: this.queryManager.mutationStore.getStore(),\n },\n dataWithOptimisticResults: this.cache.extract(true),\n });\n }\n },\n });\n }\n\n /**\n * Call this method to terminate any active client processes, making it safe\n * to dispose of this `ApolloClient` instance.\n */\n public stop() {\n this.queryManager.stop();\n }\n\n /**\n * This watches the cache store of the query according to the options specified and\n * returns an {@link ObservableQuery}. We can subscribe to this {@link ObservableQuery} and\n * receive updated results through a GraphQL observer when the cache store changes.\n *

\n * Note that this method is not an implementation of GraphQL subscriptions. Rather,\n * it uses Apollo's store in order to reactively deliver updates to your query results.\n *

\n * For example, suppose you call watchQuery on a GraphQL query that fetches a person's\n * first and last name and this person has a particular object identifer, provided by\n * dataIdFromObject. Later, a different query fetches that same person's\n * first and last name and the first name has now changed. Then, any observers associated\n * with the results of the first query will be updated with a new result object.\n *

\n * Note that if the cache does not change, the subscriber will *not* be notified.\n *

\n * See [here](https://medium.com/apollo-stack/the-concepts-of-graphql-bc68bd819be3#.3mb0cbcmc) for\n * a description of store reactivity.\n */\n public watchQuery(\n options: WatchQueryOptions,\n ): ObservableQuery {\n if (this.defaultOptions.watchQuery) {\n options = {\n ...this.defaultOptions.watchQuery,\n ...options,\n } as WatchQueryOptions;\n }\n\n // XXX Overwriting options is probably not the best way to do this long term...\n if (\n this.disableNetworkFetches &&\n (options.fetchPolicy === 'network-only' ||\n options.fetchPolicy === 'cache-and-network')\n ) {\n options = { ...options, fetchPolicy: 'cache-first' };\n }\n\n return this.queryManager.watchQuery(options);\n }\n\n /**\n * This resolves a single query according to the options specified and\n * returns a {@link Promise} which is either resolved with the resulting data\n * or rejected with an error.\n *\n * @param options An object of type {@link QueryOptions} that allows us to\n * describe how this query should be treated e.g. whether it should hit the\n * server at all or just resolve from the cache, etc.\n */\n public query(\n options: QueryOptions,\n ): Promise> {\n if (this.defaultOptions.query) {\n options = { ...this.defaultOptions.query, ...options } as QueryOptions<\n TVariables\n >;\n }\n\n invariant(\n (options.fetchPolicy as WatchQueryFetchPolicy) !== 'cache-and-network',\n 'The cache-and-network fetchPolicy does not work with client.query, because ' +\n 'client.query can only return a single result. Please use client.watchQuery ' +\n 'to receive multiple results from the cache and the network, or consider ' +\n 'using a different fetchPolicy, such as cache-first or network-only.'\n );\n\n if (this.disableNetworkFetches && options.fetchPolicy === 'network-only') {\n options = { ...options, fetchPolicy: 'cache-first' };\n }\n\n return this.queryManager.query(options);\n }\n\n /**\n * This resolves a single mutation according to the options specified and returns a\n * {@link Promise} which is either resolved with the resulting data or rejected with an\n * error.\n *\n * It takes options as an object with the following keys and values:\n */\n public mutate(\n options: MutationOptions,\n ): Promise> {\n if (this.defaultOptions.mutate) {\n options = {\n ...this.defaultOptions.mutate,\n ...options,\n } as MutationOptions;\n }\n\n return this.queryManager.mutate(options);\n }\n\n /**\n * This subscribes to a graphql subscription according to the options specified and returns an\n * {@link Observable} which either emits received data or an error.\n */\n public subscribe(\n options: SubscriptionOptions,\n ): Observable> {\n return this.queryManager.startGraphQLSubscription(options);\n }\n\n /**\n * Tries to read some data from the store in the shape of the provided\n * GraphQL query without making a network request. This method will start at\n * the root query. To start at a specific id returned by `dataIdFromObject`\n * use `readFragment`.\n *\n * @param optimistic Set to `true` to allow `readQuery` to return\n * optimistic results. Is `false` by default.\n */\n public readQuery(\n options: DataProxy.Query,\n optimistic: boolean = false,\n ): T | null {\n return this.cache.readQuery(options, optimistic);\n }\n\n /**\n * Tries to read some data from the store in the shape of the provided\n * GraphQL fragment without making a network request. This method will read a\n * GraphQL fragment from any arbitrary id that is currently cached, unlike\n * `readQuery` which will only read from the root query.\n *\n * You must pass in a GraphQL document with a single fragment or a document\n * with multiple fragments that represent what you are reading. If you pass\n * in a document with multiple fragments then you must also specify a\n * `fragmentName`.\n *\n * @param optimistic Set to `true` to allow `readFragment` to return\n * optimistic results. Is `false` by default.\n */\n public readFragment(\n options: DataProxy.Fragment,\n optimistic: boolean = false,\n ): T | null {\n return this.cache.readFragment(options, optimistic);\n }\n\n /**\n * Writes some data in the shape of the provided GraphQL query directly to\n * the store. This method will start at the root query. To start at a\n * specific id returned by `dataIdFromObject` then use `writeFragment`.\n */\n public writeQuery(\n options: DataProxy.WriteQueryOptions,\n ): void {\n const result = this.cache.writeQuery(options);\n this.queryManager.broadcastQueries();\n return result;\n }\n\n /**\n * Writes some data in the shape of the provided GraphQL fragment directly to\n * the store. This method will write to a GraphQL fragment from any arbitrary\n * id that is currently cached, unlike `writeQuery` which will only write\n * from the root query.\n *\n * You must pass in a GraphQL document with a single fragment or a document\n * with multiple fragments that represent what you are writing. If you pass\n * in a document with multiple fragments then you must also specify a\n * `fragmentName`.\n */\n public writeFragment(\n options: DataProxy.WriteFragmentOptions,\n ): void {\n const result = this.cache.writeFragment(options);\n this.queryManager.broadcastQueries();\n return result;\n }\n\n /**\n * Sugar for writeQuery & writeFragment\n * This method will construct a query from the data object passed in.\n * If no id is supplied, writeData will write the data to the root.\n * If an id is supplied, writeData will write a fragment to the object\n * specified by the id in the store.\n *\n * Since you aren't passing in a query to check the shape of the data,\n * you must pass in an object that conforms to the shape of valid GraphQL data.\n */\n public writeData(\n options: DataProxy.WriteDataOptions,\n ): void {\n const result = this.cache.writeData(options);\n this.queryManager.broadcastQueries();\n return result;\n }\n\n public __actionHookForDevTools(cb: () => any) {\n this.devToolsHookCb = cb;\n }\n\n public __requestRaw(payload: GraphQLRequest): Observable {\n return execute(this.link, payload);\n }\n\n /**\n * This initializes the query manager that tracks queries and the cache\n */\n public initQueryManager(): QueryManager {\n invariant.warn(\n 'Calling the initQueryManager method is no longer necessary, ' +\n 'and it will be removed from ApolloClient in version 3.0.',\n );\n return this.queryManager;\n }\n\n /**\n * Resets your entire store by clearing out your cache and then re-executing\n * all of your active queries. This makes it so that you may guarantee that\n * there is no data left in your store from a time before you called this\n * method.\n *\n * `resetStore()` is useful when your user just logged out. You’ve removed the\n * user session, and you now want to make sure that any references to data you\n * might have fetched while the user session was active is gone.\n *\n * It is important to remember that `resetStore()` *will* refetch any active\n * queries. This means that any components that might be mounted will execute\n * their queries again using your network interface. If you do not want to\n * re-execute any queries then you should make sure to stop watching any\n * active queries.\n */\n public resetStore(): Promise[] | null> {\n return Promise.resolve()\n .then(() => this.queryManager.clearStore())\n .then(() => Promise.all(this.resetStoreCallbacks.map(fn => fn())))\n .then(() => this.reFetchObservableQueries());\n }\n\n /**\n * Remove all data from the store. Unlike `resetStore`, `clearStore` will\n * not refetch any active queries.\n */\n public clearStore(): Promise {\n return Promise.resolve()\n .then(() => this.queryManager.clearStore())\n .then(() => Promise.all(this.clearStoreCallbacks.map(fn => fn())));\n }\n\n /**\n * Allows callbacks to be registered that are executed when the store is\n * reset. `onResetStore` returns an unsubscribe function that can be used\n * to remove registered callbacks.\n */\n public onResetStore(cb: () => Promise): () => void {\n this.resetStoreCallbacks.push(cb);\n return () => {\n this.resetStoreCallbacks = this.resetStoreCallbacks.filter(c => c !== cb);\n };\n }\n\n /**\n * Allows callbacks to be registered that are executed when the store is\n * cleared. `onClearStore` returns an unsubscribe function that can be used\n * to remove registered callbacks.\n */\n public onClearStore(cb: () => Promise): () => void {\n this.clearStoreCallbacks.push(cb);\n return () => {\n this.clearStoreCallbacks = this.clearStoreCallbacks.filter(c => c !== cb);\n };\n }\n\n /**\n * Refetches all of your active queries.\n *\n * `reFetchObservableQueries()` is useful if you want to bring the client back to proper state in case of a network outage\n *\n * It is important to remember that `reFetchObservableQueries()` *will* refetch any active\n * queries. This means that any components that might be mounted will execute\n * their queries again using your network interface. If you do not want to\n * re-execute any queries then you should make sure to stop watching any\n * active queries.\n * Takes optional parameter `includeStandby` which will include queries in standby-mode when refetching.\n */\n public reFetchObservableQueries(\n includeStandby?: boolean,\n ): Promise[]> {\n return this.queryManager.reFetchObservableQueries(includeStandby);\n }\n\n /**\n * Exposes the cache's complete state, in a serializable format for later restoration.\n */\n public extract(optimistic?: boolean): TCacheShape {\n return this.cache.extract(optimistic);\n }\n\n /**\n * Replaces existing state in the cache (if any) with the values expressed by\n * `serializedState`.\n *\n * Called when hydrating a cache (server side rendering, or offline storage),\n * and also (potentially) during hot reloads.\n */\n public restore(serializedState: TCacheShape): ApolloCache {\n return this.cache.restore(serializedState);\n }\n\n /**\n * Add additional local resolvers.\n */\n public addResolvers(resolvers: Resolvers | Resolvers[]) {\n this.localState.addResolvers(resolvers);\n }\n\n /**\n * Set (override existing) local resolvers.\n */\n public setResolvers(resolvers: Resolvers | Resolvers[]) {\n this.localState.setResolvers(resolvers);\n }\n\n /**\n * Get all registered local resolvers.\n */\n public getResolvers() {\n return this.localState.getResolvers();\n }\n\n /**\n * Set a custom local state fragment matcher.\n */\n public setLocalStateFragmentMatcher(fragmentMatcher: FragmentMatcher) {\n this.localState.setFragmentMatcher(fragmentMatcher);\n }\n}\n","export const version = \"2.6.8\"","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.INIT_COORDS = 'dnd-core/INIT_COORDS';\nexports.BEGIN_DRAG = 'dnd-core/BEGIN_DRAG';\nexports.PUBLISH_DRAG_SOURCE = 'dnd-core/PUBLISH_DRAG_SOURCE';\nexports.HOVER = 'dnd-core/HOVER';\nexports.DROP = 'dnd-core/DROP';\nexports.END_DRAG = 'dnd-core/END_DRAG';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction isFunction(input) {\n return typeof input === 'function';\n}\nexports.isFunction = isFunction;\nfunction noop() {\n // noop\n}\nexports.noop = noop;\nfunction isObjectLike(input) {\n return typeof input === 'object' && input !== null;\n}\nfunction isPlainObject(input) {\n if (!isObjectLike(input)) {\n return false;\n }\n if (Object.getPrototypeOf(input) === null) {\n return true;\n }\n var proto = input;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(input) === proto;\n}\nexports.isPlainObject = isPlainObject;\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","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * drop-in replacement for _.get\n * @param obj\n * @param path\n * @param defaultValue\n */\nfunction get(obj, path, defaultValue) {\n return path\n .split('.')\n .reduce(function (a, c) { return (a && a[c] ? a[c] : defaultValue || null); }, obj);\n}\nexports.get = get;\n/**\n * drop-in replacement for _.without\n */\nfunction without(items, item) {\n return items.filter(function (i) { return i !== item; });\n}\nexports.without = without;\n/**\n * drop-in replacement for _.isString\n * @param input\n */\nfunction isString(input) {\n return typeof input === 'string';\n}\nexports.isString = isString;\n/**\n * drop-in replacement for _.isString\n * @param input\n */\nfunction isObject(input) {\n return typeof input === 'object';\n}\nexports.isObject = isObject;\n/**\n * repalcement for _.xor\n * @param itemsA\n * @param itemsB\n */\nfunction xor(itemsA, itemsB) {\n var map = new Map();\n var insertItem = function (item) {\n return map.set(item, map.has(item) ? map.get(item) + 1 : 1);\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}\nexports.xor = xor;\n/**\n * replacement for _.intersection\n * @param itemsA\n * @param itemsB\n */\nfunction intersection(itemsA, itemsB) {\n return itemsA.filter(function (t) { return itemsB.indexOf(t) > -1; });\n}\nexports.intersection = intersection;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import arrayLikeToArray from \"./arrayLikeToArray\";\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(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _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 Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n return function () {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (isNativeReflectConstruct()) {\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}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o) {\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (o = unsupportedIterableToArray(o))) {\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 it,\n normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\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}","// 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","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\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[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPrefixedValue;\nvar regex = /-webkit-|-moz-|-ms-/;\n\nfunction isPrefixedValue(value) {\n return typeof value === 'string' && regex.test(value);\n}\nmodule.exports = exports['default'];","/* global window */\nimport ponyfill from './ponyfill.js';\n\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 = ponyfill(root);\nexport default result;\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}","function createThunkMiddleware(extraArgument) {\n return function (_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n if (typeof action === 'function') {\n return action(dispatch, getState, extraArgument);\n }\n\n return next(action);\n };\n };\n };\n}\n\nvar thunk = createThunkMiddleware();\nthunk.withExtraArgument = createThunkMiddleware;\n\nexport default thunk;","/* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */\nvar nodejsCustomInspectSymbol = typeof Symbol === 'function' && typeof Symbol.for === 'function' ? Symbol.for('nodejs.util.inspect.custom') : undefined;\nexport default nodejsCustomInspectSymbol;\n","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar emptyObject = {};\nvar objects = {};\nvar prefix = 'r';\nvar uniqueID = 1;\n\nvar createKey = function createKey(id) {\n return prefix + \"-\" + id;\n};\n\nvar ReactNativePropRegistry =\n/*#__PURE__*/\nfunction () {\n function ReactNativePropRegistry() {}\n\n ReactNativePropRegistry.register = function register(object) {\n var id = uniqueID++;\n\n if (process.env.NODE_ENV !== 'production') {\n Object.freeze(object);\n }\n\n var key = createKey(id);\n objects[key] = object;\n return id;\n };\n\n ReactNativePropRegistry.getByID = function getByID(id) {\n if (!id) {\n // Used in the style={[condition && id]} pattern,\n // we want it to be a no-op when the value is false or null\n return emptyObject;\n }\n\n var key = createKey(id);\n var object = objects[key];\n\n if (!object) {\n console.warn('Invalid style with id `' + id + '`. Skipping ...');\n return emptyObject;\n }\n\n return object;\n };\n\n return ReactNativePropRegistry;\n}();\n\nexport { ReactNativePropRegistry as default };","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport ReactNativePropRegistry from './ReactNativePropRegistry';\nimport invariant from 'fbjs/lib/invariant';\n\nfunction getStyle(style) {\n if (typeof style === 'number') {\n return ReactNativePropRegistry.getByID(style);\n }\n\n return style;\n}\n\nfunction flattenStyle(style) {\n if (!style) {\n return undefined;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n invariant(style !== true, 'style may be false but not true');\n }\n\n if (!Array.isArray(style)) {\n return getStyle(style);\n }\n\n var result = {};\n\n for (var i = 0, styleLength = style.length; i < styleLength; ++i) {\n var computedStyle = flattenStyle(style[i]);\n\n if (computedStyle) {\n for (var key in computedStyle) {\n var value = computedStyle[key];\n result[key] = value;\n }\n }\n }\n\n return result;\n}\n\nexport default flattenStyle;","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\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 __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n 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]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nvar dnd_core_1 = require(\"dnd-core\");\nvar checkDecoratorArguments_1 = require(\"./utils/checkDecoratorArguments\");\nvar isRefable_1 = require(\"./utils/isRefable\");\nvar invariant = require('invariant');\nvar hoistStatics = require('hoist-non-react-statics');\n/**\n * Create the React Context\n */\nexports.context = React.createContext({\n dragDropManager: undefined,\n});\nexports.Consumer = exports.context.Consumer, exports.Provider = exports.context.Provider;\n/**\n * Creates the context object we're providing\n * @param backend\n * @param context\n */\nfunction createChildContext(backend, context, debugMode) {\n return {\n dragDropManager: dnd_core_1.createDragDropManager(backend, context, debugMode),\n };\n}\nexports.createChildContext = createChildContext;\n/**\n * A React component that provides the React-DnD context\n */\nexports.DragDropContextProvider = function (_a) {\n var children = _a.children, props = __rest(_a, [\"children\"]);\n var contextValue = 'manager' in props\n ? { dragDropManager: props.manager }\n : createChildContext(props.backend, props.context, props.debugMode);\n return React.createElement(exports.Provider, { value: contextValue }, children);\n};\n/**\n * Wrap the root component of your application with DragDropContext decorator to set up React DnD.\n * This lets you specify the backend, and sets up the shared DnD state behind the scenes.\n * @param backendFactory The DnD backend factory\n * @param backendContext The backend context\n */\nfunction DragDropContext(backendFactory, backendContext, debugMode) {\n checkDecoratorArguments_1.default('DragDropContext', 'backend', backendFactory);\n var childContext = createChildContext(backendFactory, backendContext, debugMode);\n return function decorateContext(DecoratedComponent) {\n var Decorated = DecoratedComponent;\n var displayName = Decorated.displayName || Decorated.name || 'Component';\n var DragDropContextContainer = /** @class */ (function (_super) {\n __extends(DragDropContextContainer, _super);\n function DragDropContextContainer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.ref = React.createRef();\n _this.getManager = function () { return childContext.dragDropManager; };\n return _this;\n }\n DragDropContextContainer.prototype.getDecoratedComponentInstance = function () {\n invariant(this.ref.current, 'In order to access an instance of the decorated component, it must either be a class component or use React.forwardRef()');\n return this.ref.current;\n };\n DragDropContextContainer.prototype.render = function () {\n return (React.createElement(exports.Provider, { value: childContext },\n React.createElement(Decorated, __assign({}, this.props, { ref: isRefable_1.isRefable(Decorated) ? this.ref : null }))));\n };\n DragDropContextContainer.DecoratedComponent = DecoratedComponent;\n DragDropContextContainer.displayName = \"DragDropContext(\" + displayName + \")\";\n return DragDropContextContainer;\n }(React.Component));\n return hoistStatics(DragDropContextContainer, DecoratedComponent);\n };\n}\nexports.DragDropContext = DragDropContext;\n","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar beginDrag_1 = require(\"./beginDrag\");\nvar publishDragSource_1 = require(\"./publishDragSource\");\nvar hover_1 = require(\"./hover\");\nvar drop_1 = require(\"./drop\");\nvar endDrag_1 = require(\"./endDrag\");\n__export(require(\"./types\"));\nfunction createDragDropActions(manager) {\n return {\n beginDrag: beginDrag_1.default(manager),\n publishDragSource: publishDragSource_1.default(manager),\n hover: hover_1.default(manager),\n drop: drop_1.default(manager),\n endDrag: endDrag_1.default(manager),\n };\n}\nexports.default = createDragDropActions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ADD_SOURCE = 'dnd-core/ADD_SOURCE';\nexports.ADD_TARGET = 'dnd-core/ADD_TARGET';\nexports.REMOVE_SOURCE = 'dnd-core/REMOVE_SOURCE';\nexports.REMOVE_TARGET = 'dnd-core/REMOVE_TARGET';\nfunction addSource(sourceId) {\n return {\n type: exports.ADD_SOURCE,\n payload: {\n sourceId: sourceId,\n },\n };\n}\nexports.addSource = addSource;\nfunction addTarget(targetId) {\n return {\n type: exports.ADD_TARGET,\n payload: {\n targetId: targetId,\n },\n };\n}\nexports.addTarget = addTarget;\nfunction removeSource(sourceId) {\n return {\n type: exports.REMOVE_SOURCE,\n payload: {\n sourceId: sourceId,\n },\n };\n}\nexports.removeSource = removeSource;\nfunction removeTarget(targetId) {\n return {\n type: exports.REMOVE_TARGET,\n payload: {\n targetId: targetId,\n },\n };\n}\nexports.removeTarget = removeTarget;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction checkDecoratorArguments(functionName, signature) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n if (process.env.NODE_ENV !== 'production') {\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var arg = args_1[_a];\n if (arg && arg.prototype && arg.prototype.render) {\n // eslint-disable-next-line no-console\n console.error('You seem to be applying the arguments in the wrong order. ' +\n (\"It should be \" + functionName + \"(\" + signature + \")(Component), not the other way around. \") +\n 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#you-seem-to-be-applying-the-arguments-in-the-wrong-order');\n return;\n }\n }\n }\n}\nexports.default = checkDecoratorArguments;\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","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 nodejsCustomInspectSymbol from \"./nodejsCustomInspectSymbol.mjs\";\nvar MAX_ARRAY_LENGTH = 10;\nvar MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\n\nexport default function inspect(value) {\n return formatValue(value, []);\n}\n\nfunction formatValue(value, seenValues) {\n switch (_typeof(value)) {\n case 'string':\n return JSON.stringify(value);\n\n case 'function':\n return value.name ? \"[function \".concat(value.name, \"]\") : '[function]';\n\n case 'object':\n if (value === null) {\n return 'null';\n }\n\n return formatObjectValue(value, seenValues);\n\n default:\n return String(value);\n }\n}\n\nfunction formatObjectValue(value, previouslySeenValues) {\n if (previouslySeenValues.indexOf(value) !== -1) {\n return '[Circular]';\n }\n\n var seenValues = [].concat(previouslySeenValues, [value]);\n var customInspectFn = getCustomFn(value);\n\n if (customInspectFn !== undefined) {\n // $FlowFixMe(>=0.90.0)\n var customValue = customInspectFn.call(value); // check for infinite recursion\n\n if (customValue !== value) {\n return typeof customValue === 'string' ? customValue : formatValue(customValue, seenValues);\n }\n } else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n\n return formatObject(value, seenValues);\n}\n\nfunction formatObject(object, seenValues) {\n var keys = Object.keys(object);\n\n if (keys.length === 0) {\n return '{}';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[' + getObjectTag(object) + ']';\n }\n\n var properties = keys.map(function (key) {\n var value = formatValue(object[key], seenValues);\n return key + ': ' + value;\n });\n return '{ ' + properties.join(', ') + ' }';\n}\n\nfunction formatArray(array, seenValues) {\n if (array.length === 0) {\n return '[]';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[Array]';\n }\n\n var len = Math.min(MAX_ARRAY_LENGTH, array.length);\n var remaining = array.length - len;\n var items = [];\n\n for (var i = 0; i < len; ++i) {\n items.push(formatValue(array[i], seenValues));\n }\n\n if (remaining === 1) {\n items.push('... 1 more item');\n } else if (remaining > 1) {\n items.push(\"... \".concat(remaining, \" more items\"));\n }\n\n return '[' + items.join(', ') + ']';\n}\n\nfunction getCustomFn(object) {\n var customInspectFn = object[String(nodejsCustomInspectSymbol)];\n\n if (typeof customInspectFn === 'function') {\n return customInspectFn;\n }\n\n if (typeof object.inspect === 'function') {\n return object.inspect;\n }\n}\n\nfunction getObjectTag(object) {\n var tag = Object.prototype.toString.call(object).replace(/^\\[object /, '').replace(/]$/, '');\n\n if (tag === 'Object' && typeof object.constructor === 'function') {\n var name = object.constructor.name;\n\n if (typeof name === 'string' && name !== '') {\n return name;\n }\n }\n\n return tag;\n}\n","/**\n * Produces the value of a block string from its parsed raw value, similar to\n * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.\n *\n * This implements the GraphQL spec's BlockStringValue() static algorithm.\n *\n * @internal\n */\nexport function dedentBlockStringValue(rawString) {\n // Expand a block string's raw value into independent lines.\n var lines = rawString.split(/\\r\\n|[\\n\\r]/g); // Remove common indentation from all lines but first.\n\n var commonIndent = getBlockStringIndentation(lines);\n\n if (commonIndent !== 0) {\n for (var i = 1; i < lines.length; i++) {\n lines[i] = lines[i].slice(commonIndent);\n }\n } // Remove leading and trailing blank lines.\n\n\n while (lines.length > 0 && isBlank(lines[0])) {\n lines.shift();\n }\n\n while (lines.length > 0 && isBlank(lines[lines.length - 1])) {\n lines.pop();\n } // Return a string of the lines joined with U+000A.\n\n\n return lines.join('\\n');\n}\n/**\n * @internal\n */\n\nexport function getBlockStringIndentation(lines) {\n var commonIndent = null;\n\n for (var i = 1; i < lines.length; i++) {\n var line = lines[i];\n var indent = leadingWhitespace(line);\n\n if (indent === line.length) {\n continue; // skip empty lines\n }\n\n if (commonIndent === null || indent < commonIndent) {\n commonIndent = indent;\n\n if (commonIndent === 0) {\n break;\n }\n }\n }\n\n return commonIndent === null ? 0 : commonIndent;\n}\n\nfunction leadingWhitespace(str) {\n var i = 0;\n\n while (i < str.length && (str[i] === ' ' || str[i] === '\\t')) {\n i++;\n }\n\n return i;\n}\n\nfunction isBlank(str) {\n return leadingWhitespace(str) === str.length;\n}\n/**\n * Print a block string in the indented block form by adding a leading and\n * trailing blank line. However, if a block string starts with whitespace and is\n * a single-line, adding a leading blank line would strip that whitespace.\n *\n * @internal\n */\n\n\nexport function printBlockString(value) {\n var indentation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var preferMultipleLines = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var isSingleLine = value.indexOf('\\n') === -1;\n var hasLeadingSpace = value[0] === ' ' || value[0] === '\\t';\n var hasTrailingQuote = value[value.length - 1] === '\"';\n var printAsMultipleLines = !isSingleLine || hasTrailingQuote || preferMultipleLines;\n var result = ''; // Format a multi-line block quote to account for leading space.\n\n if (printAsMultipleLines && !(isSingleLine && hasLeadingSpace)) {\n result += '\\n' + indentation;\n }\n\n result += indentation ? value.replace(/\\n/g, '\\n' + indentation) : value;\n\n if (printAsMultipleLines) {\n result += '\\n';\n }\n\n return '\"\"\"' + result.replace(/\"\"\"/g, '\\\\\"\"\"') + '\"\"\"';\n}\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","/**\n * The code was extracted from:\n * https://github.com/davidchambers/Base64.js\n */\n\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\nfunction InvalidCharacterError(message) {\n this.message = message;\n}\n\nInvalidCharacterError.prototype = new Error();\nInvalidCharacterError.prototype.name = \"InvalidCharacterError\";\n\nfunction polyfill(input) {\n var str = String(input).replace(/=+$/, \"\");\n if (str.length % 4 == 1) {\n throw new InvalidCharacterError(\n \"'atob' failed: The string to be decoded is not correctly encoded.\"\n );\n }\n for (\n // initialize result and counters\n var bc = 0, bs, buffer, idx = 0, output = \"\";\n // get next character\n (buffer = str.charAt(idx++));\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer &&\n ((bs = bc % 4 ? bs * 64 + buffer : buffer),\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4) ?\n (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6)))) :\n 0\n ) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n}\n\nexport default (typeof window !== \"undefined\" &&\n window.atob &&\n window.atob.bind(window)) ||\npolyfill;","import atob from \"./atob\";\n\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(\n atob(str).replace(/(.)/g, function(m, p) {\n var code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = \"0\" + code;\n }\n return \"%\" + code;\n })\n );\n}\n\nexport default function(str) {\n var output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw \"Illegal base64url string!\";\n }\n\n try {\n return b64DecodeUnicode(output);\n } catch (err) {\n return atob(output);\n }\n}","\"use strict\";\n\nimport base64_url_decode from \"./base64_url_decode\";\n\nexport function InvalidTokenError(message) {\n this.message = message;\n}\n\nInvalidTokenError.prototype = new Error();\nInvalidTokenError.prototype.name = \"InvalidTokenError\";\n\nexport default function(token, options) {\n if (typeof token !== \"string\") {\n throw new InvalidTokenError(\"Invalid token specified\");\n }\n\n options = options || {};\n var pos = options.header === true ? 0 : 1;\n try {\n return JSON.parse(base64_url_decode(token.split(\".\")[pos]));\n } catch (e) {\n throw new InvalidTokenError(\"Invalid token specified: \" + e.message);\n }\n}","module.exports = require('./lib/axios');","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar HTML5Backend_1 = require(\"./HTML5Backend\");\nvar getEmptyImage_1 = require(\"./getEmptyImage\");\nexports.getEmptyImage = getEmptyImage_1.default;\nvar NativeTypes = require(\"./NativeTypes\");\nexports.NativeTypes = NativeTypes;\nfunction createHTML5Backend(manager) {\n return new HTML5Backend_1.default(manager);\n}\nexports.default = createHTML5Backend;\n","function defaultEqualityCheck(a, b) {\n return a === b;\n}\n\nfunction areArgumentsShallowlyEqual(equalityCheck, prev, next) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n }\n\n // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\n var length = prev.length;\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\nexport function defaultMemoize(func) {\n var equalityCheck = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultEqualityCheck;\n\n var lastArgs = null;\n var lastResult = null;\n // we reference arguments instead of spreading them for performance reasons\n return function () {\n if (!areArgumentsShallowlyEqual(equalityCheck, lastArgs, arguments)) {\n // apply arguments instead of spreading for performance.\n lastResult = func.apply(null, arguments);\n }\n\n lastArgs = arguments;\n return lastResult;\n };\n}\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;\n }).join(', ');\n throw new Error('Selector creators expect all input-selectors to be functions, ' + ('instead received the following types: [' + dependencyTypes + ']'));\n }\n\n return dependencies;\n}\n\nexport function createSelectorCreator(memoize) {\n for (var _len = arguments.length, memoizeOptions = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n memoizeOptions[_key - 1] = arguments[_key];\n }\n\n return function () {\n for (var _len2 = arguments.length, funcs = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n funcs[_key2] = arguments[_key2];\n }\n\n var recomputations = 0;\n var resultFunc = funcs.pop();\n var dependencies = getDependencies(funcs);\n\n var memoizedResultFunc = memoize.apply(undefined, [function () {\n recomputations++;\n // apply arguments instead of spreading for performance.\n return resultFunc.apply(null, arguments);\n }].concat(memoizeOptions));\n\n // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\n var selector = memoize(function () {\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 params.push(dependencies[i].apply(null, arguments));\n }\n\n // apply arguments instead of spreading for performance.\n return memoizedResultFunc.apply(null, params);\n });\n\n selector.resultFunc = resultFunc;\n selector.dependencies = dependencies;\n selector.recomputations = function () {\n return recomputations;\n };\n selector.resetRecomputations = function () {\n return recomputations = 0;\n };\n return selector;\n };\n}\n\nexport var createSelector = createSelectorCreator(defaultMemoize);\n\nexport function createStructuredSelector(selectors) {\n var selectorCreator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : createSelector;\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 var objectKeys = Object.keys(selectors);\n return selectorCreator(objectKeys.map(function (key) {\n return selectors[key];\n }), function () {\n for (var _len3 = arguments.length, values = 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}","import { Action, ActionCreator, StoreEnhancer, compose } from 'redux'\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface EnhancerOptions {\r\n /**\r\n * the instance name to be showed on the monitor page. Default value is `document.title`.\r\n * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.\r\n */\r\n name?: string\r\n /**\r\n * action creators functions to be available in the Dispatcher.\r\n */\r\n actionCreators?: ActionCreator[] | { [key: string]: ActionCreator }\r\n /**\r\n * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.\r\n * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.\r\n * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).\r\n *\r\n * @default 500 ms.\r\n */\r\n latency?: number\r\n /**\r\n * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.\r\n *\r\n * @default 50\r\n */\r\n maxAge?: number\r\n /**\r\n * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).\r\n * - `false` - will handle also circular references.\r\n * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.\r\n * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys.\r\n * For each of them you can indicate if to include (by setting as `true`).\r\n * For `function` key you can also specify a custom function which handles serialization.\r\n * See [`jsan`](https://github.com/kolodny/jsan) for more details.\r\n */\r\n serialize?:\r\n | boolean\r\n | {\r\n date?: boolean\r\n regex?: boolean\r\n undefined?: boolean\r\n error?: boolean\r\n symbol?: boolean\r\n map?: boolean\r\n set?: boolean\r\n function?: boolean | Function\r\n }\r\n /**\r\n * function which takes `action` object and id number as arguments, and should return `action` object back.\r\n */\r\n actionSanitizer?: (action: A, id: number) => A\r\n /**\r\n * function which takes `state` object and index as arguments, and should return `state` object back.\r\n */\r\n stateSanitizer?: (state: S, index: number) => S\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n */\r\n actionsBlacklist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n */\r\n actionsWhitelist?: string | string[]\r\n /**\r\n * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.\r\n * Use it as a more advanced version of `actionsBlacklist`/`actionsWhitelist` parameters.\r\n */\r\n predicate?: (state: S, action: A) => boolean\r\n /**\r\n * if specified as `false`, it will not record the changes till clicking on `Start recording` button.\r\n * Available only for Redux enhancer, for others use `autoPause`.\r\n *\r\n * @default true\r\n */\r\n shouldRecordChanges?: boolean\r\n /**\r\n * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.\r\n * If not specified, will commit when paused. Available only for Redux enhancer.\r\n *\r\n * @default \"@@PAUSED\"\"\r\n */\r\n pauseActionType?: string\r\n /**\r\n * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.\r\n * Not available for Redux enhancer (as it already does it but storing the data to be sent).\r\n *\r\n * @default false\r\n */\r\n autoPause?: boolean\r\n /**\r\n * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.\r\n * Available only for Redux enhancer.\r\n *\r\n * @default false\r\n */\r\n shouldStartLocked?: boolean\r\n /**\r\n * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.\r\n *\r\n * @default true\r\n */\r\n shouldHotReload?: boolean\r\n /**\r\n * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.\r\n *\r\n * @default false\r\n */\r\n shouldCatchErrors?: boolean\r\n /**\r\n * If you want to restrict the extension, specify the features you allow.\r\n * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.\r\n * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.\r\n * Otherwise, you'll get/set the data right from the monitor part.\r\n */\r\n features?: {\r\n /**\r\n * start/pause recording of dispatched actions\r\n */\r\n pause?: boolean\r\n /**\r\n * lock/unlock dispatching actions and side effects\r\n */\r\n lock?: boolean\r\n /**\r\n * persist states on page reloading\r\n */\r\n persist?: boolean\r\n /**\r\n * export history of actions in a file\r\n */\r\n export?: boolean | 'custom'\r\n /**\r\n * import history of actions from a file\r\n */\r\n import?: boolean | 'custom'\r\n /**\r\n * jump back and forth (time travelling)\r\n */\r\n jump?: boolean\r\n /**\r\n * skip (cancel) actions\r\n */\r\n skip?: boolean\r\n /**\r\n * drag and drop actions in the history list\r\n */\r\n reorder?: boolean\r\n /**\r\n * dispatch custom actions or action creators\r\n */\r\n dispatch?: boolean\r\n /**\r\n * generate tests for the selected actions\r\n */\r\n test?: boolean\r\n }\r\n /**\r\n * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.\r\n * Defaults to false.\r\n */\r\n trace?: boolean | ((action: A) => string)\r\n /**\r\n * The maximum number of stack trace entries to record per action. Defaults to 10.\r\n */\r\n traceLimit?: number\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport const composeWithDevTools: {\r\n (options: EnhancerOptions): typeof compose\r\n (...funcs: Array>): StoreEnhancer\r\n} =\r\n typeof window !== 'undefined' &&\r\n (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n : function() {\r\n if (arguments.length === 0) return undefined\r\n if (typeof arguments[0] === 'object') return compose\r\n return compose.apply(null, (arguments as any) as Function[])\r\n }\r\n\r\n/**\r\n * @public\r\n */\r\nexport const devToolsEnhancer: {\r\n (options: EnhancerOptions): StoreEnhancer\r\n} =\r\n typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n : function() {\r\n return function(noop) {\r\n return noop\r\n }\r\n }\r\n","/**\r\n * Returns true if the passed value is \"plain\" object, i.e. an object whose\r\n * protoype is the root `Object.prototype`. This includes objects created\r\n * using object literals, but not for instance for class instances.\r\n *\r\n * @param {any} value The value to inspect.\r\n * @returns {boolean} True if the argument appears to be a plain object.\r\n */\r\nexport default function isPlainObject(value: unknown): value is object {\r\n if (typeof value !== 'object' || value === null) return false\r\n\r\n let proto = value\r\n while (Object.getPrototypeOf(proto) !== null) {\r\n proto = Object.getPrototypeOf(proto)\r\n }\r\n\r\n return Object.getPrototypeOf(value) === proto\r\n}\r\n","import {\r\n createStore,\r\n compose,\r\n applyMiddleware,\r\n combineReducers,\r\n Reducer,\r\n ReducersMapObject,\r\n Middleware,\r\n Action,\r\n AnyAction,\r\n StoreEnhancer,\r\n Store,\r\n DeepPartial,\r\n Dispatch\r\n} from 'redux'\r\nimport {\r\n composeWithDevTools,\r\n EnhancerOptions as DevToolsOptions\r\n} from './devtoolsExtension'\r\n\r\nimport isPlainObject from './isPlainObject'\r\nimport {\r\n getDefaultMiddleware,\r\n ThunkMiddlewareFor\r\n} from './getDefaultMiddleware'\r\nimport { DispatchForMiddlewares } from './tsHelpers'\r\n\r\nconst IS_PRODUCTION = process.env.NODE_ENV === 'production'\r\n\r\n/**\r\n * Callback function type, to be used in `ConfigureStoreOptions.enhancers`\r\n *\r\n * @public\r\n */\r\nexport type ConfigureEnhancersCallback = (\r\n defaultEnhancers: StoreEnhancer[]\r\n) => StoreEnhancer[]\r\n\r\n/**\r\n * Options for `configureStore()`.\r\n *\r\n * @public\r\n */\r\nexport interface ConfigureStoreOptions<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = Middlewares\r\n> {\r\n /**\r\n * A single reducer function that will be used as the root reducer, or an\r\n * object of slice reducers that will be passed to `combineReducers()`.\r\n */\r\n reducer: Reducer | ReducersMapObject\r\n\r\n /**\r\n * An array of Redux middleware to install. If not supplied, defaults to\r\n * the set of middleware returned by `getDefaultMiddleware()`.\r\n */\r\n middleware?: M\r\n\r\n /**\r\n * Whether to enable Redux DevTools integration. Defaults to `true`.\r\n *\r\n * Additional configuration can be done by passing Redux DevTools options\r\n */\r\n devTools?: boolean | DevToolsOptions\r\n\r\n /**\r\n * The initial state, same as Redux's createStore.\r\n * You may optionally specify it to hydrate the state\r\n * from the server in universal apps, or to restore a previously serialized\r\n * user session. If you use `combineReducers()` to produce the root reducer\r\n * function (either directly or indirectly by passing an object as `reducer`),\r\n * this must be an object with the same shape as the reducer map keys.\r\n */\r\n // NOTE: The needlessly complicated `S extends any ? S : S` instead of just\r\n // `S` ensures that the TypeScript compiler doesn't attempt to infer `S`\r\n // based on the value passed as `preloadedState`, which might be a partial\r\n // state rather than the full thing.\r\n preloadedState?: DeepPartial\r\n\r\n /**\r\n * The store enhancers to apply. See Redux's `createStore()`.\r\n * All enhancers will be included before the DevTools Extension enhancer.\r\n * If you need to customize the order of enhancers, supply a callback\r\n * function that will receive the original array (ie, `[applyMiddleware]`),\r\n * and should return a new array (such as `[applyMiddleware, offline]`).\r\n * If you only need to add middleware, you can use the `middleware` parameter instaead.\r\n */\r\n enhancers?: StoreEnhancer[] | ConfigureEnhancersCallback\r\n}\r\n\r\ntype Middlewares = ReadonlyArray>\r\n\r\n/**\r\n * A Redux store returned by `configureStore()`. Supports dispatching\r\n * side-effectful _thunks_ in addition to plain actions.\r\n *\r\n * @public\r\n */\r\nexport interface EnhancedStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = Middlewares\r\n> extends Store {\r\n /**\r\n * The `dispatch` method of your store, enhanced by all it's middlewares.\r\n *\r\n * @inheritdoc\r\n */\r\n dispatch: DispatchForMiddlewares & Dispatch\r\n}\r\n\r\n/**\r\n * A friendly abstraction over the standard Redux `createStore()` function.\r\n *\r\n * @param config The store configuration.\r\n * @returns A configured Redux store.\r\n *\r\n * @public\r\n */\r\nexport function configureStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = [ThunkMiddlewareFor]\r\n>(options: ConfigureStoreOptions): EnhancedStore {\r\n const {\r\n reducer = undefined,\r\n middleware = getDefaultMiddleware(),\r\n devTools = true,\r\n preloadedState = undefined,\r\n enhancers = undefined\r\n } = options || {}\r\n\r\n let rootReducer: Reducer\r\n\r\n if (typeof reducer === 'function') {\r\n rootReducer = reducer\r\n } else if (isPlainObject(reducer)) {\r\n rootReducer = combineReducers(reducer)\r\n } else {\r\n throw new Error(\r\n '\"reducer\" is a required argument, and must be a function or an object of functions that can be passed to combineReducers'\r\n )\r\n }\r\n\r\n const middlewareEnhancer = applyMiddleware(...middleware)\r\n\r\n let finalCompose = compose\r\n\r\n if (devTools) {\r\n finalCompose = composeWithDevTools({\r\n // Enable capture of stack traces for dispatched Redux actions\r\n trace: !IS_PRODUCTION,\r\n ...(typeof devTools === 'object' && devTools)\r\n })\r\n }\r\n\r\n let storeEnhancers: StoreEnhancer[] = [middlewareEnhancer]\r\n\r\n if (Array.isArray(enhancers)) {\r\n storeEnhancers = [middlewareEnhancer, ...enhancers]\r\n } else if (typeof enhancers === 'function') {\r\n storeEnhancers = enhancers(storeEnhancers)\r\n }\r\n\r\n const composedEnhancer = finalCompose(...storeEnhancers) as any\r\n\r\n return createStore(\r\n rootReducer,\r\n preloadedState as DeepPartial,\r\n composedEnhancer\r\n )\r\n}\r\n","import { Middleware, AnyAction } from 'redux'\r\nimport thunkMiddleware, { ThunkMiddleware } from 'redux-thunk'\r\nimport {\r\n /* PROD_START_REMOVE_UMD */\r\n createImmutableStateInvariantMiddleware,\r\n /* PROD_STOP_REMOVE_UMD */\r\n ImmutableStateInvariantMiddlewareOptions\r\n} from './immutableStateInvariantMiddleware'\r\n\r\nimport {\r\n createSerializableStateInvariantMiddleware,\r\n SerializableStateInvariantMiddlewareOptions\r\n} from './serializableStateInvariantMiddleware'\r\n\r\nfunction isBoolean(x: any): x is boolean {\r\n return typeof x === 'boolean'\r\n}\r\n\r\ninterface ThunkOptions {\r\n extraArgument: E\r\n}\r\n\r\ninterface GetDefaultMiddlewareOptions {\r\n thunk?: boolean | ThunkOptions\r\n immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions\r\n serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions\r\n}\r\n\r\nexport type ThunkMiddlewareFor<\r\n S,\r\n O extends GetDefaultMiddlewareOptions = {}\r\n> = O extends {\r\n thunk: false\r\n}\r\n ? never\r\n : O extends { thunk: { extraArgument: infer E } }\r\n ? ThunkMiddleware\r\n :\r\n | ThunkMiddleware //The ThunkMiddleware with a `null` ExtraArgument is here to provide backwards-compatibility.\r\n | ThunkMiddleware\r\n\r\n/**\r\n * Returns any array containing the default middleware installed by\r\n * `configureStore()`. Useful if you want to configure your store with a custom\r\n * `middleware` array but still keep the default set.\r\n *\r\n * @return The default middleware used by `configureStore()`.\r\n *\r\n * @public\r\n */\r\nexport function getDefaultMiddleware<\r\n S = any,\r\n O extends Partial = {\r\n thunk: true\r\n immutableCheck: true\r\n serializableCheck: true\r\n }\r\n>(options: O = {} as O): Array | ThunkMiddlewareFor> {\r\n const {\r\n thunk = true,\r\n immutableCheck = true,\r\n serializableCheck = true\r\n } = options\r\n\r\n let middlewareArray: Middleware<{}, S>[] = []\r\n\r\n if (thunk) {\r\n if (isBoolean(thunk)) {\r\n middlewareArray.push(thunkMiddleware)\r\n } else {\r\n middlewareArray.push(\r\n thunkMiddleware.withExtraArgument(thunk.extraArgument)\r\n )\r\n }\r\n }\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (immutableCheck) {\r\n /* PROD_START_REMOVE_UMD */\r\n let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(immutableCheck)) {\r\n immutableOptions = immutableCheck\r\n }\r\n\r\n middlewareArray.unshift(\r\n createImmutableStateInvariantMiddleware(immutableOptions)\r\n )\r\n /* PROD_STOP_REMOVE_UMD */\r\n }\r\n\r\n if (serializableCheck) {\r\n let serializableOptions: SerializableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(serializableCheck)) {\r\n serializableOptions = serializableCheck\r\n }\r\n\r\n middlewareArray.push(\r\n createSerializableStateInvariantMiddleware(serializableOptions)\r\n )\r\n }\r\n }\r\n\r\n return middlewareArray as any\r\n}\r\n","import { Action } from 'redux'\r\nimport {\r\n IsUnknownOrNonInferrable,\r\n IfMaybeUndefined,\r\n IfVoid,\r\n IsAny\r\n} from './tsHelpers'\r\nimport isPlainObject from './isPlainObject'\r\n\r\n/**\r\n * An action with a string type and an associated payload. This is the\r\n * type of action returned by `createAction()` action creators.\r\n *\r\n * @template P The type of the action's payload.\r\n * @template T the type used for the action type.\r\n * @template M The type of the action's meta (optional)\r\n * @template E The type of the action's error (optional)\r\n *\r\n * @public\r\n */\r\nexport type PayloadAction<\r\n P = void,\r\n T extends string = string,\r\n M = never,\r\n E = never\r\n> = {\r\n payload: P\r\n type: T\r\n} & ([M] extends [never]\r\n ? {}\r\n : {\r\n meta: M\r\n }) &\r\n ([E] extends [never]\r\n ? {}\r\n : {\r\n error: E\r\n })\r\n\r\n/**\r\n * A \"prepare\" method to be used as the second parameter of `createAction`.\r\n * Takes any number of arguments and returns a Flux Standard Action without\r\n * type (will be added later) that *must* contain a payload (might be undefined).\r\n *\r\n * @public\r\n */\r\nexport type PrepareAction

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

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

(\r\n type: T\r\n): PayloadActionCreator\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overriden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass it's arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction<\r\n PA extends PrepareAction,\r\n T extends string = string\r\n>(\r\n type: T,\r\n prepareAction: PA\r\n): PayloadActionCreator['payload'], T, PA>\r\n\r\nexport function createAction(type: string, prepareAction?: Function): any {\r\n function actionCreator(...args: any[]) {\r\n if (prepareAction) {\r\n let prepared = prepareAction(...args)\r\n if (!prepared) {\r\n throw new Error('prepareAction did not return an object')\r\n }\r\n\r\n return {\r\n type,\r\n payload: prepared.payload,\r\n ...('meta' in prepared && { meta: prepared.meta }),\r\n ...('error' in prepared && { error: prepared.error })\r\n }\r\n }\r\n return { type, payload: args[0] }\r\n }\r\n\r\n actionCreator.toString = () => `${type}`\r\n\r\n actionCreator.type = type\r\n\r\n actionCreator.match = (action: Action): action is PayloadAction =>\r\n action.type === type\r\n\r\n return actionCreator\r\n}\r\n\r\nexport function isFSA(\r\n action: unknown\r\n): action is {\r\n type: string\r\n payload?: unknown\r\n error?: unknown\r\n meta?: unknown\r\n} {\r\n return (\r\n isPlainObject(action) &&\r\n typeof (action as any).type === 'string' &&\r\n Object.keys(action).every(isValidKey)\r\n )\r\n}\r\n\r\nfunction isValidKey(key: string) {\r\n return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1\r\n}\r\n\r\n/**\r\n * Returns the action type of the actions created by the passed\r\n * `createAction()`-generated action creator (arbitrary action creators\r\n * are not supported).\r\n *\r\n * @param action The action creator whose action type to get.\r\n * @returns The action type used by the action creator.\r\n *\r\n * @public\r\n */\r\nexport function getType(\r\n actionCreator: PayloadActionCreator\r\n): T {\r\n return `${actionCreator}` as T\r\n}\r\n\r\n// helper types for more readable typings\r\n\r\ntype IfPrepareActionMethodProvided<\r\n PA extends PrepareAction | void,\r\n True,\r\n False\r\n> = PA extends (...args: any[]) => any ? True : False\r\n","import { Action } from 'redux'\r\nimport { CaseReducer, CaseReducers } from './createReducer'\r\n\r\nexport interface TypedActionCreator {\r\n (...args: any[]): Action\r\n type: Type\r\n}\r\n\r\n/**\r\n * A builder for an action <-> reducer map.\r\n *\r\n * @public\r\n */\r\nexport interface ActionReducerMapBuilder {\r\n /**\r\n * Add a case reducer for actions created by this action creator.\r\n * @param actionCreator\r\n * @param reducer\r\n */\r\n addCase>(\r\n actionCreator: ActionCreator,\r\n reducer: CaseReducer>\r\n ): ActionReducerMapBuilder\r\n /**\r\n * Add a case reducer for actions with the specified type.\r\n * @param type\r\n * @param reducer\r\n */\r\n addCase>(\r\n type: Type,\r\n reducer: CaseReducer\r\n ): ActionReducerMapBuilder\r\n}\r\n\r\nexport function executeReducerBuilderCallback(\r\n builderCallback: (builder: ActionReducerMapBuilder) => void\r\n): CaseReducers {\r\n const actionsMap: CaseReducers = {}\r\n const builder = {\r\n addCase(\r\n typeOrActionCreator: string | TypedActionCreator,\r\n reducer: CaseReducer\r\n ) {\r\n const type =\r\n typeof typeOrActionCreator === 'string'\r\n ? typeOrActionCreator\r\n : typeOrActionCreator.type\r\n if (type in actionsMap) {\r\n throw new Error(\r\n 'addCase cannot be called with two reducers for the same action type'\r\n )\r\n }\r\n actionsMap[type] = reducer\r\n return builder\r\n }\r\n }\r\n builderCallback(builder)\r\n return actionsMap\r\n}\r\n","import { Reducer } from 'redux'\r\nimport {\r\n ActionCreatorWithoutPayload,\r\n createAction,\r\n PayloadAction,\r\n PayloadActionCreator,\r\n PrepareAction,\r\n _ActionCreatorWithPreparedPayload\r\n} from './createAction'\r\nimport { CaseReducer, CaseReducers, createReducer } from './createReducer'\r\nimport {\r\n ActionReducerMapBuilder,\r\n executeReducerBuilderCallback\r\n} from './mapBuilders'\r\nimport { Omit } from './tsHelpers'\r\n\r\n/**\r\n * An action creator attached to a slice.\r\n *\r\n * @deprecated please use PayloadActionCreator directly\r\n *\r\n * @public\r\n */\r\nexport type SliceActionCreator

= PayloadActionCreator

\r\n\r\n/**\r\n * The return value of `createSlice`\r\n *\r\n * @public\r\n */\r\nexport interface Slice<\r\n State = any,\r\n CaseReducers extends SliceCaseReducers = SliceCaseReducers,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice name.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The slice's reducer.\r\n */\r\n reducer: Reducer\r\n\r\n /**\r\n * Action creators for the types of actions that are handled by the slice\r\n * reducer.\r\n */\r\n actions: CaseReducerActions\r\n\r\n /**\r\n * The individual case reducer functions that were passed in the `reducers` parameter.\r\n * This enables reuse and testing if they were defined inline when calling `createSlice`.\r\n */\r\n caseReducers: SliceDefinedCaseReducers\r\n}\r\n\r\n/**\r\n * Options for `createSlice()`.\r\n *\r\n * @public\r\n */\r\nexport interface CreateSliceOptions<\r\n State = any,\r\n CR extends SliceCaseReducers = SliceCaseReducers,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice's name. Used to namespace the generated action types.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The initial state to be returned by the slice reducer.\r\n */\r\n initialState: State\r\n\r\n /**\r\n * A mapping from action types to action-type-specific *case reducer*\r\n * functions. For every action type, a matching action creator will be\r\n * generated using `createAction()`.\r\n */\r\n reducers: ValidateSliceCaseReducers\r\n\r\n /**\r\n * A mapping from action types to action-type-specific *case reducer*\r\n * functions. These reducers should have existing action types used\r\n * as the keys, and action creators will _not_ be generated.\r\n * Alternatively, a callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n */\r\n extraReducers?:\r\n | CaseReducers, any>\r\n | ((builder: ActionReducerMapBuilder>) => void)\r\n}\r\n\r\n/**\r\n * A CaseReducer with a `prepare` method.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerWithPrepare = {\r\n reducer: CaseReducer\r\n prepare: PrepareAction\r\n}\r\n\r\n/**\r\n * The type describing a slice's `reducers` option.\r\n *\r\n * @public\r\n */\r\nexport type SliceCaseReducers = {\r\n [K: string]:\r\n | CaseReducer>\r\n | CaseReducerWithPrepare>\r\n}\r\n\r\n/**\r\n * Derives the slice's `actions` property from the `reducers` options\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerActions> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends { prepare: any }\r\n ? ActionCreatorForCaseReducerWithPrepare\r\n : ActionCreatorForCaseReducer\r\n}\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducerWithPrepare<\r\n CR extends { prepare: any }\r\n> = _ActionCreatorWithPreparedPayload\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducer`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducer = CR extends (\r\n state: any,\r\n action: infer Action\r\n) => any\r\n ? Action extends { payload: infer P }\r\n ? PayloadActionCreator

\r\n : ActionCreatorWithoutPayload\r\n : ActionCreatorWithoutPayload\r\n\r\n/**\r\n * Extracts the CaseReducers out of a `reducers` object, even if they are\r\n * tested into a `CaseReducerWithPrepare`.\r\n *\r\n * @internal\r\n */\r\ntype SliceDefinedCaseReducers> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends {\r\n reducer: infer Reducer\r\n }\r\n ? Reducer\r\n : CaseReducers[Type]\r\n}\r\n\r\n/**\r\n * Helper type. Passes T out again, but boxes it in a way that it cannot\r\n * \"widen\" the type by accident if it is a generic that should be inferred\r\n * from elsewhere.\r\n *\r\n * @internal\r\n */\r\ntype NoInfer = [T][T extends any ? 0 : never]\r\n\r\n/**\r\n * Used on a SliceCaseReducers object.\r\n * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that\r\n * the `reducer` and the `prepare` function use the same type of `payload`.\r\n *\r\n * Might do additional such checks in the future.\r\n *\r\n * This type is only ever useful if you want to write your own wrapper around\r\n * `createSlice`. Please don't use it otherwise!\r\n *\r\n * @public\r\n */\r\nexport type ValidateSliceCaseReducers<\r\n S,\r\n ACR extends SliceCaseReducers\r\n> = ACR &\r\n {\r\n [T in keyof ACR]: ACR[T] extends {\r\n reducer(s: S, action?: infer A): any\r\n }\r\n ? {\r\n prepare(...a: never[]): Omit\r\n }\r\n : {}\r\n }\r\n\r\nfunction getType(slice: string, actionKey: string): string {\r\n return `${slice}/${actionKey}`\r\n}\r\n\r\n/**\r\n * A function that accepts an initial state, an object full of reducer\r\n * functions, and a \"slice name\", and automatically generates\r\n * action creators and action types that correspond to the\r\n * reducers and state.\r\n *\r\n * The `reducer` argument is passed to `createReducer()`.\r\n *\r\n * @public\r\n */\r\nexport function createSlice<\r\n State,\r\n CaseReducers extends SliceCaseReducers,\r\n Name extends string = string\r\n>(\r\n options: CreateSliceOptions\r\n): Slice {\r\n const { name, initialState } = options\r\n if (!name) {\r\n throw new Error('`name` is a required option for createSlice')\r\n }\r\n const reducers = options.reducers || {}\r\n const extraReducers =\r\n typeof options.extraReducers === 'undefined'\r\n ? {}\r\n : typeof options.extraReducers === 'function'\r\n ? executeReducerBuilderCallback(options.extraReducers)\r\n : options.extraReducers\r\n\r\n const reducerNames = Object.keys(reducers)\r\n\r\n const sliceCaseReducersByName: Record = {}\r\n const sliceCaseReducersByType: Record = {}\r\n const actionCreators: Record = {}\r\n\r\n reducerNames.forEach(reducerName => {\r\n const maybeReducerWithPrepare = reducers[reducerName]\r\n const type = getType(name, reducerName)\r\n\r\n let caseReducer: CaseReducer\r\n let prepareCallback: PrepareAction | undefined\r\n\r\n if ('reducer' in maybeReducerWithPrepare) {\r\n caseReducer = maybeReducerWithPrepare.reducer\r\n prepareCallback = maybeReducerWithPrepare.prepare\r\n } else {\r\n caseReducer = maybeReducerWithPrepare\r\n }\r\n\r\n sliceCaseReducersByName[reducerName] = caseReducer\r\n sliceCaseReducersByType[type] = caseReducer\r\n actionCreators[reducerName] = prepareCallback\r\n ? createAction(type, prepareCallback)\r\n : createAction(type)\r\n })\r\n\r\n const finalCaseReducers = { ...extraReducers, ...sliceCaseReducersByType }\r\n const reducer = createReducer(initialState, finalCaseReducers as any)\r\n\r\n return {\r\n name,\r\n reducer,\r\n actions: actionCreators as any,\r\n caseReducers: sliceCaseReducersByName as any\r\n }\r\n}\r\n","import createNextState, { Draft } from 'immer'\r\nimport { AnyAction, Action, Reducer } from 'redux'\r\nimport {\r\n executeReducerBuilderCallback,\r\n ActionReducerMapBuilder\r\n} from './mapBuilders'\r\n\r\n/**\r\n * Defines a mapping from action types to corresponding action object shapes.\r\n *\r\n * @deprecated This should not be used manually - it is only used for internal\r\n * inference purposes and should not have any further value.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type Actions = Record\r\n\r\n/**\r\n * An *case reducer* is a reducer function for a specific action type. Case\r\n * reducers can be composed to full reducers using `createReducer()`.\r\n *\r\n * Unlike a normal Redux reducer, a case reducer is never called with an\r\n * `undefined` state to determine the initial state. Instead, the initial\r\n * state is explicitly specified as an argument to `createReducer()`.\r\n *\r\n * In addition, a case reducer can choose to mutate the passed-in `state`\r\n * value directly instead of returning a new state. This does not actually\r\n * cause the store state to be mutated directly; instead, thanks to\r\n * [immer](https://github.com/mweststrate/immer), the mutations are\r\n * translated to copy operations that result in a new state.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducer = (\r\n state: Draft,\r\n action: A\r\n) => S | void\r\n\r\n/**\r\n * A mapping from action types to case reducers for `createReducer()`.\r\n *\r\n * @deprecated This should not be used manually - it is only used\r\n * for internal inference purposes and using it manually\r\n * would lead to type erasure.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type CaseReducers = {\r\n [T in keyof AS]: AS[T] extends Action ? CaseReducer : void\r\n}\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n *\r\n * @param initialState The initial state to be returned by the reducer.\r\n * @param actionsMap A mapping from action types to action-type-specific\r\n * case reducers.\r\n *\r\n * @public\r\n */\r\nexport function createReducer<\r\n S,\r\n CR extends CaseReducers = CaseReducers\r\n>(initialState: S, actionsMap: CR): Reducer\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n * @param initialState The initial state to be returned by the reducer.\r\n * @param builderCallback A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n *\r\n * @public\r\n */\r\nexport function createReducer(\r\n initialState: S,\r\n builderCallback: (builder: ActionReducerMapBuilder) => void\r\n): Reducer\r\n\r\nexport function createReducer(\r\n initialState: S,\r\n mapOrBuilderCallback:\r\n | CaseReducers\r\n | ((builder: ActionReducerMapBuilder) => void)\r\n): Reducer {\r\n let actionsMap =\r\n typeof mapOrBuilderCallback === 'function'\r\n ? executeReducerBuilderCallback(mapOrBuilderCallback)\r\n : mapOrBuilderCallback\r\n\r\n return function(state = initialState, action): S {\r\n // @ts-ignore createNextState() produces an Immutable> rather\r\n // than an Immutable, and TypeScript cannot find out how to reconcile\r\n // these two types.\r\n return createNextState(state, (draft: Draft) => {\r\n const caseReducer = actionsMap[action.type]\r\n return caseReducer ? caseReducer(draft, action) : undefined\r\n })\r\n }\r\n}\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","/**\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 */\nimport * as React from 'react';\nexport default function mergeRefs() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return function forwardRef(node) {\n args.forEach(function (ref) {\n if (ref == null) {\n return;\n }\n\n if (typeof ref === 'function') {\n ref(node);\n return;\n }\n\n if (typeof ref === 'object') {\n ref.current = node;\n return;\n }\n\n console.error(\"mergeRefs cannot handle Refs of type boolean, number or string, received ref \" + String(ref));\n });\n };\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport mergeRefs from '../mergeRefs';\nexport default function useMergeRefs() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return React.useMemo(function () {\n return mergeRefs.apply(void 0, args);\n }, // eslint-disable-next-line\n [].concat(args));\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\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction isClassComponent(Component) {\n return (Component &&\n Component.prototype &&\n typeof Component.prototype.render === 'function');\n}\nfunction isRefForwardingComponent(C) {\n return (C && C.$$typeof && C.$$typeof.toString() === 'Symbol(react.forward_ref)');\n}\nexports.isRefForwardingComponent = isRefForwardingComponent;\nfunction isRefable(C) {\n return isClassComponent(C) || isRefForwardingComponent(C);\n}\nexports.isRefable = isRefable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\nvar DragDropContext_1 = require(\"../../DragDropContext\");\nvar invariant = require('invariant');\n/**\n * A hook to retrieve the DragDropManager from Context\n */\nfunction useDragDropManager() {\n var dragDropManager = react_1.useContext(DragDropContext_1.context).dragDropManager;\n invariant(dragDropManager != null, 'Expected drag drop context');\n return dragDropManager;\n}\nexports.useDragDropManager = useDragDropManager;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FILE = '__NATIVE_FILE__';\nexports.URL = '__NATIVE_URL__';\nexports.TEXT = '__NATIVE_TEXT__';\n","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nexport default hyphenateStyleName\n","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inheritsLoose;","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","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar util = require('./utils');\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = util.assign(\n {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n }\n },\n Format\n);\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'params', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy'];\n var defaultToConfig2Keys = [\n 'baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress',\n 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath'\n ];\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys);\n\n var otherKeys = Object\n .keys(config2)\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n return config;\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar HandlerRole;\n(function (HandlerRole) {\n HandlerRole[\"SOURCE\"] = \"SOURCE\";\n HandlerRole[\"TARGET\"] = \"TARGET\";\n})(HandlerRole = exports.HandlerRole || (exports.HandlerRole = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction matchesType(targetType, draggedItemType) {\n if (draggedItemType === null) {\n return targetType === null;\n }\n return Array.isArray(targetType)\n ? targetType.some(function (t) { return t === draggedItemType; })\n : targetType === draggedItemType;\n}\nexports.default = matchesType;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.strictEquality = function (a, b) { return a === b; };\n/**\n * Determine if two cartesian coordinate offsets are equal\n * @param offsetA\n * @param offsetB\n */\nfunction areCoordsEqual(offsetA, offsetB) {\n if (!offsetA && !offsetB) {\n return true;\n }\n else if (!offsetA || !offsetB) {\n return false;\n }\n else {\n return offsetA.x === offsetB.x && offsetA.y === offsetB.y;\n }\n}\nexports.areCoordsEqual = areCoordsEqual;\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 */\nfunction areArraysEqual(a, b, isEqual) {\n if (isEqual === void 0) { isEqual = exports.strictEquality; }\n if (a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; ++i) {\n if (!isEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n}\nexports.areArraysEqual = areArraysEqual;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar discount_lodash_1 = require(\"./discount_lodash\");\nexports.NONE = [];\nexports.ALL = [];\nexports.NONE.__IS_NONE__ = true;\nexports.ALL.__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 */\nfunction areDirty(dirtyIds, handlerIds) {\n if (dirtyIds === exports.NONE) {\n return false;\n }\n if (dirtyIds === exports.ALL || typeof handlerIds === 'undefined') {\n return true;\n }\n var commonIds = discount_lodash_1.intersection(handlerIds, dirtyIds);\n return commonIds.length > 0;\n}\nexports.areDirty = areDirty;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nvar DragDropContext_1 = require(\"./DragDropContext\");\nvar disposables_1 = require(\"./utils/disposables\");\nvar isRefable_1 = require(\"./utils/isRefable\");\nvar discount_lodash_1 = require(\"./utils/discount_lodash\");\nvar invariant = require('invariant');\nvar hoistStatics = require('hoist-non-react-statics');\nvar shallowEqual = require('shallowequal');\nfunction decorateHandler(_a) {\n var DecoratedComponent = _a.DecoratedComponent, createHandler = _a.createHandler, createMonitor = _a.createMonitor, createConnector = _a.createConnector, registerHandler = _a.registerHandler, containerDisplayName = _a.containerDisplayName, getType = _a.getType, collect = _a.collect, options = _a.options;\n var _b = options.arePropsEqual, arePropsEqual = _b === void 0 ? shallowEqual : _b;\n var Decorated = DecoratedComponent;\n var displayName = DecoratedComponent.displayName || DecoratedComponent.name || 'Component';\n var DragDropContainer = /** @class */ (function (_super) {\n __extends(DragDropContainer, _super);\n function DragDropContainer(props) {\n var _this = _super.call(this, props) || this;\n _this.decoratedRef = React.createRef();\n _this.handleChange = function () {\n var nextState = _this.getCurrentState();\n if (!shallowEqual(nextState, _this.state)) {\n _this.setState(nextState);\n }\n };\n _this.disposable = new disposables_1.SerialDisposable();\n _this.receiveProps(props);\n _this.dispose();\n return _this;\n }\n DragDropContainer.prototype.getHandlerId = function () {\n return this.handlerId;\n };\n DragDropContainer.prototype.getDecoratedComponentInstance = function () {\n invariant(this.decoratedRef.current, 'In order to access an instance of the decorated component, it must either be a class component or use React.forwardRef()');\n return this.decoratedRef.current;\n };\n DragDropContainer.prototype.shouldComponentUpdate = function (nextProps, nextState) {\n return (!arePropsEqual(nextProps, this.props) ||\n !shallowEqual(nextState, this.state));\n };\n DragDropContainer.prototype.componentDidMount = function () {\n this.disposable = new disposables_1.SerialDisposable();\n this.currentType = undefined;\n this.receiveProps(this.props);\n this.handleChange();\n };\n DragDropContainer.prototype.componentDidUpdate = function (prevProps) {\n if (!arePropsEqual(this.props, prevProps)) {\n this.receiveProps(this.props);\n this.handleChange();\n }\n };\n DragDropContainer.prototype.componentWillUnmount = function () {\n this.dispose();\n };\n DragDropContainer.prototype.receiveProps = function (props) {\n if (!this.handler) {\n return;\n }\n this.handler.receiveProps(props);\n this.receiveType(getType(props));\n };\n DragDropContainer.prototype.receiveType = function (type) {\n if (!this.handlerMonitor || !this.manager || !this.handlerConnector) {\n return;\n }\n if (type === this.currentType) {\n return;\n }\n this.currentType = type;\n var _a = registerHandler(type, this.handler, this.manager), handlerId = _a[0], unregister = _a[1];\n this.handlerId = handlerId;\n this.handlerMonitor.receiveHandlerId(handlerId);\n this.handlerConnector.receiveHandlerId(handlerId);\n var globalMonitor = this.manager.getMonitor();\n var unsubscribe = globalMonitor.subscribeToStateChange(this.handleChange, { handlerIds: [handlerId] });\n this.disposable.setDisposable(new disposables_1.CompositeDisposable(new disposables_1.Disposable(unsubscribe), new disposables_1.Disposable(unregister)));\n };\n DragDropContainer.prototype.dispose = function () {\n this.disposable.dispose();\n if (this.handlerConnector) {\n this.handlerConnector.receiveHandlerId(null);\n }\n };\n DragDropContainer.prototype.getCurrentState = function () {\n if (!this.handlerConnector) {\n return {};\n }\n var nextState = collect(this.handlerConnector.hooks, this.handlerMonitor, this.props);\n if (process.env.NODE_ENV !== 'production') {\n invariant(discount_lodash_1.isPlainObject(nextState), 'Expected `collect` specified as the second argument to ' +\n '%s for %s to return a plain object of props to inject. ' +\n 'Instead, received %s.', containerDisplayName, displayName, nextState);\n }\n return nextState;\n };\n DragDropContainer.prototype.render = function () {\n var _this = this;\n return (React.createElement(DragDropContext_1.Consumer, null, function (_a) {\n var dragDropManager = _a.dragDropManager;\n _this.receiveDragDropManager(dragDropManager);\n if (typeof requestAnimationFrame !== 'undefined') {\n requestAnimationFrame(function () { return _this.handlerConnector.reconnect(); });\n }\n return (React.createElement(Decorated, __assign({}, _this.props, _this.getCurrentState(), { \n // NOTE: if Decorated is a Function Component, decoratedRef will not be populated unless it's a refforwarding component.\n ref: isRefable_1.isRefable(Decorated) ? _this.decoratedRef : null })));\n }));\n };\n DragDropContainer.prototype.receiveDragDropManager = function (dragDropManager) {\n if (this.manager !== undefined) {\n return;\n }\n invariant(dragDropManager !== undefined, 'Could not find the drag and drop manager in the context of %s. ' +\n 'Make sure to wrap the top-level component of your app with DragDropContext. ' +\n 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#could-not-find-the-drag-and-drop-manager-in-the-context', displayName, displayName);\n if (dragDropManager === undefined) {\n return;\n }\n this.manager = dragDropManager;\n this.handlerMonitor = createMonitor(dragDropManager);\n this.handlerConnector = createConnector(dragDropManager.getBackend());\n this.handler = createHandler(this.handlerMonitor, this.decoratedRef);\n };\n DragDropContainer.DecoratedComponent = DecoratedComponent;\n DragDropContainer.displayName = containerDisplayName + \"(\" + displayName + \")\";\n return DragDropContainer;\n }(React.Component));\n return hoistStatics(DragDropContainer, DecoratedComponent);\n}\nexports.default = decorateHandler;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction registerSource(type, source, manager) {\n var registry = manager.getRegistry();\n var sourceId = registry.addSource(type, source);\n return [sourceId, function () { return registry.removeSource(sourceId); }];\n}\nexports.default = registerSource;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction getDecoratedComponent(instanceRef) {\n var currentRef = instanceRef.current;\n if (currentRef == null) {\n return null;\n }\n else if (currentRef.decoratedRef) {\n // go through the private field in decorateHandler to avoid the invariant hit\n return currentRef.decoratedRef.current;\n }\n else {\n return currentRef;\n }\n}\nexports.getDecoratedComponent = getDecoratedComponent;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar invariant = require('invariant');\nvar isCallingCanDrag = false;\nvar isCallingIsDragging = false;\nvar DragSourceMonitorImpl = /** @class */ (function () {\n function DragSourceMonitorImpl(manager) {\n this.sourceId = null;\n this.internalMonitor = manager.getMonitor();\n }\n DragSourceMonitorImpl.prototype.receiveHandlerId = function (sourceId) {\n this.sourceId = sourceId;\n };\n DragSourceMonitorImpl.prototype.getHandlerId = function () {\n return this.sourceId;\n };\n DragSourceMonitorImpl.prototype.canDrag = function () {\n invariant(!isCallingCanDrag, 'You may not call monitor.canDrag() inside your canDrag() implementation. ' +\n 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor');\n try {\n isCallingCanDrag = true;\n return this.internalMonitor.canDragSource(this.sourceId);\n }\n finally {\n isCallingCanDrag = false;\n }\n };\n DragSourceMonitorImpl.prototype.isDragging = function () {\n if (!this.sourceId) {\n return false;\n }\n invariant(!isCallingIsDragging, 'You may not call monitor.isDragging() inside your isDragging() implementation. ' +\n 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor');\n try {\n isCallingIsDragging = true;\n return this.internalMonitor.isDraggingSource(this.sourceId);\n }\n finally {\n isCallingIsDragging = false;\n }\n };\n DragSourceMonitorImpl.prototype.subscribeToStateChange = function (listener, options) {\n return this.internalMonitor.subscribeToStateChange(listener, options);\n };\n DragSourceMonitorImpl.prototype.isDraggingSource = function (sourceId) {\n return this.internalMonitor.isDraggingSource(sourceId);\n };\n DragSourceMonitorImpl.prototype.isOverTarget = function (targetId, options) {\n return this.internalMonitor.isOverTarget(targetId, options);\n };\n DragSourceMonitorImpl.prototype.getTargetIds = function () {\n return this.internalMonitor.getTargetIds();\n };\n DragSourceMonitorImpl.prototype.isSourcePublic = function () {\n return this.internalMonitor.isSourcePublic();\n };\n DragSourceMonitorImpl.prototype.getSourceId = function () {\n return this.internalMonitor.getSourceId();\n };\n DragSourceMonitorImpl.prototype.subscribeToOffsetChange = function (listener) {\n return this.internalMonitor.subscribeToOffsetChange(listener);\n };\n DragSourceMonitorImpl.prototype.canDragSource = function (sourceId) {\n return this.internalMonitor.canDragSource(sourceId);\n };\n DragSourceMonitorImpl.prototype.canDropOnTarget = function (targetId) {\n return this.internalMonitor.canDropOnTarget(targetId);\n };\n DragSourceMonitorImpl.prototype.getItemType = function () {\n return this.internalMonitor.getItemType();\n };\n DragSourceMonitorImpl.prototype.getItem = function () {\n return this.internalMonitor.getItem();\n };\n DragSourceMonitorImpl.prototype.getDropResult = function () {\n return this.internalMonitor.getDropResult();\n };\n DragSourceMonitorImpl.prototype.didDrop = function () {\n return this.internalMonitor.didDrop();\n };\n DragSourceMonitorImpl.prototype.getInitialClientOffset = function () {\n return this.internalMonitor.getInitialClientOffset();\n };\n DragSourceMonitorImpl.prototype.getInitialSourceClientOffset = function () {\n return this.internalMonitor.getInitialSourceClientOffset();\n };\n DragSourceMonitorImpl.prototype.getSourceClientOffset = function () {\n return this.internalMonitor.getSourceClientOffset();\n };\n DragSourceMonitorImpl.prototype.getClientOffset = function () {\n return this.internalMonitor.getClientOffset();\n };\n DragSourceMonitorImpl.prototype.getDifferenceFromInitialOffset = function () {\n return this.internalMonitor.getDifferenceFromInitialOffset();\n };\n return DragSourceMonitorImpl;\n}());\nexports.default = DragSourceMonitorImpl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar wrapConnectorHooks_1 = require(\"./wrapConnectorHooks\");\nvar isRef_1 = require(\"./utils/isRef\");\nvar shallowEqual = require('shallowequal');\nvar SourceConnector = /** @class */ (function () {\n function SourceConnector(backend) {\n var _this = this;\n this.backend = backend;\n this.hooks = wrapConnectorHooks_1.default({\n dragSource: function (node, options) {\n _this.dragSourceOptions = options || null;\n if (isRef_1.isRef(node)) {\n _this.dragSourceRef = node;\n }\n else {\n _this.dragSourceNode = node;\n }\n _this.reconnectDragSource();\n },\n dragPreview: function (node, options) {\n _this.dragPreviewOptions = options || null;\n if (isRef_1.isRef(node)) {\n _this.dragPreviewRef = node;\n }\n else {\n _this.dragPreviewNode = node;\n }\n _this.reconnectDragPreview();\n },\n });\n this.handlerId = null;\n // The drop target may either be attached via ref or connect function\n this.dragSourceRef = null;\n this.dragSourceOptionsInternal = null;\n // The drag preview may either be attached via ref or connect function\n this.dragPreviewRef = null;\n this.dragPreviewOptionsInternal = null;\n this.lastConnectedHandlerId = null;\n this.lastConnectedDragSource = null;\n this.lastConnectedDragSourceOptions = null;\n this.lastConnectedDragPreview = null;\n this.lastConnectedDragPreviewOptions = null;\n }\n SourceConnector.prototype.receiveHandlerId = function (newHandlerId) {\n if (this.handlerId === newHandlerId) {\n return;\n }\n this.handlerId = newHandlerId;\n this.reconnect();\n };\n Object.defineProperty(SourceConnector.prototype, \"connectTarget\", {\n get: function () {\n return this.dragSource;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SourceConnector.prototype, \"dragSourceOptions\", {\n get: function () {\n return this.dragSourceOptionsInternal;\n },\n set: function (options) {\n this.dragSourceOptionsInternal = options;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SourceConnector.prototype, \"dragPreviewOptions\", {\n get: function () {\n return this.dragPreviewOptionsInternal;\n },\n set: function (options) {\n this.dragPreviewOptionsInternal = options;\n },\n enumerable: true,\n configurable: true\n });\n SourceConnector.prototype.reconnect = function () {\n this.reconnectDragSource();\n this.reconnectDragPreview();\n };\n SourceConnector.prototype.reconnectDragSource = function () {\n // if nothing has changed then don't resubscribe\n var didChange = this.didHandlerIdChange() ||\n this.didConnectedDragSourceChange() ||\n this.didDragSourceOptionsChange();\n if (didChange) {\n this.disconnectDragSource();\n }\n var dragSource = this.dragSource;\n if (!this.handlerId) {\n return;\n }\n if (!dragSource) {\n this.lastConnectedDragSource = dragSource;\n return;\n }\n if (didChange) {\n this.lastConnectedHandlerId = this.handlerId;\n this.lastConnectedDragSource = dragSource;\n this.lastConnectedDragSourceOptions = this.dragSourceOptions;\n this.dragSourceUnsubscribe = this.backend.connectDragSource(this.handlerId, dragSource, this.dragSourceOptions);\n }\n };\n SourceConnector.prototype.reconnectDragPreview = function () {\n // if nothing has changed then don't resubscribe\n var didChange = this.didHandlerIdChange() ||\n this.didConnectedDragPreviewChange() ||\n this.didDragPreviewOptionsChange();\n if (didChange) {\n this.disconnectDragPreview();\n }\n var dragPreview = this.dragPreview;\n if (!this.handlerId || !dragPreview) {\n return;\n }\n if (didChange) {\n this.lastConnectedHandlerId = this.handlerId;\n this.lastConnectedDragPreview = dragPreview;\n this.lastConnectedDragPreviewOptions = this.dragPreviewOptions;\n this.dragPreviewUnsubscribe = this.backend.connectDragPreview(this.handlerId, dragPreview, this.dragPreviewOptions);\n }\n };\n SourceConnector.prototype.didHandlerIdChange = function () {\n return this.lastConnectedHandlerId !== this.handlerId;\n };\n SourceConnector.prototype.didConnectedDragSourceChange = function () {\n return this.lastConnectedDragSource !== this.dragSource;\n };\n SourceConnector.prototype.didConnectedDragPreviewChange = function () {\n return this.lastConnectedDragPreview !== this.dragPreview;\n };\n SourceConnector.prototype.didDragSourceOptionsChange = function () {\n return !shallowEqual(this.lastConnectedDragSourceOptions, this.dragSourceOptions);\n };\n SourceConnector.prototype.didDragPreviewOptionsChange = function () {\n return !shallowEqual(this.lastConnectedDragPreviewOptions, this.dragPreviewOptions);\n };\n SourceConnector.prototype.disconnectDragSource = function () {\n if (this.dragSourceUnsubscribe) {\n this.dragSourceUnsubscribe();\n this.dragSourceUnsubscribe = undefined;\n this.dragPreviewNode = null;\n this.dragPreviewRef = null;\n }\n };\n SourceConnector.prototype.disconnectDragPreview = function () {\n if (this.dragPreviewUnsubscribe) {\n this.dragPreviewUnsubscribe();\n this.dragPreviewUnsubscribe = undefined;\n this.dragPreviewNode = null;\n this.dragPreviewRef = null;\n }\n };\n Object.defineProperty(SourceConnector.prototype, \"dragSource\", {\n get: function () {\n return (this.dragSourceNode || (this.dragSourceRef && this.dragSourceRef.current));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SourceConnector.prototype, \"dragPreview\", {\n get: function () {\n return (this.dragPreviewNode ||\n (this.dragPreviewRef && this.dragPreviewRef.current));\n },\n enumerable: true,\n configurable: true\n });\n return SourceConnector;\n}());\nexports.default = SourceConnector;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\nvar cloneWithRef_1 = require(\"./utils/cloneWithRef\");\nrequire(\"./utils/polyfills/endsWith\");\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 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.' +\n (\"You can either wrap \" + displayName + \" into a

, or turn it into a \") +\n 'drag source or a drop target itself.');\n}\nfunction wrapHookToRecognizeElement(hook) {\n return function (elementOrNode, options) {\n if (elementOrNode === void 0) { elementOrNode = null; }\n if (options === void 0) { options = null; }\n // When passed a node, call the hook straight away.\n if (!react_1.isValidElement(elementOrNode)) {\n var node = elementOrNode;\n hook(node, options);\n // return the node so it can be chained (e.g. when within callback refs\n //
connectDragSource(connectDropTarget(node))}/>\n return node;\n }\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 var element = elementOrNode;\n throwIfCompositeComponentElement(element);\n // When no options are passed, use the hook directly\n var ref = options ? function (node) { return hook(node, options); } : hook;\n return cloneWithRef_1.default(element, ref);\n };\n}\nfunction wrapConnectorHooks(hooks) {\n var wrappedHooks = {};\n Object.keys(hooks).forEach(function (key) {\n var hook = hooks[key];\n // ref objects should be passed straight through without wrapping\n if (key.endsWith('Ref')) {\n wrappedHooks[key] = hooks[key];\n }\n else {\n var wrappedHook_1 = wrapHookToRecognizeElement(hook);\n wrappedHooks[key] = function () { return wrappedHook_1; };\n }\n });\n return wrappedHooks;\n}\nexports.default = wrapConnectorHooks;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction isRef(obj) {\n return (obj !== null && typeof obj === 'object' && obj.hasOwnProperty('current'));\n}\nexports.isRef = isRef;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction isValidType(type, allowArray) {\n return (typeof type === 'string' ||\n typeof type === 'symbol' ||\n (!!allowArray &&\n Array.isArray(type) &&\n type.every(function (t) { return isValidType(t, false); })));\n}\nexports.default = isValidType;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction registerTarget(type, target, manager) {\n var registry = manager.getRegistry();\n var targetId = registry.addTarget(type, target);\n return [targetId, function () { return registry.removeTarget(targetId); }];\n}\nexports.default = registerTarget;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar invariant = require('invariant');\nvar isCallingCanDrop = false;\nvar DropTargetMonitorImpl = /** @class */ (function () {\n function DropTargetMonitorImpl(manager) {\n this.targetId = null;\n this.internalMonitor = manager.getMonitor();\n }\n DropTargetMonitorImpl.prototype.receiveHandlerId = function (targetId) {\n this.targetId = targetId;\n };\n DropTargetMonitorImpl.prototype.getHandlerId = function () {\n return this.targetId;\n };\n DropTargetMonitorImpl.prototype.subscribeToStateChange = function (listener, options) {\n return this.internalMonitor.subscribeToStateChange(listener, options);\n };\n DropTargetMonitorImpl.prototype.canDrop = function () {\n // Cut out early if the target id has not been set. This should prevent errors\n // where the user has an older version of dnd-core like in\n // https://github.com/react-dnd/react-dnd/issues/1310\n if (!this.targetId) {\n return false;\n }\n invariant(!isCallingCanDrop, 'You may not call monitor.canDrop() inside your canDrop() implementation. ' +\n 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor');\n try {\n isCallingCanDrop = true;\n return this.internalMonitor.canDropOnTarget(this.targetId);\n }\n finally {\n isCallingCanDrop = false;\n }\n };\n DropTargetMonitorImpl.prototype.isOver = function (options) {\n if (!this.targetId) {\n return false;\n }\n return this.internalMonitor.isOverTarget(this.targetId, options);\n };\n DropTargetMonitorImpl.prototype.getItemType = function () {\n return this.internalMonitor.getItemType();\n };\n DropTargetMonitorImpl.prototype.getItem = function () {\n return this.internalMonitor.getItem();\n };\n DropTargetMonitorImpl.prototype.getDropResult = function () {\n return this.internalMonitor.getDropResult();\n };\n DropTargetMonitorImpl.prototype.didDrop = function () {\n return this.internalMonitor.didDrop();\n };\n DropTargetMonitorImpl.prototype.getInitialClientOffset = function () {\n return this.internalMonitor.getInitialClientOffset();\n };\n DropTargetMonitorImpl.prototype.getInitialSourceClientOffset = function () {\n return this.internalMonitor.getInitialSourceClientOffset();\n };\n DropTargetMonitorImpl.prototype.getSourceClientOffset = function () {\n return this.internalMonitor.getSourceClientOffset();\n };\n DropTargetMonitorImpl.prototype.getClientOffset = function () {\n return this.internalMonitor.getClientOffset();\n };\n DropTargetMonitorImpl.prototype.getDifferenceFromInitialOffset = function () {\n return this.internalMonitor.getDifferenceFromInitialOffset();\n };\n return DropTargetMonitorImpl;\n}());\nexports.default = DropTargetMonitorImpl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar wrapConnectorHooks_1 = require(\"./wrapConnectorHooks\");\nvar isRef_1 = require(\"./utils/isRef\");\nvar shallowEqual = require('shallowequal');\nvar TargetConnector = /** @class */ (function () {\n function TargetConnector(backend) {\n var _this = this;\n this.backend = backend;\n this.hooks = wrapConnectorHooks_1.default({\n dropTarget: function (node, options) {\n _this.dropTargetOptions = options;\n if (isRef_1.isRef(node)) {\n _this.dropTargetRef = node;\n }\n else {\n _this.dropTargetNode = node;\n }\n _this.reconnect();\n },\n });\n this.handlerId = null;\n // The drop target may either be attached via ref or connect function\n this.dropTargetRef = null;\n this.dropTargetOptionsInternal = null;\n this.lastConnectedHandlerId = null;\n this.lastConnectedDropTarget = null;\n this.lastConnectedDropTargetOptions = null;\n }\n Object.defineProperty(TargetConnector.prototype, \"connectTarget\", {\n get: function () {\n return this.dropTarget;\n },\n enumerable: true,\n configurable: true\n });\n TargetConnector.prototype.reconnect = function () {\n // if nothing has changed then don't resubscribe\n var didChange = this.didHandlerIdChange() ||\n this.didDropTargetChange() ||\n this.didOptionsChange();\n if (didChange) {\n this.disconnectDropTarget();\n }\n var dropTarget = this.dropTarget;\n if (!this.handlerId) {\n return;\n }\n if (!dropTarget) {\n this.lastConnectedDropTarget = dropTarget;\n return;\n }\n if (didChange) {\n this.lastConnectedHandlerId = this.handlerId;\n this.lastConnectedDropTarget = dropTarget;\n this.lastConnectedDropTargetOptions = this.dropTargetOptions;\n this.unsubscribeDropTarget = this.backend.connectDropTarget(this.handlerId, dropTarget, this.dropTargetOptions);\n }\n };\n TargetConnector.prototype.receiveHandlerId = function (newHandlerId) {\n if (newHandlerId === this.handlerId) {\n return;\n }\n this.handlerId = newHandlerId;\n this.reconnect();\n };\n Object.defineProperty(TargetConnector.prototype, \"dropTargetOptions\", {\n get: function () {\n return this.dropTargetOptionsInternal;\n },\n set: function (options) {\n this.dropTargetOptionsInternal = options;\n },\n enumerable: true,\n configurable: true\n });\n TargetConnector.prototype.didHandlerIdChange = function () {\n return this.lastConnectedHandlerId !== this.handlerId;\n };\n TargetConnector.prototype.didDropTargetChange = function () {\n return this.lastConnectedDropTarget !== this.dropTarget;\n };\n TargetConnector.prototype.didOptionsChange = function () {\n return !shallowEqual(this.lastConnectedDropTargetOptions, this.dropTargetOptions);\n };\n TargetConnector.prototype.disconnectDropTarget = function () {\n if (this.unsubscribeDropTarget) {\n this.unsubscribeDropTarget();\n this.unsubscribeDropTarget = undefined;\n }\n };\n Object.defineProperty(TargetConnector.prototype, \"dropTarget\", {\n get: function () {\n return (this.dropTargetNode || (this.dropTargetRef && this.dropTargetRef.current));\n },\n enumerable: true,\n configurable: true\n });\n return TargetConnector;\n}());\nexports.default = TargetConnector;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\nvar useCollector_1 = require(\"./useCollector\");\nfunction useMonitorOutput(monitor, collect, onCollect) {\n var _a = useCollector_1.useCollector(monitor, collect, onCollect), collected = _a[0], updateCollected = _a[1];\n react_1.useEffect(function subscribeToMonitorStateChange() {\n var handlerId = monitor.getHandlerId();\n if (handlerId == null) {\n return undefined;\n }\n return monitor.subscribeToStateChange(updateCollected, {\n handlerIds: [handlerId],\n });\n }, [monitor, updateCollected]);\n return collected;\n}\nexports.useMonitorOutput = useMonitorOutput;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shallowEqual = require('shallowequal');\nvar react_1 = require(\"react\");\n/**\n *\n * @param monitor The monitor to colelct state from\n * @param collect The collecting function\n * @param onUpdate A method to invoke when updates occur\n */\nfunction useCollector(monitor, collect, onUpdate) {\n var _a = react_1.useState(function () { return collect(monitor); }), collected = _a[0], setCollected = _a[1];\n var updateCollected = react_1.useCallback(function () {\n var nextValue = collect(monitor);\n if (!shallowEqual(collected, nextValue)) {\n setCollected(nextValue);\n if (onUpdate) {\n onUpdate();\n }\n }\n }, [collected, monitor, onUpdate]);\n return [collected, updateCollected];\n}\nexports.useCollector = useCollector;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction memoize(fn) {\n var result = null;\n var memoized = function () {\n if (result == null) {\n result = fn();\n }\n return result;\n };\n return memoized;\n}\nexports.memoize = memoize;\n/**\n * drop-in replacement for _.without\n */\nfunction without(items, item) {\n return items.filter(function (i) { return i !== item; });\n}\nexports.without = without;\nfunction union(itemsA, itemsB) {\n var set = new Set();\n var insertItem = function (item) { return set.add(item); };\n itemsA.forEach(insertItem);\n itemsB.forEach(insertItem);\n var result = [];\n set.forEach(function (key) { return result.push(key); });\n return result;\n}\nexports.union = union;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar discount_lodash_1 = require(\"./utils/discount_lodash\");\nexports.isFirefox = discount_lodash_1.memoize(function () {\n return /firefox/i.test(navigator.userAgent);\n});\nexports.isSafari = discount_lodash_1.memoize(function () { return Boolean(window.safari); });\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = capitalizeString;\nfunction capitalizeString(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}","export default function 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","!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","// @flow\n'use strict';\n\nvar key = '__global_unique_id__';\n\nmodule.exports = function() {\n return global[key] = (global[key] || 0) + 1;\n};\n","module.exports = require('./lib/Observable.js').Observable;\n","'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-dom-test-utils.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom-test-utils.development.js');\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createPrefixer;\n\nvar _prefixProperty = require('./utils/prefixProperty');\n\nvar _prefixProperty2 = _interopRequireDefault(_prefixProperty);\n\nvar _prefixValue = require('./utils/prefixValue');\n\nvar _prefixValue2 = _interopRequireDefault(_prefixValue);\n\nvar _addNewValuesOnly = require('./utils/addNewValuesOnly');\n\nvar _addNewValuesOnly2 = _interopRequireDefault(_addNewValuesOnly);\n\nvar _isObject = require('./utils/isObject');\n\nvar _isObject2 = _interopRequireDefault(_isObject);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createPrefixer(_ref) {\n var prefixMap = _ref.prefixMap,\n plugins = _ref.plugins;\n\n return function prefix(style) {\n for (var property in style) {\n var value = style[property];\n\n // handle nested objects\n if ((0, _isObject2.default)(value)) {\n style[property] = prefix(value);\n // handle array values\n } else if (Array.isArray(value)) {\n var combinedValue = [];\n\n for (var i = 0, len = value.length; i < len; ++i) {\n var processedValue = (0, _prefixValue2.default)(plugins, property, value[i], style, prefixMap);\n (0, _addNewValuesOnly2.default)(combinedValue, processedValue || value[i]);\n }\n\n // only modify the value if it was touched\n // by any plugin to prevent unnecessary mutations\n if (combinedValue.length > 0) {\n style[property] = combinedValue;\n }\n } else {\n var _processedValue = (0, _prefixValue2.default)(plugins, property, value, style, prefixMap);\n\n // only modify the value if it was touched\n // by any plugin to prevent unnecessary mutations\n if (_processedValue) {\n style[property] = _processedValue;\n }\n\n style = (0, _prefixProperty2.default)(prefixMap, property, style);\n }\n }\n\n return style;\n };\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = backgroundClip;\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/background-clip#Browser_compatibility\nfunction backgroundClip(property, value) {\n if (typeof value === 'string' && value === 'text') {\n return ['-webkit-text', 'text'];\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = crossFade;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// http://caniuse.com/#search=cross-fade\nvar prefixes = ['-webkit-', ''];\nfunction crossFade(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('cross-fade(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/cross-fade\\(/g, prefix + 'cross-fade(');\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = cursor;\nvar prefixes = ['-webkit-', '-moz-', ''];\n\nvar values = {\n 'zoom-in': true,\n 'zoom-out': true,\n grab: true,\n grabbing: true\n};\n\nfunction cursor(property, value) {\n if (property === 'cursor' && values.hasOwnProperty(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = filter;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// http://caniuse.com/#feat=css-filter-function\nvar prefixes = ['-webkit-', ''];\nfunction filter(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('filter(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/filter\\(/g, prefix + 'filter(');\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flex;\nvar values = {\n flex: ['-webkit-box', '-moz-box', '-ms-flexbox', '-webkit-flex', 'flex'],\n 'inline-flex': ['-webkit-inline-box', '-moz-inline-box', '-ms-inline-flexbox', '-webkit-inline-flex', 'inline-flex']\n};\n\nfunction flex(property, value) {\n if (property === 'display' && values.hasOwnProperty(value)) {\n return values[value];\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxIE;\nvar alternativeValues = {\n 'space-around': 'distribute',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end'\n};\nvar alternativeProps = {\n alignContent: 'msFlexLinePack',\n alignSelf: 'msFlexItemAlign',\n alignItems: 'msFlexAlign',\n justifyContent: 'msFlexPack',\n order: 'msFlexOrder',\n flexGrow: 'msFlexPositive',\n flexShrink: 'msFlexNegative',\n flexBasis: 'msFlexPreferredSize'\n // Full expanded syntax is flex-grow | flex-shrink | flex-basis.\n};var flexShorthandMappings = {\n auto: '1 1 auto',\n inherit: 'inherit',\n initial: '0 1 auto',\n none: '0 0 auto',\n unset: 'unset'\n};\nvar isUnitlessNumber = /^\\d+(\\.\\d+)?$/;\n\nfunction flexboxIE(property, value, style) {\n if (Object.prototype.hasOwnProperty.call(alternativeProps, property)) {\n style[alternativeProps[property]] = alternativeValues[value] || value;\n }\n if (property === 'flex') {\n // For certain values we can do straight mappings based on the spec\n // for the expansions.\n if (Object.prototype.hasOwnProperty.call(flexShorthandMappings, value)) {\n style.msFlex = flexShorthandMappings[value];\n return;\n }\n // Here we have no direct mapping, so we favor looking for a\n // unitless positive number as that will be the most common use-case.\n if (isUnitlessNumber.test(value)) {\n style.msFlex = value + ' 1 0%';\n return;\n }\n\n // The next thing we can look for is if there are multiple values.\n var flexValues = value.split(/\\s/);\n // If we only have a single value that wasn't a positive unitless\n // or a pre-mapped value, then we can assume it is a unit value.\n switch (flexValues.length) {\n case 1:\n style.msFlex = '1 1 ' + value;\n return;\n case 2:\n // If we have 2 units, then we expect that the first will\n // always be a unitless number and represents flex-grow.\n // The second unit will represent flex-shrink for a unitless\n // value, or flex-basis otherwise.\n if (isUnitlessNumber.test(flexValues[1])) {\n style.msFlex = flexValues[0] + ' ' + flexValues[1] + ' 0%';\n } else {\n style.msFlex = flexValues[0] + ' 1 ' + flexValues[1];\n }\n return;\n default:\n style.msFlex = value;\n }\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxOld;\nvar alternativeValues = {\n 'space-around': 'justify',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end',\n 'wrap-reverse': 'multiple',\n wrap: 'multiple'\n};\n\nvar alternativeProps = {\n alignItems: 'WebkitBoxAlign',\n justifyContent: 'WebkitBoxPack',\n flexWrap: 'WebkitBoxLines',\n flexGrow: 'WebkitBoxFlex'\n};\n\nfunction flexboxOld(property, value, style) {\n if (property === 'flexDirection' && typeof value === 'string') {\n if (value.indexOf('column') > -1) {\n style.WebkitBoxOrient = 'vertical';\n } else {\n style.WebkitBoxOrient = 'horizontal';\n }\n if (value.indexOf('reverse') > -1) {\n style.WebkitBoxDirection = 'reverse';\n } else {\n style.WebkitBoxDirection = 'normal';\n }\n }\n if (alternativeProps.hasOwnProperty(property)) {\n style[alternativeProps[property]] = alternativeValues[value] || value;\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = gradient;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar prefixes = ['-webkit-', '-moz-', ''];\n\nvar values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/gi;\n\nfunction gradient(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && values.test(value)) {\n return prefixes.map(function (prefix) {\n return value.replace(values, function (grad) {\n return prefix + grad;\n });\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nexports.default = grid;\nfunction isSimplePositionValue(value) {\n return typeof value === 'number' && !isNaN(value);\n}\n\nfunction isComplexSpanValue(value) {\n return typeof value === 'string' && value.includes('/');\n}\n\nvar alignmentValues = ['center', 'end', 'start', 'stretch'];\n\nvar displayValues = {\n 'inline-grid': ['-ms-inline-grid', 'inline-grid'],\n grid: ['-ms-grid', 'grid']\n};\n\nvar propertyConverters = {\n alignSelf: function alignSelf(value, style) {\n if (alignmentValues.indexOf(value) > -1) {\n style.msGridRowAlign = value;\n }\n },\n\n gridColumn: function gridColumn(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridColumn = value;\n } else if (isComplexSpanValue(value)) {\n var _value$split = value.split('/'),\n _value$split2 = _slicedToArray(_value$split, 2),\n start = _value$split2[0],\n end = _value$split2[1];\n\n propertyConverters.gridColumnStart(+start, style);\n\n var _end$split = end.split(/ ?span /),\n _end$split2 = _slicedToArray(_end$split, 2),\n maybeSpan = _end$split2[0],\n maybeNumber = _end$split2[1];\n\n if (maybeSpan === '') {\n propertyConverters.gridColumnEnd(+start + +maybeNumber, style);\n } else {\n propertyConverters.gridColumnEnd(+end, style);\n }\n } else {\n propertyConverters.gridColumnStart(value, style);\n }\n },\n\n gridColumnEnd: function gridColumnEnd(value, style) {\n var msGridColumn = style.msGridColumn;\n\n if (isSimplePositionValue(value) && isSimplePositionValue(msGridColumn)) {\n style.msGridColumnSpan = value - msGridColumn;\n }\n },\n\n gridColumnStart: function gridColumnStart(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridColumn = value;\n }\n },\n\n gridRow: function gridRow(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridRow = value;\n } else if (isComplexSpanValue(value)) {\n var _value$split3 = value.split('/'),\n _value$split4 = _slicedToArray(_value$split3, 2),\n start = _value$split4[0],\n end = _value$split4[1];\n\n propertyConverters.gridRowStart(+start, style);\n\n var _end$split3 = end.split(/ ?span /),\n _end$split4 = _slicedToArray(_end$split3, 2),\n maybeSpan = _end$split4[0],\n maybeNumber = _end$split4[1];\n\n if (maybeSpan === '') {\n propertyConverters.gridRowEnd(+start + +maybeNumber, style);\n } else {\n propertyConverters.gridRowEnd(+end, style);\n }\n } else {\n propertyConverters.gridRowStart(value, style);\n }\n },\n\n gridRowEnd: function gridRowEnd(value, style) {\n var msGridRow = style.msGridRow;\n\n if (isSimplePositionValue(value) && isSimplePositionValue(msGridRow)) {\n style.msGridRowSpan = value - msGridRow;\n }\n },\n\n gridRowStart: function gridRowStart(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridRow = value;\n }\n },\n\n gridTemplateColumns: function gridTemplateColumns(value, style) {\n style.msGridColumns = value;\n },\n\n gridTemplateRows: function gridTemplateRows(value, style) {\n style.msGridRows = value;\n },\n\n justifySelf: function justifySelf(value, style) {\n if (alignmentValues.indexOf(value) > -1) {\n style.msGridColumnAlign = value;\n }\n }\n};\n\nfunction grid(property, value, style) {\n if (property === 'display' && value in displayValues) {\n return displayValues[value];\n }\n\n if (property in propertyConverters) {\n var propertyConverter = propertyConverters[property];\n propertyConverter(value, style);\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = imageSet;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// http://caniuse.com/#feat=css-image-set\nvar prefixes = ['-webkit-', ''];\nfunction imageSet(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('image-set(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/image-set\\(/g, prefix + 'image-set(');\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = logical;\nvar alternativeProps = {\n marginBlockStart: ['WebkitMarginBefore'],\n marginBlockEnd: ['WebkitMarginAfter'],\n marginInlineStart: ['WebkitMarginStart', 'MozMarginStart'],\n marginInlineEnd: ['WebkitMarginEnd', 'MozMarginEnd'],\n paddingBlockStart: ['WebkitPaddingBefore'],\n paddingBlockEnd: ['WebkitPaddingAfter'],\n paddingInlineStart: ['WebkitPaddingStart', 'MozPaddingStart'],\n paddingInlineEnd: ['WebkitPaddingEnd', 'MozPaddingEnd'],\n borderBlockStart: ['WebkitBorderBefore'],\n borderBlockStartColor: ['WebkitBorderBeforeColor'],\n borderBlockStartStyle: ['WebkitBorderBeforeStyle'],\n borderBlockStartWidth: ['WebkitBorderBeforeWidth'],\n borderBlockEnd: ['WebkitBorderAfter'],\n borderBlockEndColor: ['WebkitBorderAfterColor'],\n borderBlockEndStyle: ['WebkitBorderAfterStyle'],\n borderBlockEndWidth: ['WebkitBorderAfterWidth'],\n borderInlineStart: ['WebkitBorderStart', 'MozBorderStart'],\n borderInlineStartColor: ['WebkitBorderStartColor', 'MozBorderStartColor'],\n borderInlineStartStyle: ['WebkitBorderStartStyle', 'MozBorderStartStyle'],\n borderInlineStartWidth: ['WebkitBorderStartWidth', 'MozBorderStartWidth'],\n borderInlineEnd: ['WebkitBorderEnd', 'MozBorderEnd'],\n borderInlineEndColor: ['WebkitBorderEndColor', 'MozBorderEndColor'],\n borderInlineEndStyle: ['WebkitBorderEndStyle', 'MozBorderEndStyle'],\n borderInlineEndWidth: ['WebkitBorderEndWidth', 'MozBorderEndWidth']\n};\n\nfunction logical(property, value, style) {\n if (Object.prototype.hasOwnProperty.call(alternativeProps, property)) {\n var alternativePropList = alternativeProps[property];\n for (var i = 0, len = alternativePropList.length; i < len; ++i) {\n style[alternativePropList[i]] = value;\n }\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = position;\nfunction position(property, value) {\n if (property === 'position' && value === 'sticky') {\n return ['-webkit-sticky', 'sticky'];\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = sizing;\nvar prefixes = ['-webkit-', '-moz-', ''];\n\nvar properties = {\n maxHeight: true,\n maxWidth: true,\n width: true,\n height: true,\n columnWidth: true,\n minWidth: true,\n minHeight: true\n};\nvar values = {\n 'min-content': true,\n 'max-content': true,\n 'fill-available': true,\n 'fit-content': true,\n 'contain-floats': true\n};\n\nfunction sizing(property, value) {\n if (properties.hasOwnProperty(property) && values.hasOwnProperty(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = transition;\n\nvar _hyphenateProperty = require('css-in-js-utils/lib/hyphenateProperty');\n\nvar _hyphenateProperty2 = _interopRequireDefault(_hyphenateProperty);\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nvar _capitalizeString = require('../utils/capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar properties = {\n transition: true,\n transitionProperty: true,\n WebkitTransition: true,\n WebkitTransitionProperty: true,\n MozTransition: true,\n MozTransitionProperty: true\n};\n\n\nvar prefixMapping = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n ms: '-ms-'\n};\n\nfunction prefixValue(value, propertyPrefixMap) {\n if ((0, _isPrefixedValue2.default)(value)) {\n return value;\n }\n\n // only split multi values, not cubic beziers\n var multipleValues = value.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g);\n\n for (var i = 0, len = multipleValues.length; i < len; ++i) {\n var singleValue = multipleValues[i];\n var values = [singleValue];\n for (var property in propertyPrefixMap) {\n var dashCaseProperty = (0, _hyphenateProperty2.default)(property);\n\n if (singleValue.indexOf(dashCaseProperty) > -1 && dashCaseProperty !== 'order') {\n var prefixes = propertyPrefixMap[property];\n for (var j = 0, pLen = prefixes.length; j < pLen; ++j) {\n // join all prefixes and create a new value\n values.unshift(singleValue.replace(dashCaseProperty, prefixMapping[prefixes[j]] + dashCaseProperty));\n }\n }\n }\n\n multipleValues[i] = values.join(',');\n }\n\n return multipleValues.join(',');\n}\n\nfunction transition(property, value, style, propertyPrefixMap) {\n // also check for already prefixed transitions\n if (typeof value === 'string' && properties.hasOwnProperty(property)) {\n var outputValue = prefixValue(value, propertyPrefixMap);\n // if the property is already prefixed\n var webkitOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-moz-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Webkit') > -1) {\n return webkitOutput;\n }\n\n var mozOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-webkit-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Moz') > -1) {\n return mozOutput;\n }\n\n style['Webkit' + (0, _capitalizeString2.default)(property)] = webkitOutput;\n style['Moz' + (0, _capitalizeString2.default)(property)] = mozOutput;\n return outputValue;\n }\n}","/*\n * Copyright (c) 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\nfunction normalizeColor(color) {\n var match;\n\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n return null;\n }\n\n // Ordered based on occurrences on Facebook codebase\n if ((match = matchers.hex6.exec(color))) {\n return parseInt(match[1] + 'ff', 16) >>> 0;\n }\n\n if (names.hasOwnProperty(color)) {\n return names[color];\n }\n\n if ((match = matchers.rgb.exec(color))) {\n return (\n parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n 0x000000ff // a\n ) >>> 0;\n }\n\n if ((match = matchers.rgba.exec(color))) {\n return (\n parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n parse1(match[4]) // a\n ) >>> 0;\n }\n\n if ((match = matchers.hex3.exec(color))) {\n return parseInt(\n match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n 'ff', // a\n 16\n ) >>> 0;\n }\n\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = matchers.hex8.exec(color))) {\n return parseInt(match[1], 16) >>> 0;\n }\n\n if ((match = matchers.hex4.exec(color))) {\n return parseInt(\n match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n match[4] + match[4], // a\n 16\n ) >>> 0;\n }\n\n if ((match = matchers.hsl.exec(color))) {\n return (\n hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n 0x000000ff // a\n ) >>> 0;\n }\n\n if ((match = matchers.hsla.exec(color))) {\n return (\n hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n parse1(match[4]) // a\n ) >>> 0;\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n var r = hue2rgb(p, q, h + 1 / 3);\n var g = hue2rgb(p, q, h);\n var b = hue2rgb(p, q, h - 1 / 3);\n\n return (\n Math.round(r * 255) << 24 |\n Math.round(g * 255) << 16 |\n Math.round(b * 255) << 8\n );\n}\n\n// var INTEGER = '[-+]?\\\\d+';\nvar NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nvar PERCENTAGE = NUMBER + '%';\n\nfunction toArray(arrayLike) {\n return Array.prototype.slice.call(arrayLike, 0);\n}\n\nfunction call() {\n return '\\\\(\\\\s*(' + toArray(arguments).join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nvar matchers = {\n rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)),\n rgba: new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER)),\n hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hsla: new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER)),\n hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#([0-9a-fA-F]{6})$/,\n hex8: /^#([0-9a-fA-F]{8})$/,\n};\n\nfunction parse255(str) {\n var int = parseInt(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 255) {\n return 255;\n }\n return int;\n}\n\nfunction parse360(str) {\n var int = parseFloat(str);\n return (((int % 360) + 360) % 360) / 360;\n}\n\nfunction parse1(str) {\n var num = parseFloat(str);\n if (num < 0) {\n return 0;\n }\n if (num > 1) {\n return 255;\n }\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n var int = parseFloat(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\n\nvar names = {\n transparent: 0x00000000,\n\n // http://www.w3.org/TR/css3-color/#svg-color\n aliceblue: 0xf0f8ffff,\n antiquewhite: 0xfaebd7ff,\n aqua: 0x00ffffff,\n aquamarine: 0x7fffd4ff,\n azure: 0xf0ffffff,\n beige: 0xf5f5dcff,\n bisque: 0xffe4c4ff,\n black: 0x000000ff,\n blanchedalmond: 0xffebcdff,\n blue: 0x0000ffff,\n blueviolet: 0x8a2be2ff,\n brown: 0xa52a2aff,\n burlywood: 0xdeb887ff,\n burntsienna: 0xea7e5dff,\n cadetblue: 0x5f9ea0ff,\n chartreuse: 0x7fff00ff,\n chocolate: 0xd2691eff,\n coral: 0xff7f50ff,\n cornflowerblue: 0x6495edff,\n cornsilk: 0xfff8dcff,\n crimson: 0xdc143cff,\n cyan: 0x00ffffff,\n darkblue: 0x00008bff,\n darkcyan: 0x008b8bff,\n darkgoldenrod: 0xb8860bff,\n darkgray: 0xa9a9a9ff,\n darkgreen: 0x006400ff,\n darkgrey: 0xa9a9a9ff,\n darkkhaki: 0xbdb76bff,\n darkmagenta: 0x8b008bff,\n darkolivegreen: 0x556b2fff,\n darkorange: 0xff8c00ff,\n darkorchid: 0x9932ccff,\n darkred: 0x8b0000ff,\n darksalmon: 0xe9967aff,\n darkseagreen: 0x8fbc8fff,\n darkslateblue: 0x483d8bff,\n darkslategray: 0x2f4f4fff,\n darkslategrey: 0x2f4f4fff,\n darkturquoise: 0x00ced1ff,\n darkviolet: 0x9400d3ff,\n deeppink: 0xff1493ff,\n deepskyblue: 0x00bfffff,\n dimgray: 0x696969ff,\n dimgrey: 0x696969ff,\n dodgerblue: 0x1e90ffff,\n firebrick: 0xb22222ff,\n floralwhite: 0xfffaf0ff,\n forestgreen: 0x228b22ff,\n fuchsia: 0xff00ffff,\n gainsboro: 0xdcdcdcff,\n ghostwhite: 0xf8f8ffff,\n gold: 0xffd700ff,\n goldenrod: 0xdaa520ff,\n gray: 0x808080ff,\n green: 0x008000ff,\n greenyellow: 0xadff2fff,\n grey: 0x808080ff,\n honeydew: 0xf0fff0ff,\n hotpink: 0xff69b4ff,\n indianred: 0xcd5c5cff,\n indigo: 0x4b0082ff,\n ivory: 0xfffff0ff,\n khaki: 0xf0e68cff,\n lavender: 0xe6e6faff,\n lavenderblush: 0xfff0f5ff,\n lawngreen: 0x7cfc00ff,\n lemonchiffon: 0xfffacdff,\n lightblue: 0xadd8e6ff,\n lightcoral: 0xf08080ff,\n lightcyan: 0xe0ffffff,\n lightgoldenrodyellow: 0xfafad2ff,\n lightgray: 0xd3d3d3ff,\n lightgreen: 0x90ee90ff,\n lightgrey: 0xd3d3d3ff,\n lightpink: 0xffb6c1ff,\n lightsalmon: 0xffa07aff,\n lightseagreen: 0x20b2aaff,\n lightskyblue: 0x87cefaff,\n lightslategray: 0x778899ff,\n lightslategrey: 0x778899ff,\n lightsteelblue: 0xb0c4deff,\n lightyellow: 0xffffe0ff,\n lime: 0x00ff00ff,\n limegreen: 0x32cd32ff,\n linen: 0xfaf0e6ff,\n magenta: 0xff00ffff,\n maroon: 0x800000ff,\n mediumaquamarine: 0x66cdaaff,\n mediumblue: 0x0000cdff,\n mediumorchid: 0xba55d3ff,\n mediumpurple: 0x9370dbff,\n mediumseagreen: 0x3cb371ff,\n mediumslateblue: 0x7b68eeff,\n mediumspringgreen: 0x00fa9aff,\n mediumturquoise: 0x48d1ccff,\n mediumvioletred: 0xc71585ff,\n midnightblue: 0x191970ff,\n mintcream: 0xf5fffaff,\n mistyrose: 0xffe4e1ff,\n moccasin: 0xffe4b5ff,\n navajowhite: 0xffdeadff,\n navy: 0x000080ff,\n oldlace: 0xfdf5e6ff,\n olive: 0x808000ff,\n olivedrab: 0x6b8e23ff,\n orange: 0xffa500ff,\n orangered: 0xff4500ff,\n orchid: 0xda70d6ff,\n palegoldenrod: 0xeee8aaff,\n palegreen: 0x98fb98ff,\n paleturquoise: 0xafeeeeff,\n palevioletred: 0xdb7093ff,\n papayawhip: 0xffefd5ff,\n peachpuff: 0xffdab9ff,\n peru: 0xcd853fff,\n pink: 0xffc0cbff,\n plum: 0xdda0ddff,\n powderblue: 0xb0e0e6ff,\n purple: 0x800080ff,\n rebeccapurple: 0x663399ff,\n red: 0xff0000ff,\n rosybrown: 0xbc8f8fff,\n royalblue: 0x4169e1ff,\n saddlebrown: 0x8b4513ff,\n salmon: 0xfa8072ff,\n sandybrown: 0xf4a460ff,\n seagreen: 0x2e8b57ff,\n seashell: 0xfff5eeff,\n sienna: 0xa0522dff,\n silver: 0xc0c0c0ff,\n skyblue: 0x87ceebff,\n slateblue: 0x6a5acdff,\n slategray: 0x708090ff,\n slategrey: 0x708090ff,\n snow: 0xfffafaff,\n springgreen: 0x00ff7fff,\n steelblue: 0x4682b4ff,\n tan: 0xd2b48cff,\n teal: 0x008080ff,\n thistle: 0xd8bfd8ff,\n tomato: 0xff6347ff,\n turquoise: 0x40e0d0ff,\n violet: 0xee82eeff,\n wheat: 0xf5deb3ff,\n white: 0xffffffff,\n whitesmoke: 0xf5f5f5ff,\n yellow: 0xffff00ff,\n yellowgreen: 0x9acd32ff,\n};\n\nfunction rgba(colorInt) {\n var r = Math.round(((colorInt & 0xff000000) >>> 24));\n var g = Math.round(((colorInt & 0x00ff0000) >>> 16));\n var b = Math.round(((colorInt & 0x0000ff00) >>> 8));\n var a = ((colorInt & 0x000000ff) >>> 0) / 255;\n return {\n r: r,\n g: g,\n b: b,\n a: a,\n };\n};\n\nnormalizeColor.rgba = rgba;\n\nmodule.exports = normalizeColor;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction stringifiable(obj) {\n // Safely stringify Object.create(null)\n /* istanbul ignore next */\n return typeof obj === 'object' && !('toString' in obj) ?\n Object.prototype.toString.call(obj).slice(8, -1) :\n obj;\n}\nvar isProduction = typeof process === 'object' && process.env.NODE_ENV === 'production';\nfunction invariant(condition, message) {\n if (!condition) {\n /* istanbul ignore next */\n if (isProduction) {\n throw new Error('Invariant failed');\n }\n throw new Error(message());\n }\n}\nexports.invariant = invariant;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar splice = Array.prototype.splice;\nvar toString = Object.prototype.toString;\nfunction type(obj) {\n return toString.call(obj).slice(8, -1);\n}\nvar assign = Object.assign || /* istanbul ignore next */ (function (target, source) {\n getAllKeys(source).forEach(function (key) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n });\n return target;\n});\nvar getAllKeys = typeof Object.getOwnPropertySymbols === 'function'\n ? function (obj) { return Object.keys(obj).concat(Object.getOwnPropertySymbols(obj)); }\n /* istanbul ignore next */\n : function (obj) { return Object.keys(obj); };\nfunction copy(object) {\n return Array.isArray(object)\n ? assign(object.constructor(object.length), object)\n : (type(object) === 'Map')\n ? new Map(object)\n : (type(object) === 'Set')\n ? new Set(object)\n : (object && typeof object === 'object')\n ? assign(Object.create(Object.getPrototypeOf(object)), object)\n /* istanbul ignore next */\n : object;\n}\nvar Context = /** @class */ (function () {\n function Context() {\n this.commands = assign({}, defaultCommands);\n this.update = this.update.bind(this);\n // Deprecated: update.extend, update.isEquals and update.newContext\n this.update.extend = this.extend = this.extend.bind(this);\n this.update.isEquals = function (x, y) { return x === y; };\n this.update.newContext = function () { return new Context().update; };\n }\n Object.defineProperty(Context.prototype, \"isEquals\", {\n get: function () {\n return this.update.isEquals;\n },\n set: function (value) {\n this.update.isEquals = value;\n },\n enumerable: true,\n configurable: true\n });\n Context.prototype.extend = function (directive, fn) {\n this.commands[directive] = fn;\n };\n Context.prototype.update = function (object, $spec) {\n var _this = this;\n var spec = (typeof $spec === 'function') ? { $apply: $spec } : $spec;\n if (!(Array.isArray(object) && Array.isArray(spec))) {\n invariant(!Array.isArray(spec), function () { return \"update(): You provided an invalid spec to update(). The spec may \" +\n \"not contain an array except as the value of $set, $push, $unshift, \" +\n \"$splice or any custom command allowing an array value.\"; });\n }\n invariant(typeof spec === 'object' && spec !== null, function () { return \"update(): You provided an invalid spec to update(). The spec and \" +\n \"every included key path must be plain objects containing one of the \" +\n (\"following commands: \" + Object.keys(_this.commands).join(', ') + \".\"); });\n var nextObject = object;\n getAllKeys(spec).forEach(function (key) {\n if (hasOwnProperty.call(_this.commands, key)) {\n var objectWasNextObject = object === nextObject;\n nextObject = _this.commands[key](spec[key], nextObject, spec, object);\n if (objectWasNextObject && _this.isEquals(nextObject, object)) {\n nextObject = object;\n }\n }\n else {\n var nextValueForKey = type(object) === 'Map'\n ? _this.update(object.get(key), spec[key])\n : _this.update(object[key], spec[key]);\n var nextObjectValue = type(nextObject) === 'Map'\n ? nextObject.get(key)\n : nextObject[key];\n if (!_this.isEquals(nextValueForKey, nextObjectValue)\n || typeof nextValueForKey === 'undefined'\n && !hasOwnProperty.call(object, key)) {\n if (nextObject === object) {\n nextObject = copy(object);\n }\n if (type(nextObject) === 'Map') {\n nextObject.set(key, nextValueForKey);\n }\n else {\n nextObject[key] = nextValueForKey;\n }\n }\n }\n });\n return nextObject;\n };\n return Context;\n}());\nexports.Context = Context;\nvar defaultCommands = {\n $push: function (value, nextObject, spec) {\n invariantPushAndUnshift(nextObject, spec, '$push');\n return value.length ? nextObject.concat(value) : nextObject;\n },\n $unshift: function (value, nextObject, spec) {\n invariantPushAndUnshift(nextObject, spec, '$unshift');\n return value.length ? value.concat(nextObject) : nextObject;\n },\n $splice: function (value, nextObject, spec, originalObject) {\n invariantSplices(nextObject, spec);\n value.forEach(function (args) {\n invariantSplice(args);\n if (nextObject === originalObject && args.length) {\n nextObject = copy(originalObject);\n }\n splice.apply(nextObject, args);\n });\n return nextObject;\n },\n $set: function (value, _nextObject, spec) {\n invariantSet(spec);\n return value;\n },\n $toggle: function (targets, nextObject) {\n invariantSpecArray(targets, '$toggle');\n var nextObjectCopy = targets.length ? copy(nextObject) : nextObject;\n targets.forEach(function (target) {\n nextObjectCopy[target] = !nextObject[target];\n });\n return nextObjectCopy;\n },\n $unset: function (value, nextObject, _spec, originalObject) {\n invariantSpecArray(value, '$unset');\n value.forEach(function (key) {\n if (Object.hasOwnProperty.call(nextObject, key)) {\n if (nextObject === originalObject) {\n nextObject = copy(originalObject);\n }\n delete nextObject[key];\n }\n });\n return nextObject;\n },\n $add: function (values, nextObject, _spec, originalObject) {\n invariantMapOrSet(nextObject, '$add');\n invariantSpecArray(values, '$add');\n if (type(nextObject) === 'Map') {\n values.forEach(function (_a) {\n var key = _a[0], value = _a[1];\n if (nextObject === originalObject && nextObject.get(key) !== value) {\n nextObject = copy(originalObject);\n }\n nextObject.set(key, value);\n });\n }\n else {\n values.forEach(function (value) {\n if (nextObject === originalObject && !nextObject.has(value)) {\n nextObject = copy(originalObject);\n }\n nextObject.add(value);\n });\n }\n return nextObject;\n },\n $remove: function (value, nextObject, _spec, originalObject) {\n invariantMapOrSet(nextObject, '$remove');\n invariantSpecArray(value, '$remove');\n value.forEach(function (key) {\n if (nextObject === originalObject && nextObject.has(key)) {\n nextObject = copy(originalObject);\n }\n nextObject.delete(key);\n });\n return nextObject;\n },\n $merge: function (value, nextObject, _spec, originalObject) {\n invariantMerge(nextObject, value);\n getAllKeys(value).forEach(function (key) {\n if (value[key] !== nextObject[key]) {\n if (nextObject === originalObject) {\n nextObject = copy(originalObject);\n }\n nextObject[key] = value[key];\n }\n });\n return nextObject;\n },\n $apply: function (value, original) {\n invariantApply(value);\n return value(original);\n },\n};\nvar defaultContext = new Context();\nexports.isEquals = defaultContext.update.isEquals;\nexports.extend = defaultContext.extend;\nexports.default = defaultContext.update;\n// @ts-ignore\nexports.default.default = module.exports = assign(exports.default, exports);\n// invariants\nfunction invariantPushAndUnshift(value, spec, command) {\n invariant(Array.isArray(value), function () { return \"update(): expected target of \" + stringifiable(command) + \" to be an array; got \" + stringifiable(value) + \".\"; });\n invariantSpecArray(spec[command], command);\n}\nfunction invariantSpecArray(spec, command) {\n invariant(Array.isArray(spec), function () { return \"update(): expected spec of \" + stringifiable(command) + \" to be an array; got \" + stringifiable(spec) + \". \" +\n \"Did you forget to wrap your parameter in an array?\"; });\n}\nfunction invariantSplices(value, spec) {\n invariant(Array.isArray(value), function () { return \"Expected $splice target to be an array; got \" + stringifiable(value); });\n invariantSplice(spec.$splice);\n}\nfunction invariantSplice(value) {\n invariant(Array.isArray(value), function () { return \"update(): expected spec of $splice to be an array of arrays; got \" + stringifiable(value) + \". \" +\n \"Did you forget to wrap your parameters in an array?\"; });\n}\nfunction invariantApply(fn) {\n invariant(typeof fn === 'function', function () { return \"update(): expected spec of $apply to be a function; got \" + stringifiable(fn) + \".\"; });\n}\nfunction invariantSet(spec) {\n invariant(Object.keys(spec).length === 1, function () { return \"Cannot have more than one key in an object with $set\"; });\n}\nfunction invariantMerge(target, specValue) {\n invariant(specValue && typeof specValue === 'object', function () { return \"update(): $merge expects a spec of type 'object'; got \" + stringifiable(specValue); });\n invariant(target && typeof target === 'object', function () { return \"update(): $merge expects a target of type 'object'; got \" + stringifiable(target); });\n}\nfunction invariantMapOrSet(target, command) {\n var typeOfTarget = type(target);\n invariant(typeOfTarget === 'Map' || typeOfTarget === 'Set', function () { return \"update(): \" + stringifiable(command) + \" expects a target of type Set or Map; got \" + stringifiable(typeOfTarget); });\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar accessibilityRoleToWebRole = {\n adjustable: 'slider',\n button: 'button',\n header: 'heading',\n image: 'img',\n imagebutton: null,\n keyboardkey: null,\n label: null,\n link: 'link',\n none: 'presentation',\n search: 'search',\n summary: 'region',\n text: null\n};\n\nvar propsToAriaRole = function propsToAriaRole(_ref) {\n var accessibilityRole = _ref.accessibilityRole;\n\n if (accessibilityRole) {\n var inferredRole = accessibilityRoleToWebRole[accessibilityRole];\n\n if (inferredRole !== null) {\n // ignore roles that don't map to web\n return inferredRole || accessibilityRole;\n }\n }\n};\n\nexport default propsToAriaRole;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport propsToAriaRole from './propsToAriaRole';\nvar roleComponents = {\n article: 'article',\n banner: 'header',\n blockquote: 'blockquote',\n code: 'code',\n complementary: 'aside',\n contentinfo: 'footer',\n deletion: 'del',\n emphasis: 'em',\n figure: 'figure',\n insertion: 'ins',\n form: 'form',\n link: 'a',\n list: 'ul',\n listitem: 'li',\n main: 'main',\n navigation: 'nav',\n region: 'section',\n strong: 'strong'\n};\nvar emptyObject = {};\n\nvar propsToAccessibilityComponent = function propsToAccessibilityComponent(props) {\n if (props === void 0) {\n props = emptyObject;\n }\n\n // special-case for \"label\" role which doesn't map to an ARIA role\n if (props.accessibilityRole === 'label') {\n return 'label';\n } // special-case for \"href\" which becomes a link\n\n\n if (props.href != null) {\n return 'a';\n }\n\n var role = propsToAriaRole(props);\n\n if (role) {\n if (role === 'heading') {\n var level = props.accessibilityLevel || props['aria-level'];\n\n if (level != null) {\n return \"h\" + level;\n }\n\n return 'h1';\n }\n\n return roleComponents[role];\n }\n};\n\nexport default propsToAccessibilityComponent;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport buttonLikeRoles from './buttonLikeRoles';\nimport isDisabled from './isDisabled';\nimport propsToAccessibilityComponent from './propsToAccessibilityComponent';\nimport propsToAriaRole from './propsToAriaRole';\nvar AccessibilityUtil = {\n buttonLikeRoles: buttonLikeRoles,\n isDisabled: isDisabled,\n propsToAccessibilityComponent: propsToAccessibilityComponent,\n propsToAriaRole: propsToAriaRole\n};\nexport default AccessibilityUtil;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar buttonLikeRoles = {\n // ARIA button behaves like native 'button' element\n button: true,\n // ARIA menuitem responds to Enter/Space like a button. Spec requires AT to\n // ignore ARIA roles of any children.\n // https://www.w3.org/WAI/GL/wiki/Using_ARIA_menus\n menuitem: true\n};\nexport default buttonLikeRoles;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar isDisabled = function isDisabled(props) {\n return props.disabled || Array.isArray(props.accessibilityStates) && props.accessibilityStates.indexOf('disabled') > -1;\n};\n\nexport default isDisabled;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar unitlessNumbers = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexOrder: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n fontWeight: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowGap: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnGap: true,\n gridColumnStart: true,\n lineClamp: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true,\n // transform types\n scale: true,\n scaleX: true,\n scaleY: true,\n scaleZ: true,\n // RN properties\n shadowOpacity: true\n};\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\n\nvar prefixes = ['ms', 'Moz', 'O', 'Webkit'];\n\nvar prefixKey = function prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\n\nObject.keys(unitlessNumbers).forEach(function (prop) {\n prefixes.forEach(function (prefix) {\n unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];\n });\n});\nexport default unitlessNumbers;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar isWebColor = function isWebColor(color) {\n return color === 'currentcolor' || color === 'currentColor' || color === 'inherit' || color.indexOf('var(') === 0;\n};\n\nexport default isWebColor;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport normalizeColor from 'normalize-css-color';\n\nvar processColor = function processColor(color) {\n if (color === undefined || color === null) {\n return color;\n } // convert number and hex\n\n\n var int32Color = normalizeColor(color);\n\n if (int32Color === undefined || int32Color === null) {\n return undefined;\n }\n\n int32Color = (int32Color << 24 | int32Color >>> 8) >>> 0;\n return int32Color;\n};\n\nexport default processColor;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport isWebColor from '../isWebColor';\nimport processColor from '../../exports/processColor';\n\nvar normalizeColor = function normalizeColor(color, opacity) {\n if (opacity === void 0) {\n opacity = 1;\n }\n\n if (color == null) return;\n\n if (typeof color === 'string' && isWebColor(color)) {\n return color;\n }\n\n var colorInt = processColor(color);\n\n if (colorInt != null) {\n var r = colorInt >> 16 & 255;\n var g = colorInt >> 8 & 255;\n var b = colorInt & 255;\n var a = (colorInt >> 24 & 255) / 255;\n var alpha = (a * opacity).toFixed(2);\n return \"rgba(\" + r + \",\" + g + \",\" + b + \",\" + alpha + \")\";\n }\n};\n\nexport default normalizeColor;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport unitlessNumbers from '../../modules/unitlessNumbers';\nimport normalizeColor from '../../modules/normalizeColor';\nvar colorProps = {\n backgroundColor: true,\n borderColor: true,\n borderTopColor: true,\n borderRightColor: true,\n borderBottomColor: true,\n borderLeftColor: true,\n color: true,\n shadowColor: true,\n textDecorationColor: true,\n textShadowColor: true\n};\nexport default function normalizeValueWithProperty(value, property) {\n var returnValue = value;\n\n if ((property == null || !unitlessNumbers[property]) && typeof value === 'number') {\n returnValue = value + \"px\";\n } else if (property != null && colorProps[property]) {\n returnValue = normalizeColor(value);\n }\n\n return returnValue;\n}","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport normalizeColor from '../../modules/normalizeColor';\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nvar defaultOffset = {\n height: 0,\n width: 0\n};\n\nvar resolveShadowValue = function resolveShadowValue(style) {\n var shadowColor = style.shadowColor,\n shadowOffset = style.shadowOffset,\n shadowOpacity = style.shadowOpacity,\n shadowRadius = style.shadowRadius;\n\n var _ref = shadowOffset || defaultOffset,\n height = _ref.height,\n width = _ref.width;\n\n var offsetX = normalizeValueWithProperty(width);\n var offsetY = normalizeValueWithProperty(height);\n var blurRadius = normalizeValueWithProperty(shadowRadius || 0);\n var color = normalizeColor(shadowColor || 'black', shadowOpacity);\n\n if (color != null && offsetX != null && offsetY != null && blurRadius != null) {\n return offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n};\n\nexport default resolveShadowValue;","function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nimport resolveShadowValue from './resolveShadowValue';\nvar defaultOffset = {\n height: 0,\n width: 0\n};\n\nfunction boxShadowReducer(resolvedStyle, style) {\n var boxShadow = style.boxShadow;\n var shadow = resolveShadowValue(style);\n\n if (shadow != null) {\n resolvedStyle.boxShadow = boxShadow ? boxShadow + \", \" + shadow : shadow;\n }\n}\n\nfunction textShadowReducer(resolvedStyle, style) {\n var textShadowColor = style.textShadowColor,\n textShadowOffset = style.textShadowOffset,\n textShadowRadius = style.textShadowRadius;\n\n var _ref = textShadowOffset || defaultOffset,\n height = _ref.height,\n width = _ref.width;\n\n var radius = textShadowRadius || 0;\n var offsetX = normalizeValueWithProperty(width);\n var offsetY = normalizeValueWithProperty(height);\n var blurRadius = normalizeValueWithProperty(radius);\n var color = normalizeValueWithProperty(textShadowColor, 'textShadowColor');\n\n if (color && (height !== 0 || width !== 0 || radius !== 0) && offsetX != null && offsetY != null && blurRadius != null) {\n resolvedStyle.textShadow = offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n}\n\nvar createCompileableStyle = function createCompileableStyle(styles) {\n var shadowColor = styles.shadowColor,\n shadowOffset = styles.shadowOffset,\n shadowOpacity = styles.shadowOpacity,\n shadowRadius = styles.shadowRadius,\n textShadowColor = styles.textShadowColor,\n textShadowOffset = styles.textShadowOffset,\n textShadowRadius = styles.textShadowRadius,\n nextStyles = _objectWithoutPropertiesLoose(styles, [\"shadowColor\", \"shadowOffset\", \"shadowOpacity\", \"shadowRadius\", \"textShadowColor\", \"textShadowOffset\", \"textShadowRadius\"]);\n\n if (shadowColor != null || shadowOffset != null || shadowOpacity != null || shadowRadius != null) {\n boxShadowReducer(nextStyles, styles);\n }\n\n if (textShadowColor != null || textShadowOffset != null || textShadowRadius != null) {\n textShadowReducer(nextStyles, styles);\n }\n\n return nextStyles;\n};\n\nexport default createCompileableStyle;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar slice = Array.prototype.slice;\n/**\n * Order-based insertion of CSS.\n *\n * Each rule is associated with a numerically defined group.\n * Groups are ordered within the style sheet according to their number, with the\n * lowest first.\n *\n * Groups are implemented using marker rules. The selector of the first rule of\n * each group is used only to encode the group number for hydration. An\n * alternative implementation could rely on CSSMediaRule, allowing groups to be\n * treated as a sub-sheet, but the Edge implementation of CSSMediaRule is\n * broken.\n * https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule\n * https://gist.github.com/necolas/aa0c37846ad6bd3b05b727b959e82674\n */\n\nexport default function createOrderedCSSStyleSheet(sheet) {\n var groups = {};\n var selectors = {};\n /**\n * Hydrate approximate record from any existing rules in the sheet.\n */\n\n if (sheet != null) {\n var group;\n slice.call(sheet.cssRules).forEach(function (cssRule, i) {\n var cssText = cssRule.cssText; // Create record of existing selectors and rules\n\n if (cssText.indexOf('stylesheet-group') > -1) {\n group = decodeGroupRule(cssRule);\n groups[group] = {\n start: i,\n rules: [cssText]\n };\n } else {\n var selectorText = getSelectorText(cssText);\n\n if (selectorText != null) {\n selectors[selectorText] = true;\n groups[group].rules.push(cssText);\n }\n }\n });\n }\n\n function sheetInsert(sheet, group, text) {\n var orderedGroups = getOrderedGroups(groups);\n var groupIndex = orderedGroups.indexOf(group);\n var nextGroupIndex = groupIndex + 1;\n var nextGroup = orderedGroups[nextGroupIndex]; // Insert rule before the next group, or at the end of the stylesheet\n\n var position = nextGroup != null && groups[nextGroup].start != null ? groups[nextGroup].start : sheet.cssRules.length;\n var isInserted = insertRuleAt(sheet, text, position);\n\n if (isInserted) {\n // Set the starting index of the new group\n if (groups[group].start == null) {\n groups[group].start = position;\n } // Increment the starting index of all subsequent groups\n\n\n for (var i = nextGroupIndex; i < orderedGroups.length; i += 1) {\n var groupNumber = orderedGroups[i];\n var previousStart = groups[groupNumber].start;\n groups[groupNumber].start = previousStart + 1;\n }\n }\n\n return isInserted;\n }\n\n var OrderedCSSStyleSheet = {\n /**\n * The textContent of the style sheet.\n */\n getTextContent: function getTextContent() {\n return getOrderedGroups(groups).map(function (group) {\n var rules = groups[group].rules;\n return rules.join('\\n');\n }).join('\\n');\n },\n\n /**\n * Insert a rule into the style sheet\n */\n insert: function insert(cssText, groupValue) {\n var group = Number(groupValue); // Create a new group.\n\n if (groups[group] == null) {\n var markerRule = encodeGroupRule(group); // Create the internal record.\n\n groups[group] = {\n start: null,\n rules: [markerRule]\n }; // Update CSSOM.\n\n if (sheet != null) {\n sheetInsert(sheet, group, markerRule);\n }\n } // selectorText is more reliable than cssText for insertion checks. The\n // browser excludes vendor-prefixed properties and rewrites certain values\n // making cssText more likely to be different from what was inserted.\n\n\n var selectorText = getSelectorText(cssText);\n\n if (selectorText != null && selectors[selectorText] == null) {\n // Update the internal records.\n selectors[selectorText] = true;\n groups[group].rules.push(cssText); // Update CSSOM.\n\n if (sheet != null) {\n var isInserted = sheetInsert(sheet, group, cssText);\n\n if (!isInserted) {\n // Revert internal record change if a rule was rejected (e.g.,\n // unrecognized pseudo-selector)\n groups[group].rules.pop();\n }\n }\n }\n }\n };\n return OrderedCSSStyleSheet;\n}\n/**\n * Helper functions\n */\n\nfunction encodeGroupRule(group) {\n return \"[stylesheet-group=\\\"\" + group + \"\\\"]{}\";\n}\n\nfunction decodeGroupRule(cssRule) {\n return Number(cssRule.selectorText.split(/[\"']/)[1]);\n}\n\nfunction getOrderedGroups(obj) {\n return Object.keys(obj).map(Number).sort(function (a, b) {\n return a > b ? 1 : -1;\n });\n}\n\nvar pattern = /\\s*([,])\\s*/g;\n\nfunction getSelectorText(cssText) {\n var selector = cssText.split('{')[0].trim();\n return selector !== '' ? selector.replace(pattern, '$1') : null;\n}\n\nfunction insertRuleAt(root, cssText, position) {\n try {\n // $FlowFixMe: Flow is missing CSSOM types needed to type 'root'.\n root.insertRule(cssText, position);\n return true;\n } catch (e) {\n // JSDOM doesn't support `CSSSMediaRule#insertRule`.\n // Also ignore errors that occur from attempting to insert vendor-prefixed selectors.\n return false;\n }\n}","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nfunction flattenArray(array) {\n function flattenDown(array, result) {\n for (var i = 0; i < array.length; i++) {\n var value = array[i];\n\n if (Array.isArray(value)) {\n flattenDown(value, result);\n } else if (value != null && value !== false) {\n result.push(value);\n }\n }\n\n return result;\n }\n\n return flattenDown(array, []);\n}\n\nexport default flattenArray;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment';\nvar doLeftAndRightSwapInRTL = true;\nvar isPreferredLanguageRTL = false;\nvar isRTLAllowed = true;\nvar isRTLForced = false;\n\nvar isRTL = function isRTL() {\n if (isRTLForced) {\n return true;\n }\n\n return isRTLAllowed && isPreferredLanguageRTL;\n};\n\nvar onDirectionChange = function onDirectionChange() {\n if (ExecutionEnvironment.canUseDOM) {\n if (document.documentElement && document.documentElement.setAttribute) {\n document.documentElement.setAttribute('dir', isRTL() ? 'rtl' : 'ltr');\n }\n }\n};\n\nvar I18nManager = {\n allowRTL: function allowRTL(bool) {\n isRTLAllowed = bool;\n onDirectionChange();\n },\n forceRTL: function forceRTL(bool) {\n isRTLForced = bool;\n onDirectionChange();\n },\n getConstants: function getConstants() {\n return {\n doLeftAndRightSwapInRTL: doLeftAndRightSwapInRTL,\n isRTL: isRTL()\n };\n },\n setPreferredLanguageRTL: function setPreferredLanguageRTL(bool) {\n isPreferredLanguageRTL = bool;\n onDirectionChange();\n },\n swapLeftAndRightInRTL: function swapLeftAndRightInRTL(bool) {\n doLeftAndRightSwapInRTL = bool;\n }\n};\nexport default I18nManager;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar CSS_UNIT_RE = /^[+-]?\\d*(?:\\.\\d+)?(?:[Ee][+-]?\\d+)?(%|\\w*)/;\n\nvar getUnit = function getUnit(str) {\n return str.match(CSS_UNIT_RE)[1];\n};\n\nvar isNumeric = function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n};\n\nvar multiplyStyleLengthValue = function multiplyStyleLengthValue(value, multiple) {\n if (typeof value === 'string') {\n var number = parseFloat(value) * multiple;\n var unit = getUnit(value);\n return \"\" + number + unit;\n } else if (isNumeric(value)) {\n return value * multiple;\n }\n};\n\nexport default multiplyStyleLengthValue;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport I18nManager from '../I18nManager';\nimport multiplyStyleLengthValue from '../../modules/multiplyStyleLengthValue';\nvar emptyObject = {};\nvar borderTopLeftRadius = 'borderTopLeftRadius';\nvar borderTopRightRadius = 'borderTopRightRadius';\nvar borderBottomLeftRadius = 'borderBottomLeftRadius';\nvar borderBottomRightRadius = 'borderBottomRightRadius';\nvar borderLeftColor = 'borderLeftColor';\nvar borderLeftStyle = 'borderLeftStyle';\nvar borderLeftWidth = 'borderLeftWidth';\nvar borderRightColor = 'borderRightColor';\nvar borderRightStyle = 'borderRightStyle';\nvar borderRightWidth = 'borderRightWidth';\nvar right = 'right';\nvar marginLeft = 'marginLeft';\nvar marginRight = 'marginRight';\nvar paddingLeft = 'paddingLeft';\nvar paddingRight = 'paddingRight';\nvar left = 'left'; // Map of LTR property names to their BiDi equivalent.\n\nvar PROPERTIES_FLIP = {\n borderTopLeftRadius: borderTopRightRadius,\n borderTopRightRadius: borderTopLeftRadius,\n borderBottomLeftRadius: borderBottomRightRadius,\n borderBottomRightRadius: borderBottomLeftRadius,\n borderLeftColor: borderRightColor,\n borderLeftStyle: borderRightStyle,\n borderLeftWidth: borderRightWidth,\n borderRightColor: borderLeftColor,\n borderRightStyle: borderLeftStyle,\n borderRightWidth: borderLeftWidth,\n left: right,\n marginLeft: marginRight,\n marginRight: marginLeft,\n paddingLeft: paddingRight,\n paddingRight: paddingLeft,\n right: left\n}; // Map of I18N property names to their LTR equivalent.\n\nvar PROPERTIES_I18N = {\n borderTopStartRadius: borderTopLeftRadius,\n borderTopEndRadius: borderTopRightRadius,\n borderBottomStartRadius: borderBottomLeftRadius,\n borderBottomEndRadius: borderBottomRightRadius,\n borderStartColor: borderLeftColor,\n borderStartStyle: borderLeftStyle,\n borderStartWidth: borderLeftWidth,\n borderEndColor: borderRightColor,\n borderEndStyle: borderRightStyle,\n borderEndWidth: borderRightWidth,\n end: right,\n marginStart: marginLeft,\n marginEnd: marginRight,\n paddingStart: paddingLeft,\n paddingEnd: paddingRight,\n start: left\n};\nvar PROPERTIES_VALUE = {\n clear: true,\n float: true,\n textAlign: true\n}; // Invert the sign of a numeric-like value\n\nvar additiveInverse = function additiveInverse(value) {\n return multiplyStyleLengthValue(value, -1);\n};\n\nvar i18nStyle = function i18nStyle(originalStyle) {\n var _I18nManager$getConst = I18nManager.getConstants(),\n doLeftAndRightSwapInRTL = _I18nManager$getConst.doLeftAndRightSwapInRTL,\n isRTL = _I18nManager$getConst.isRTL;\n\n var style = originalStyle || emptyObject;\n var frozenProps = {};\n var nextStyle = {};\n\n for (var originalProp in style) {\n if (!Object.prototype.hasOwnProperty.call(style, originalProp)) {\n continue;\n }\n\n var originalValue = style[originalProp];\n var prop = originalProp;\n var value = originalValue; // BiDi flip properties\n\n if (PROPERTIES_I18N.hasOwnProperty(originalProp)) {\n // convert start/end\n var convertedProp = PROPERTIES_I18N[originalProp];\n prop = isRTL ? PROPERTIES_FLIP[convertedProp] : convertedProp;\n } else if (isRTL && doLeftAndRightSwapInRTL && PROPERTIES_FLIP[originalProp]) {\n prop = PROPERTIES_FLIP[originalProp];\n } // BiDi flip values\n\n\n if (PROPERTIES_VALUE.hasOwnProperty(originalProp)) {\n if (originalValue === 'start') {\n value = isRTL ? 'right' : 'left';\n } else if (originalValue === 'end') {\n value = isRTL ? 'left' : 'right';\n } else if (isRTL && doLeftAndRightSwapInRTL) {\n if (originalValue === 'left') {\n value = 'right';\n } else if (originalValue === 'right') {\n value = 'left';\n }\n }\n } // BiDi flip transitionProperty value\n\n\n if (prop === 'transitionProperty') {\n // BiDi flip properties\n if (PROPERTIES_I18N.hasOwnProperty(value)) {\n // convert start/end\n var convertedValue = PROPERTIES_I18N[originalValue];\n value = isRTL ? PROPERTIES_FLIP[convertedValue] : convertedValue;\n } else if (isRTL && doLeftAndRightSwapInRTL) {\n var flippedValue = PROPERTIES_FLIP[originalValue];\n\n if (flippedValue != null) {\n value = flippedValue;\n }\n }\n } // Create finalized style\n\n\n if (isRTL && prop === 'textShadowOffset') {\n var invertedValue = additiveInverse(value.width);\n value.width = invertedValue;\n nextStyle[prop] = value;\n } else if (!frozenProps[prop]) {\n nextStyle[prop] = value;\n }\n\n if (PROPERTIES_I18N[originalProp]) {\n frozenProps[prop] = true;\n }\n }\n\n return nextStyle;\n};\n\nexport default i18nStyle;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nexport var STYLE_ELEMENT_ID = 'react-native-stylesheet';\nexport var STYLE_GROUPS = {\n reset: 0,\n modality: 0.1,\n classicReset: 0.5,\n classic: 1,\n atomic: 2.2,\n custom: {\n borderColor: 2,\n borderRadius: 2,\n borderStyle: 2,\n borderWidth: 2,\n display: 2,\n flex: 2,\n margin: 2,\n overflow: 2,\n overscrollBehavior: 2,\n padding: 2,\n marginHorizontal: 2.1,\n marginVertical: 2.1,\n paddingHorizontal: 2.1,\n paddingVertical: 2.1\n }\n};\nexport var STYLE_SHORT_FORM_EXPANSIONS = {\n borderColor: ['borderTopColor', 'borderRightColor', 'borderBottomColor', 'borderLeftColor'],\n borderRadius: ['borderTopLeftRadius', 'borderTopRightRadius', 'borderBottomRightRadius', 'borderBottomLeftRadius'],\n borderStyle: ['borderTopStyle', 'borderRightStyle', 'borderBottomStyle', 'borderLeftStyle'],\n borderWidth: ['borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth'],\n margin: ['marginTop', 'marginRight', 'marginBottom', 'marginLeft'],\n marginHorizontal: ['marginRight', 'marginLeft'],\n marginVertical: ['marginTop', 'marginBottom'],\n overflow: ['overflowX', 'overflowY'],\n overscrollBehavior: ['overscrollBehaviorX', 'overscrollBehaviorY'],\n padding: ['paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft'],\n paddingHorizontal: ['paddingRight', 'paddingLeft'],\n paddingVertical: ['paddingTop', 'paddingBottom']\n};\nexport var MONOSPACE_FONT_STACK = 'monospace,monospace';\nexport var SYSTEM_FONT_STACK = '-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif';","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport { MONOSPACE_FONT_STACK, SYSTEM_FONT_STACK, STYLE_SHORT_FORM_EXPANSIONS } from './constants';\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\n/**\n * The browser implements the CSS cascade, where the order of properties is a\n * factor in determining which styles to paint. React Native is different. It\n * gives giving precedence to the more specific style property. For example,\n * the value of `paddingTop` takes precedence over that of `padding`.\n *\n * This module creates mutally exclusive style declarations by expanding all of\n * React Native's supported shortform properties (e.g. `padding`) to their\n * longfrom equivalents.\n */\n\nvar emptyObject = {};\nvar supportsCSS3TextDecoration = !canUseDOM || window.CSS != null && window.CSS.supports != null && (window.CSS.supports('text-decoration-line', 'none') || window.CSS.supports('-webkit-text-decoration-line', 'none'));\n/**\n * Transform\n */\n// { scale: 2 } => 'scale(2)'\n// { translateX: 20 } => 'translateX(20px)'\n// { matrix: [1,2,3,4,5,6] } => 'matrix(1,2,3,4,5,6)'\n\nvar mapTransform = function mapTransform(transform) {\n var type = Object.keys(transform)[0];\n var value = transform[type];\n\n if (type === 'matrix' || type === 'matrix3d') {\n return type + \"(\" + value.join(',') + \")\";\n } else {\n var normalizedValue = normalizeValueWithProperty(value, type);\n return type + \"(\" + normalizedValue + \")\";\n }\n};\n\nvar resolveTransform = function resolveTransform(resolvedStyle, style) {\n var transform = style.transform;\n\n if (Array.isArray(style.transform)) {\n transform = style.transform.map(mapTransform).join(' ');\n }\n\n resolvedStyle.transform = transform;\n};\n/**\n * Reducer\n */\n\n\nvar createReactDOMStyle = function createReactDOMStyle(style) {\n if (!style) {\n return emptyObject;\n }\n\n var resolvedStyle = {};\n Object.keys(style).sort().forEach(function (prop) {\n var value = normalizeValueWithProperty(style[prop], prop); // Ignore everything else with a null value\n\n if (value == null) {\n return;\n }\n\n switch (prop) {\n // Ignore some React Native styles\n case 'elevation':\n case 'overlayColor':\n case 'resizeMode':\n case 'tintColor':\n {\n break;\n }\n // TODO: remove once this issue is fixed\n // https://github.com/rofrischmann/inline-style-prefixer/issues/159\n\n case 'backgroundClip':\n {\n if (value === 'text') {\n resolvedStyle.backgroundClip = value;\n resolvedStyle.WebkitBackgroundClip = value;\n }\n\n break;\n }\n // The 'flex' property value in React Native must be a positive integer,\n // 0, or -1.\n\n case 'flex':\n {\n if (value === -1) {\n resolvedStyle.flexGrow = 0;\n resolvedStyle.flexShrink = 1;\n resolvedStyle.flexBasis = 'auto';\n } else {\n resolvedStyle.flex = value;\n }\n\n break;\n }\n\n case 'font':\n {\n resolvedStyle[prop] = value.replace('System', SYSTEM_FONT_STACK);\n break;\n }\n\n case 'fontFamily':\n {\n if (value.indexOf('System') > -1) {\n var stack = value.split(/,\\s*/);\n stack[stack.indexOf('System')] = SYSTEM_FONT_STACK;\n resolvedStyle[prop] = stack.join(',');\n } else if (value === 'monospace') {\n resolvedStyle[prop] = MONOSPACE_FONT_STACK;\n } else {\n resolvedStyle[prop] = value;\n }\n\n break;\n }\n\n case 'fontVariant':\n {\n if (Array.isArray(value) && value.length > 0) {\n resolvedStyle.fontVariant = value.join(' ');\n }\n\n break;\n }\n\n case 'textAlignVertical':\n {\n resolvedStyle.verticalAlign = value === 'center' ? 'middle' : value;\n break;\n }\n\n case 'textDecorationLine':\n {\n // use 'text-decoration' for browsers that only support CSS2\n // text-decoration (e.g., IE, Edge)\n if (!supportsCSS3TextDecoration) {\n resolvedStyle.textDecoration = value;\n } else {\n resolvedStyle.textDecorationLine = value;\n }\n\n break;\n }\n\n case 'transform':\n case 'transformMatrix':\n {\n resolveTransform(resolvedStyle, style);\n break;\n }\n\n case 'writingDirection':\n {\n resolvedStyle.direction = value;\n break;\n }\n\n default:\n {\n var longFormProperties = STYLE_SHORT_FORM_EXPANSIONS[prop];\n\n if (longFormProperties) {\n longFormProperties.forEach(function (longForm, i) {\n // The value of any longform property in the original styles takes\n // precedence over the shortform's value.\n if (typeof style[longForm] === 'undefined') {\n resolvedStyle[longForm] = value;\n }\n });\n } else {\n resolvedStyle[prop] = Array.isArray(value) ? value.join(',') : value;\n }\n }\n }\n });\n return resolvedStyle;\n};\n\nexport default createReactDOMStyle;","/* eslint-disable */\n\n/**\n * JS Implementation of MurmurHash2\n *\n * @author Gary Court\n * @see http://github.com/garycourt/murmurhash-js\n * @author Austin Appleby\n * @see http://sites.google.com/site/murmurhash/\n *\n * @param {string} str ASCII only\n * @param {number} seed Positive integer only\n * @return {number} 32-bit positive integer hash\n */\nfunction murmurhash2_32_gc(str, seed) {\n var l = str.length,\n h = seed ^ l,\n i = 0,\n k;\n\n while (l >= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n k ^= k >>> 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16) ^ k;\n l -= 4;\n ++i;\n }\n\n switch (l) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n }\n\n h ^= h >>> 13;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h ^= h >>> 15;\n return h >>> 0;\n}\n\nvar hash = function hash(str) {\n return murmurhash2_32_gc(str, 1).toString(36);\n};\n\nexport default hash;","import backgroundClip from 'inline-style-prefixer/lib/plugins/backgroundClip';\nimport crossFade from 'inline-style-prefixer/lib/plugins/crossFade';\nimport cursor from 'inline-style-prefixer/lib/plugins/cursor';\nimport filter from 'inline-style-prefixer/lib/plugins/filter';\nimport flex from 'inline-style-prefixer/lib/plugins/flex';\nimport flexboxIE from 'inline-style-prefixer/lib/plugins/flexboxIE';\nimport flexboxOld from 'inline-style-prefixer/lib/plugins/flexboxOld';\nimport gradient from 'inline-style-prefixer/lib/plugins/gradient';\nimport grid from 'inline-style-prefixer/lib/plugins/grid';\nimport imageSet from 'inline-style-prefixer/lib/plugins/imageSet';\nimport logical from 'inline-style-prefixer/lib/plugins/logical';\nimport position from 'inline-style-prefixer/lib/plugins/position';\nimport sizing from 'inline-style-prefixer/lib/plugins/sizing';\nimport transition from 'inline-style-prefixer/lib/plugins/transition';\nvar w = ['Webkit'];\nvar m = ['Moz'];\nvar ms = ['ms'];\nvar wm = ['Webkit', 'Moz'];\nvar wms = ['Webkit', 'ms'];\nvar wmms = ['Webkit', 'Moz', 'ms'];\nexport default {\n plugins: [backgroundClip, crossFade, cursor, filter, flex, flexboxIE, flexboxOld, gradient, grid, imageSet, logical, position, sizing, transition],\n prefixMap: {\n animation: w,\n animationDelay: w,\n animationDirection: w,\n animationFillMode: w,\n animationDuration: w,\n animationIterationCount: w,\n animationName: w,\n animationPlayState: w,\n animationTimingFunction: w,\n appearance: wm,\n userSelect: wmms,\n textEmphasisPosition: w,\n textEmphasis: w,\n textEmphasisStyle: w,\n textEmphasisColor: w,\n boxDecorationBreak: w,\n clipPath: w,\n maskImage: w,\n maskMode: w,\n maskRepeat: w,\n maskPosition: w,\n maskClip: w,\n maskOrigin: w,\n maskSize: w,\n maskComposite: w,\n mask: w,\n maskBorderSource: w,\n maskBorderMode: w,\n maskBorderSlice: w,\n maskBorderWidth: w,\n maskBorderOutset: w,\n maskBorderRepeat: w,\n maskBorder: w,\n maskType: w,\n textDecorationStyle: w,\n textDecorationSkip: w,\n textDecorationLine: w,\n textDecorationColor: w,\n filter: w,\n fontFeatureSettings: w,\n breakAfter: wmms,\n breakBefore: wmms,\n breakInside: wmms,\n columnCount: wm,\n columnFill: wm,\n columnGap: wm,\n columnRule: wm,\n columnRuleColor: wm,\n columnRuleStyle: wm,\n columnRuleWidth: wm,\n columns: wm,\n columnSpan: wm,\n columnWidth: wm,\n writingMode: wms,\n flex: wms,\n flexBasis: w,\n flexDirection: wms,\n flexGrow: w,\n flexFlow: wms,\n flexShrink: w,\n flexWrap: wms,\n alignContent: w,\n alignItems: w,\n alignSelf: w,\n justifyContent: w,\n order: w,\n transform: w,\n transformOrigin: w,\n transformOriginX: w,\n transformOriginY: w,\n backfaceVisibility: w,\n perspective: w,\n perspectiveOrigin: w,\n transformStyle: w,\n transformOriginZ: w,\n backdropFilter: w,\n fontKerning: w,\n scrollSnapType: wms,\n scrollSnapPointsX: wms,\n scrollSnapPointsY: wms,\n scrollSnapDestination: wms,\n scrollSnapCoordinate: wms,\n shapeImageThreshold: w,\n shapeImageMargin: w,\n shapeImageOutside: w,\n hyphens: wmms,\n flowInto: wms,\n flowFrom: wms,\n regionFragment: wms,\n textOrientation: w,\n textAlignLast: m,\n tabSize: m,\n wrapFlow: ms,\n wrapThrough: ms,\n wrapMargin: ms,\n touchAction: ms,\n textSizeAdjust: ['ms', 'Webkit'],\n borderImage: w,\n borderImageOutset: w,\n borderImageRepeat: w,\n borderImageSlice: w,\n borderImageSource: w,\n borderImageWidth: w,\n transitionDelay: w,\n transitionDuration: w,\n transitionProperty: w,\n transitionTimingFunction: w\n }\n};","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport createPrefixer from 'inline-style-prefixer/lib/createPrefixer';\nimport staticData from './static';\nvar prefixAll = createPrefixer(staticData);\nexport default prefixAll;\nexport var prefixInlineStyles = function prefixInlineStyles(style) {\n var prefixedStyles = prefixAll(style); // React@15 removed undocumented support for fallback values in\n // inline-styles. Revert array values to the standard CSS value\n\n Object.keys(prefixedStyles).forEach(function (prop) {\n var value = prefixedStyles[prop];\n\n if (Array.isArray(value)) {\n prefixedStyles[prop] = value[value.length - 1];\n }\n });\n return prefixedStyles;\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 _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport createReactDOMStyle from './createReactDOMStyle';\nimport hash from '../../vendor/hash';\nimport hyphenateStyleName from 'hyphenate-style-name';\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nimport prefixStyles, { prefixInlineStyles } from '../../modules/prefixStyles';\nvar cache = {\n get: function get(property, value) {\n if (cache[property] != null && cache[property].hasOwnProperty(value) && cache[property][value] != null) {\n return cache[property][value];\n }\n },\n set: function set(property, value, object) {\n if (cache[property] == null) {\n cache[property] = {};\n }\n\n return cache[property][value] = object;\n }\n};\n/**\n * Compile style to atomic CSS rules.\n */\n\nexport function atomic(style) {\n return Object.keys(style).sort().reduce(function (acc, property) {\n var value = style[property];\n\n if (value != null) {\n var valueString = stringifyValueWithProperty(value, property);\n var cachedResult = cache.get(property, valueString);\n\n if (cachedResult != null) {\n var identifier = cachedResult.identifier;\n acc[identifier] = cachedResult;\n } else {\n var _identifier = createIdentifier('r', property, value);\n\n var rules = createAtomicRules(_identifier, property, value);\n\n var _cachedResult = cache.set(property, valueString, {\n property: property,\n value: stringifyValueWithProperty(value, property),\n identifier: _identifier,\n rules: rules\n });\n\n acc[_identifier] = _cachedResult;\n }\n }\n\n return acc;\n }, {});\n}\n/**\n * Compile simple style object to classic CSS rules.\n * No support for 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\n\nexport function classic(style, name) {\n var _ref;\n\n var identifier = createIdentifier('css', name, style);\n\n var animationKeyframes = style.animationKeyframes,\n rest = _objectWithoutPropertiesLoose(style, [\"animationKeyframes\"]);\n\n var rules = [];\n var selector = \".\" + identifier;\n var animationName;\n\n if (animationKeyframes != null) {\n var _processKeyframesValu = processKeyframesValue(animationKeyframes),\n animationNames = _processKeyframesValu.animationNames,\n keyframesRules = _processKeyframesValu.rules;\n\n animationName = animationNames.join(',');\n rules.push.apply(rules, keyframesRules);\n }\n\n var block = createDeclarationBlock(_objectSpread(_objectSpread({}, rest), {}, {\n animationName: animationName\n }));\n rules.push(\"\" + selector + block);\n return _ref = {}, _ref[identifier] = {\n identifier: identifier,\n rules: rules\n }, _ref;\n}\n/**\n * Compile simple style object to inline DOM styles.\n * No support for 'animationKeyframes', 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\n\nexport function inline(style) {\n return prefixInlineStyles(createReactDOMStyle(style));\n}\n/**\n * Create a value string that normalizes different input values with a common\n * output.\n */\n\nexport function stringifyValueWithProperty(value, property) {\n // e.g., 0 => '0px', 'black' => 'rgba(0,0,0,1)'\n var normalizedValue = normalizeValueWithProperty(value, property);\n return typeof normalizedValue !== 'string' ? JSON.stringify(normalizedValue || '') : normalizedValue;\n}\n/**\n * Create the Atomic CSS rules needed for a given StyleSheet rule.\n * Translates StyleSheet declarations to CSS.\n */\n\nfunction createAtomicRules(identifier, property, value) {\n var rules = [];\n var selector = \".\" + identifier; // Handle non-standard properties and object values that require multiple\n // CSS rules to be created.\n\n switch (property) {\n case 'animationKeyframes':\n {\n var _processKeyframesValu2 = processKeyframesValue(value),\n animationNames = _processKeyframesValu2.animationNames,\n keyframesRules = _processKeyframesValu2.rules;\n\n var block = createDeclarationBlock({\n animationName: animationNames.join(',')\n });\n rules.push.apply(rules, [\"\" + selector + block].concat(keyframesRules));\n break;\n }\n // Equivalent to using '::placeholder'\n\n case 'placeholderTextColor':\n {\n var _block = createDeclarationBlock({\n color: value,\n opacity: 1\n });\n\n rules.push(selector + \"::-webkit-input-placeholder\" + _block, selector + \"::-moz-placeholder\" + _block, selector + \":-ms-input-placeholder\" + _block, selector + \"::placeholder\" + _block);\n break;\n }\n // Polyfill for additional 'pointer-events' values\n // See d13f78622b233a0afc0c7a200c0a0792c8ca9e58\n\n case 'pointerEvents':\n {\n var _createDeclarationBlo3;\n\n var finalValue = value;\n\n if (value === 'auto' || value === 'box-only') {\n finalValue = 'auto!important';\n\n if (value === 'box-only') {\n var _createDeclarationBlo;\n\n var _block3 = createDeclarationBlock((_createDeclarationBlo = {}, _createDeclarationBlo[property] = 'none', _createDeclarationBlo));\n\n rules.push(selector + \">*\" + _block3);\n }\n } else if (value === 'none' || value === 'box-none') {\n finalValue = 'none!important';\n\n if (value === 'box-none') {\n var _createDeclarationBlo2;\n\n var _block4 = createDeclarationBlock((_createDeclarationBlo2 = {}, _createDeclarationBlo2[property] = 'auto', _createDeclarationBlo2));\n\n rules.push(selector + \">*\" + _block4);\n }\n }\n\n var _block2 = createDeclarationBlock((_createDeclarationBlo3 = {}, _createDeclarationBlo3[property] = finalValue, _createDeclarationBlo3));\n\n rules.push(\"\" + selector + _block2);\n break;\n }\n // Polyfill for draft spec\n // https://drafts.csswg.org/css-scrollbars-1/\n\n case 'scrollbarWidth':\n {\n var _createDeclarationBlo4;\n\n if (value === 'none') {\n rules.push(selector + \"::-webkit-scrollbar{display:none}\");\n }\n\n var _block5 = createDeclarationBlock((_createDeclarationBlo4 = {}, _createDeclarationBlo4[property] = value, _createDeclarationBlo4));\n\n rules.push(\"\" + selector + _block5);\n break;\n }\n\n default:\n {\n var _createDeclarationBlo5;\n\n var _block6 = createDeclarationBlock((_createDeclarationBlo5 = {}, _createDeclarationBlo5[property] = value, _createDeclarationBlo5));\n\n rules.push(\"\" + selector + _block6);\n break;\n }\n }\n\n return rules;\n}\n/**\n * Creates a CSS declaration block from a StyleSheet object.\n */\n\n\nfunction createDeclarationBlock(style) {\n var domStyle = prefixStyles(createReactDOMStyle(style));\n var declarationsString = Object.keys(domStyle).map(function (property) {\n var value = domStyle[property];\n var prop = hyphenateStyleName(property); // The prefixer may return an array of values:\n // { display: [ '-webkit-flex', 'flex' ] }\n // to represent \"fallback\" declarations\n // { display: -webkit-flex; display: flex; }\n\n if (Array.isArray(value)) {\n return value.map(function (v) {\n return prop + \":\" + v;\n }).join(';');\n } else {\n return prop + \":\" + value;\n }\n }) // Once properties are hyphenated, this will put the vendor\n // prefixed and short-form properties first in the list.\n .sort().join(';');\n return \"{\" + declarationsString + \";}\";\n}\n/**\n * An identifier is associated with a unique set of styles.\n */\n\n\nfunction createIdentifier(prefix, name, value) {\n var hashedString = hash(name + stringifyValueWithProperty(value, name));\n return process.env.NODE_ENV !== 'production' ? prefix + \"-\" + name + \"-\" + hashedString : prefix + \"-\" + hashedString;\n}\n/**\n * Create individual CSS keyframes rules.\n */\n\n\nfunction createKeyframes(keyframes) {\n var prefixes = ['-webkit-', ''];\n var identifier = createIdentifier('r', 'animation', keyframes);\n var steps = '{' + Object.keys(keyframes).map(function (stepName) {\n var rule = keyframes[stepName];\n var block = createDeclarationBlock(rule);\n return \"\" + stepName + block;\n }).join('') + '}';\n var rules = prefixes.map(function (prefix) {\n return \"@\" + prefix + \"keyframes \" + identifier + steps;\n });\n return {\n identifier: identifier,\n rules: rules\n };\n}\n/**\n * Create CSS keyframes rules and names from a StyleSheet keyframes object.\n */\n\n\nfunction processKeyframesValue(keyframesValue) {\n if (typeof keyframesValue === 'number') {\n throw new Error(\"Invalid CSS keyframes type: \" + typeof keyframesValue);\n }\n\n var animationNames = [];\n var rules = [];\n var value = Array.isArray(keyframesValue) ? keyframesValue : [keyframesValue];\n value.forEach(function (keyframes) {\n if (typeof keyframes === 'string') {\n // Support external animation libraries (identifiers only)\n animationNames.push(keyframes);\n } else {\n // Create rules for each of the keyframes\n var _createKeyframes = createKeyframes(keyframes),\n identifier = _createKeyframes.identifier,\n keyframesRules = _createKeyframes.rules;\n\n animationNames.push(identifier);\n rules.push.apply(rules, keyframesRules);\n }\n });\n return {\n animationNames: animationNames,\n rules: rules\n };\n}","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar resets = [// minimal top-level reset\n'html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);}', 'body{margin:0;}', // minimal form pseudo-element reset\n'button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}', 'input::-webkit-inner-spin-button,input::-webkit-outer-spin-button,' + 'input::-webkit-search-cancel-button,input::-webkit-search-decoration,' + 'input::-webkit-search-results-button,input::-webkit-search-results-decoration{display:none;}'];\nexport default resets;","/**\n * Adapts focus styles based on the user's active input modality (i.e., how\n * they are interacting with the UI right now).\n *\n * Focus styles are only relevant when using the keyboard to interact with the\n * page. If we only show the focus ring when relevant, we can avoid user\n * confusion without compromising accessibility.\n *\n * The script uses two heuristics to determine whether the keyboard is being used:\n *\n * 1. a keydown event occurred immediately before a focus event;\n * 2. a focus event happened on an element which requires keyboard interaction (e.g., a text field);\n *\n * This software or document includes material copied from or derived from https://github.com/WICG/focus-visible.\n * Copyright © 2018 W3C® (MIT, ERCIM, Keio, Beihang).\n * W3C Software Notice and License: https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nvar focusVisibleAttributeName = 'data-focusvisible-polyfill';\nvar rule = \":focus:not([\" + focusVisibleAttributeName + \"]){outline: none;}\";\n\nvar modality = function modality(insertRule) {\n insertRule(rule);\n\n if (!canUseDOM) {\n return;\n }\n\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n var inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n */\n\n function isValidFocusTarget(el) {\n if (el && el !== document && el.nodeName !== 'HTML' && el.nodeName !== 'BODY' && 'classList' in el && 'contains' in el.classList) {\n return true;\n }\n\n return false;\n }\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` attribute being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n */\n\n\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n var isReadOnly = el.readOnly;\n\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !isReadOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !isReadOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n /**\n * Add the `focus-visible` attribute to the given element if it was not added by\n * the author.\n */\n\n\n function addFocusVisibleAttribute(el) {\n if (el.hasAttribute(focusVisibleAttributeName)) {\n return;\n }\n\n el.setAttribute(focusVisibleAttributeName, true);\n }\n /**\n * Remove the `focus-visible` attribute from the given element if it was not\n * originally added by the author.\n */\n\n\n function removeFocusVisibleAttribute(el) {\n el.removeAttribute(focusVisibleAttributeName);\n }\n /**\n * Remove the `focus-visible` attribute from all elements in the document.\n */\n\n\n function removeAllFocusVisibleAttributes() {\n var list = document.querySelectorAll(\"[\" + focusVisibleAttributeName + \"]\");\n\n for (var i = 0; i < list.length; i += 1) {\n removeFocusVisibleAttribute(list[i]);\n }\n }\n /**\n * Treat `keydown` as a signal that the user is in keyboard modality.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n */\n\n\n function onKeyDown(e) {\n if (e.key !== 'Tab' && (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)) {\n return;\n }\n\n if (isValidFocusTarget(document.activeElement)) {\n addFocusVisibleAttribute(document.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * It also avoids the situation where a user presses on an element within a\n * previously keyboard-focused element (i.e., `e.target` is not the previously\n * focused element, but one of its descendants) and we need to remove the\n * focus ring because a `blur` event doesn't occur.\n */\n\n\n function onPointerDown(e) {\n if (hadKeyboardEvent === true) {\n removeAllFocusVisibleAttributes();\n }\n\n hadKeyboardEvent = false;\n }\n /**\n * On `focus`, add the `focus-visible` attribute to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n */\n\n\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleAttribute(e.target);\n }\n }\n /**\n * On `blur`, remove the `focus-visible` attribute from the target.\n */\n\n\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (e.target.hasAttribute(focusVisibleAttributeName)) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function () {\n hadFocusVisibleRecently = false;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n }, 100);\n removeFocusVisibleAttribute(e.target);\n }\n }\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had the focus-visible attribute.\n */\n\n\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the attribute when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n\n addInitialPointerMoveListeners();\n }\n }\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n\n\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n */\n\n\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. ¯\\_(ツ)_/¯\n if (e.target.nodeName === 'HTML') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('focus', onFocus, true);\n document.addEventListener('blur', onBlur, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n addInitialPointerMoveListeners();\n};\n\nexport default modality;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n/**\n * WARNING: changes to this file in particular can cause significant changes to\n * the results of render performance benchmarks.\n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport createCSSStyleSheet from './createCSSStyleSheet';\nimport createCompileableStyle from './createCompileableStyle';\nimport createOrderedCSSStyleSheet from './createOrderedCSSStyleSheet';\nimport flattenArray from '../../modules/flattenArray';\nimport flattenStyle from './flattenStyle';\nimport I18nManager from '../I18nManager';\nimport i18nStyle from './i18nStyle';\nimport { atomic, classic, inline, stringifyValueWithProperty } from './compile';\nimport initialRules from './initialRules';\nimport modality from './modality';\nimport { STYLE_ELEMENT_ID, STYLE_GROUPS } from './constants';\nexport default function createStyleResolver() {\n var inserted, sheet, cache;\n var resolved = {\n css: {},\n ltr: {},\n rtl: {},\n rtlNoSwap: {}\n };\n\n var init = function init() {\n inserted = {\n css: {},\n ltr: {},\n rtl: {},\n rtlNoSwap: {}\n };\n sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(STYLE_ELEMENT_ID));\n cache = {};\n modality(function (rule) {\n return sheet.insert(rule, STYLE_GROUPS.modality);\n });\n initialRules.forEach(function (rule) {\n sheet.insert(rule, STYLE_GROUPS.reset);\n });\n };\n\n init();\n\n function addToCache(className, prop, value) {\n if (!cache[prop]) {\n cache[prop] = {};\n }\n\n cache[prop][value] = className;\n }\n\n function getClassName(prop, value) {\n var val = stringifyValueWithProperty(value, prop);\n return cache[prop] && cache[prop].hasOwnProperty(val) && cache[prop][val];\n }\n\n function _injectRegisteredStyle(id) {\n var _I18nManager$getConst = I18nManager.getConstants(),\n doLeftAndRightSwapInRTL = _I18nManager$getConst.doLeftAndRightSwapInRTL,\n isRTL = _I18nManager$getConst.isRTL;\n\n var dir = isRTL ? doLeftAndRightSwapInRTL ? 'rtl' : 'rtlNoSwap' : 'ltr';\n\n if (!inserted[dir][id]) {\n var style = createCompileableStyle(i18nStyle(flattenStyle(id)));\n var results = atomic(style);\n Object.keys(results).forEach(function (key) {\n var _results$key = results[key],\n identifier = _results$key.identifier,\n property = _results$key.property,\n rules = _results$key.rules,\n value = _results$key.value;\n addToCache(identifier, property, value);\n rules.forEach(function (rule) {\n var group = STYLE_GROUPS.custom[property] || STYLE_GROUPS.atomic;\n sheet.insert(rule, group);\n });\n });\n inserted[dir][id] = true;\n }\n }\n /**\n * Resolves a React Native style object to DOM attributes\n */\n\n\n function resolve(style, classList) {\n var nextClassList = [];\n var props = {};\n\n if (!style && !classList) {\n return props;\n }\n\n if (Array.isArray(classList)) {\n flattenArray(classList).forEach(function (identifier) {\n if (identifier) {\n if (inserted.css[identifier] == null && resolved.css[identifier] != null) {\n var item = resolved.css[identifier];\n item.rules.forEach(function (rule) {\n sheet.insert(rule, item.group);\n });\n inserted.css[identifier] = true;\n }\n\n nextClassList.push(identifier);\n }\n });\n }\n\n if (typeof style === 'number') {\n // fast and cachable\n _injectRegisteredStyle(style);\n\n var key = createCacheKey(style);\n props = _resolveStyle(style, key);\n } else if (!Array.isArray(style)) {\n // resolve a plain RN style object\n props = _resolveStyle(style);\n } else {\n // flatten the style array\n // cache resolved props when all styles are registered\n // otherwise fallback to resolving\n var flatArray = flattenArray(style);\n var isArrayOfNumbers = true;\n var cacheKey = '';\n\n for (var i = 0; i < flatArray.length; i++) {\n var id = flatArray[i];\n\n if (typeof id !== 'number') {\n isArrayOfNumbers = false;\n } else {\n if (isArrayOfNumbers) {\n cacheKey += id + '-';\n }\n\n _injectRegisteredStyle(id);\n }\n }\n\n var _key = isArrayOfNumbers ? createCacheKey(cacheKey) : null;\n\n props = _resolveStyle(flatArray, _key);\n }\n\n nextClassList.push.apply(nextClassList, props.classList);\n var finalProps = {\n className: classListToString(nextClassList),\n classList: nextClassList\n };\n\n if (props.style) {\n finalProps.style = props.style;\n }\n\n return finalProps;\n }\n /**\n * Resolves a React Native style object\n */\n\n\n function _resolveStyle(style, key) {\n var _I18nManager$getConst2 = I18nManager.getConstants(),\n doLeftAndRightSwapInRTL = _I18nManager$getConst2.doLeftAndRightSwapInRTL,\n isRTL = _I18nManager$getConst2.isRTL;\n\n var dir = isRTL ? doLeftAndRightSwapInRTL ? 'rtl' : 'rtlNoSwap' : 'ltr'; // faster: memoized\n\n if (key != null && resolved[dir][key] != null) {\n return resolved[dir][key];\n }\n\n var flatStyle = flattenStyle(style);\n var localizedStyle = createCompileableStyle(i18nStyle(flatStyle)); // slower: convert style object to props and cache\n\n var props = Object.keys(localizedStyle).sort().reduce(function (props, styleProp) {\n var value = localizedStyle[styleProp];\n\n if (value != null) {\n var className = getClassName(styleProp, value);\n\n if (className) {\n props.classList.push(className);\n } else {\n // Certain properties and values are not transformed by 'createReactDOMStyle' as they\n // require more complex transforms into multiple CSS rules. Here we assume that StyleManager\n // can bind these styles to a className, and prevent them becoming invalid inline-styles.\n if (styleProp === 'animationKeyframes' || styleProp === 'placeholderTextColor' || styleProp === 'pointerEvents' || styleProp === 'scrollbarWidth') {\n var _atomic;\n\n var a = atomic((_atomic = {}, _atomic[styleProp] = value, _atomic));\n Object.keys(a).forEach(function (key) {\n var _a$key = a[key],\n identifier = _a$key.identifier,\n rules = _a$key.rules;\n props.classList.push(identifier);\n rules.forEach(function (rule) {\n sheet.insert(rule, STYLE_GROUPS.atomic);\n });\n });\n } else {\n if (!props.style) {\n props.style = {};\n } // 4x slower render\n\n\n props.style[styleProp] = value;\n }\n }\n }\n\n return props;\n }, {\n classList: []\n });\n\n if (props.style) {\n props.style = inline(props.style);\n }\n\n if (key != null) {\n resolved[dir][key] = props;\n }\n\n return props;\n }\n\n return {\n getStyleSheet: function getStyleSheet() {\n var textContent = sheet.getTextContent(); // Reset state on the server so critical css is always the result\n\n if (!canUseDOM) {\n init();\n }\n\n return {\n id: STYLE_ELEMENT_ID,\n textContent: textContent\n };\n },\n createCSS: function createCSS(rules, group) {\n var result = {};\n Object.keys(rules).forEach(function (name) {\n var style = rules[name];\n var compiled = classic(style, name);\n Object.keys(compiled).forEach(function (key) {\n var _compiled$key = compiled[key],\n identifier = _compiled$key.identifier,\n rules = _compiled$key.rules;\n resolved.css[identifier] = {\n group: group || STYLE_GROUPS.classic,\n rules: rules\n };\n result[name] = identifier;\n });\n });\n return result;\n },\n resolve: resolve,\n\n get sheet() {\n return sheet;\n }\n\n };\n}\n/**\n * Misc helpers\n */\n\nvar createCacheKey = function createCacheKey(id) {\n var prefix = 'rn';\n return prefix + \"-\" + id;\n};\n\nvar classListToString = function classListToString(list) {\n return list.join(' ').trim();\n};","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport createStyleResolver from './createStyleResolver';\nvar styleResolver = createStyleResolver();\nexport default styleResolver;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment'; // $FlowFixMe: HTMLStyleElement is incorrectly typed - https://github.com/facebook/flow/issues/2696\n\nexport default function createCSSStyleSheet(id) {\n if (canUseDOM) {\n var element = document.getElementById(id);\n\n if (element != null) {\n // $FlowFixMe: HTMLElement is incorrectly typed\n return element.sheet;\n } else {\n var _element = document.createElement('style');\n\n _element.setAttribute('id', id);\n\n var head = document.head;\n\n if (head) {\n head.insertBefore(_element, head.firstChild);\n }\n\n return _element.sheet;\n }\n } else {\n return null;\n }\n}","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport styleResolver from './styleResolver';\n/**\n * A simple (and dangerous) CSS system.\n * The order of CSS rule insertion is not guaranteed.\n * Avoiding combining 2 or more classes that modify the same property.\n */\n\nvar css = {\n /**\n * const classes = css.create({ base: {}, extra: {} })\n */\n create: function create(rules, group) {\n return styleResolver.createCSS(rules, group);\n }\n};\nexport default css;","function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport AccessibilityUtil from '../AccessibilityUtil';\nimport css from '../../exports/StyleSheet/css';\nimport StyleSheet from '../../exports/StyleSheet';\nimport styleResolver from '../../exports/StyleSheet/styleResolver';\nimport { STYLE_GROUPS } from '../../exports/StyleSheet/constants';\nvar emptyObject = {};\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar uppercasePattern = /[A-Z]/g;\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\n\nfunction hyphenateString(str) {\n return str.replace(uppercasePattern, toHyphenLower);\n} // Reset styles for heading, link, and list DOM elements\n\n\nvar classes = css.create({\n reset: {\n backgroundColor: 'transparent',\n color: 'inherit',\n font: 'inherit',\n listStyle: 'none',\n margin: 0,\n textAlign: 'inherit',\n textDecoration: 'none'\n },\n cursor: {\n cursor: 'pointer'\n }\n}, STYLE_GROUPS.classicReset);\nvar pointerEventsStyles = StyleSheet.create({\n auto: {\n pointerEvents: 'auto'\n },\n 'box-none': {\n pointerEvents: 'box-none'\n },\n 'box-only': {\n pointerEvents: 'box-only'\n },\n none: {\n pointerEvents: 'none'\n }\n});\n\nvar createDOMProps = function createDOMProps(elementType, props) {\n if (!props) {\n props = emptyObject;\n }\n\n var _props = props,\n accessibilityActiveDescendant = _props.accessibilityActiveDescendant,\n accessibilityAtomic = _props.accessibilityAtomic,\n accessibilityAutoComplete = _props.accessibilityAutoComplete,\n accessibilityBusy = _props.accessibilityBusy,\n accessibilityChecked = _props.accessibilityChecked,\n accessibilityColumnCount = _props.accessibilityColumnCount,\n accessibilityColumnIndex = _props.accessibilityColumnIndex,\n accessibilityColumnSpan = _props.accessibilityColumnSpan,\n accessibilityControls = _props.accessibilityControls,\n accessibilityCurrent = _props.accessibilityCurrent,\n accessibilityDescribedBy = _props.accessibilityDescribedBy,\n accessibilityDetails = _props.accessibilityDetails,\n accessibilityDisabled = _props.accessibilityDisabled,\n accessibilityErrorMessage = _props.accessibilityErrorMessage,\n accessibilityExpanded = _props.accessibilityExpanded,\n accessibilityFlowTo = _props.accessibilityFlowTo,\n accessibilityHasPopup = _props.accessibilityHasPopup,\n accessibilityHidden = _props.accessibilityHidden,\n accessibilityInvalid = _props.accessibilityInvalid,\n accessibilityKeyShortcuts = _props.accessibilityKeyShortcuts,\n accessibilityLabel = _props.accessibilityLabel,\n accessibilityLabelledBy = _props.accessibilityLabelledBy,\n accessibilityLevel = _props.accessibilityLevel,\n accessibilityLiveRegion = _props.accessibilityLiveRegion,\n accessibilityModal = _props.accessibilityModal,\n accessibilityMultiline = _props.accessibilityMultiline,\n accessibilityMultiSelectable = _props.accessibilityMultiSelectable,\n accessibilityOrientation = _props.accessibilityOrientation,\n accessibilityOwns = _props.accessibilityOwns,\n accessibilityPlaceholder = _props.accessibilityPlaceholder,\n accessibilityPosInSet = _props.accessibilityPosInSet,\n accessibilityPressed = _props.accessibilityPressed,\n accessibilityReadOnly = _props.accessibilityReadOnly,\n accessibilityRequired = _props.accessibilityRequired,\n accessibilityRole = _props.accessibilityRole,\n accessibilityRoleDescription = _props.accessibilityRoleDescription,\n accessibilityRowCount = _props.accessibilityRowCount,\n accessibilityRowIndex = _props.accessibilityRowIndex,\n accessibilityRowSpan = _props.accessibilityRowSpan,\n accessibilitySelected = _props.accessibilitySelected,\n accessibilitySetSize = _props.accessibilitySetSize,\n accessibilitySort = _props.accessibilitySort,\n accessibilityValueMax = _props.accessibilityValueMax,\n accessibilityValueMin = _props.accessibilityValueMin,\n accessibilityValueNow = _props.accessibilityValueNow,\n accessibilityValueText = _props.accessibilityValueText,\n classList = _props.classList,\n dataSet = _props.dataSet,\n focusable = _props.focusable,\n nativeID = _props.nativeID,\n pointerEvents = _props.pointerEvents,\n providedStyle = _props.style,\n testID = _props.testID,\n accessible = _props.accessible,\n accessibilityState = _props.accessibilityState,\n accessibilityValue = _props.accessibilityValue,\n domProps = _objectWithoutPropertiesLoose(_props, [\"accessibilityActiveDescendant\", \"accessibilityAtomic\", \"accessibilityAutoComplete\", \"accessibilityBusy\", \"accessibilityChecked\", \"accessibilityColumnCount\", \"accessibilityColumnIndex\", \"accessibilityColumnSpan\", \"accessibilityControls\", \"accessibilityCurrent\", \"accessibilityDescribedBy\", \"accessibilityDetails\", \"accessibilityDisabled\", \"accessibilityErrorMessage\", \"accessibilityExpanded\", \"accessibilityFlowTo\", \"accessibilityHasPopup\", \"accessibilityHidden\", \"accessibilityInvalid\", \"accessibilityKeyShortcuts\", \"accessibilityLabel\", \"accessibilityLabelledBy\", \"accessibilityLevel\", \"accessibilityLiveRegion\", \"accessibilityModal\", \"accessibilityMultiline\", \"accessibilityMultiSelectable\", \"accessibilityOrientation\", \"accessibilityOwns\", \"accessibilityPlaceholder\", \"accessibilityPosInSet\", \"accessibilityPressed\", \"accessibilityReadOnly\", \"accessibilityRequired\", \"accessibilityRole\", \"accessibilityRoleDescription\", \"accessibilityRowCount\", \"accessibilityRowIndex\", \"accessibilityRowSpan\", \"accessibilitySelected\", \"accessibilitySetSize\", \"accessibilitySort\", \"accessibilityValueMax\", \"accessibilityValueMin\", \"accessibilityValueNow\", \"accessibilityValueText\", \"classList\", \"dataSet\", \"focusable\", \"nativeID\", \"pointerEvents\", \"style\", \"testID\", \"accessible\", \"accessibilityState\", \"accessibilityValue\"]);\n\n var disabled = accessibilityState != null && accessibilityState.disabled === true || accessibilityDisabled;\n var role = AccessibilityUtil.propsToAriaRole(props);\n var isNativeInteractiveElement = role === 'link' || elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea' || domProps.contentEditable != null; // DEPRECATED\n\n if (accessibilityState != null) {\n for (var prop in accessibilityState) {\n var value = accessibilityState[prop];\n\n if (value != null) {\n if (prop === 'disabled' || prop === 'hidden') {\n if (value === true) {\n domProps[\"aria-\" + prop] = value; // also set prop directly to pick up host elementType behaviour\n\n domProps[prop] = value;\n }\n } else {\n domProps[\"aria-\" + prop] = value;\n }\n }\n }\n }\n\n if (accessibilityValue != null) {\n for (var _prop in accessibilityValue) {\n var _value = accessibilityValue[_prop];\n\n if (_value != null) {\n domProps[\"aria-value\" + _prop] = _value;\n }\n }\n } // ACCESSIBILITY\n\n\n if (accessibilityActiveDescendant != null) {\n domProps['aria-activedescendant'] = accessibilityActiveDescendant;\n }\n\n if (accessibilityAtomic != null) {\n domProps['aria-atomic'] = accessibilityAtomic;\n }\n\n if (accessibilityAutoComplete != null) {\n domProps['aria-autocomplete'] = accessibilityAutoComplete;\n }\n\n if (accessibilityBusy != null) {\n domProps['aria-busy'] = accessibilityBusy;\n }\n\n if (accessibilityChecked != null) {\n domProps['aria-checked'] = accessibilityChecked;\n }\n\n if (accessibilityColumnCount != null) {\n domProps['aria-colcount'] = accessibilityColumnCount;\n }\n\n if (accessibilityColumnIndex != null) {\n domProps['aria-colindex'] = accessibilityColumnIndex;\n }\n\n if (accessibilityColumnSpan != null) {\n domProps['aria-colspan'] = accessibilityColumnSpan;\n }\n\n if (accessibilityControls != null) {\n domProps['aria-controls'] = accessibilityControls;\n }\n\n if (accessibilityCurrent != null) {\n domProps['aria-current'] = accessibilityCurrent;\n }\n\n if (accessibilityDescribedBy != null) {\n domProps['aria-describedby'] = accessibilityDescribedBy;\n }\n\n if (accessibilityDetails != null) {\n domProps['aria-details'] = accessibilityDetails;\n }\n\n if (disabled === true) {\n domProps['aria-disabled'] = true; // Enhance with native semantics\n\n if (elementType === 'button' || elementType === 'form' || elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.disabled = true;\n }\n }\n\n if (accessibilityErrorMessage != null) {\n domProps['aria-errormessage'] = accessibilityErrorMessage;\n }\n\n if (accessibilityExpanded != null) {\n domProps['aria-expanded'] = accessibilityExpanded;\n }\n\n if (accessibilityFlowTo != null) {\n domProps['aria-flowto'] = accessibilityFlowTo;\n }\n\n if (accessibilityHasPopup != null) {\n domProps['aria-haspopup'] = accessibilityHasPopup;\n }\n\n if (accessibilityHidden === true) {\n domProps['aria-hidden'] = accessibilityHidden;\n }\n\n if (accessibilityInvalid != null) {\n domProps['aria-invalid'] = accessibilityInvalid;\n }\n\n if (accessibilityKeyShortcuts != null && Array.isArray(accessibilityKeyShortcuts)) {\n domProps['aria-keyshortcuts'] = accessibilityKeyShortcuts.join(' ');\n }\n\n if (accessibilityLabel != null) {\n domProps['aria-label'] = accessibilityLabel;\n }\n\n if (accessibilityLabelledBy != null) {\n domProps['aria-labelledby'] = accessibilityLabelledBy;\n }\n\n if (accessibilityLevel != null) {\n domProps['aria-level'] = accessibilityLevel;\n }\n\n if (accessibilityLiveRegion != null) {\n domProps['aria-live'] = accessibilityLiveRegion === 'none' ? 'off' : accessibilityLiveRegion;\n }\n\n if (accessibilityModal != null) {\n domProps['aria-modal'] = accessibilityModal;\n }\n\n if (accessibilityMultiline != null) {\n domProps['aria-multiline'] = accessibilityMultiline;\n }\n\n if (accessibilityMultiSelectable != null) {\n domProps['aria-multiselectable'] = accessibilityMultiSelectable;\n }\n\n if (accessibilityOrientation != null) {\n domProps['aria-orientation'] = accessibilityOrientation;\n }\n\n if (accessibilityOwns != null) {\n domProps['aria-owns'] = accessibilityOwns;\n }\n\n if (accessibilityPlaceholder != null) {\n domProps['aria-placeholder'] = accessibilityPlaceholder;\n }\n\n if (accessibilityPosInSet != null) {\n domProps['aria-posinset'] = accessibilityPosInSet;\n }\n\n if (accessibilityPressed != null) {\n domProps['aria-pressed'] = accessibilityPressed;\n }\n\n if (accessibilityReadOnly != null) {\n domProps['aria-readonly'] = accessibilityReadOnly; // Enhance with native semantics\n\n if (elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.readOnly = true;\n }\n }\n\n if (accessibilityRequired != null) {\n domProps['aria-required'] = accessibilityRequired; // Enhance with native semantics\n\n if (elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.required = true;\n }\n }\n\n if (role != null) {\n // 'presentation' synonym has wider browser support\n domProps['role'] = role === 'none' ? 'presentation' : role;\n }\n\n if (accessibilityRoleDescription != null) {\n domProps['aria-roledescription'] = accessibilityRoleDescription;\n }\n\n if (accessibilityRowCount != null) {\n domProps['aria-rowcount'] = accessibilityRowCount;\n }\n\n if (accessibilityRowIndex != null) {\n domProps['aria-rowindex'] = accessibilityRowIndex;\n }\n\n if (accessibilityRowSpan != null) {\n domProps['aria-rowspan'] = accessibilityRowSpan;\n }\n\n if (accessibilitySelected != null) {\n domProps['aria-selected'] = accessibilitySelected;\n }\n\n if (accessibilitySetSize != null) {\n domProps['aria-setsize'] = accessibilitySetSize;\n }\n\n if (accessibilitySort != null) {\n domProps['aria-sort'] = accessibilitySort;\n }\n\n if (accessibilityValueMax != null) {\n domProps['aria-valuemax'] = accessibilityValueMax;\n }\n\n if (accessibilityValueMin != null) {\n domProps['aria-valuemin'] = accessibilityValueMin;\n }\n\n if (accessibilityValueNow != null) {\n domProps['aria-valuenow'] = accessibilityValueNow;\n }\n\n if (accessibilityValueText != null) {\n domProps['aria-valuetext'] = accessibilityValueText;\n } // \"dataSet\" replaced with \"data-*\"\n\n\n if (dataSet != null) {\n for (var dataProp in dataSet) {\n if (hasOwnProperty.call(dataSet, dataProp)) {\n var dataName = hyphenateString(dataProp);\n var dataValue = dataSet[dataProp];\n\n if (dataValue != null) {\n domProps[\"data-\" + dataName] = dataValue;\n }\n }\n }\n } // FOCUS\n // \"focusable\" indicates that an element may be a keyboard tab-stop.\n\n\n var _focusable = focusable != null ? focusable : accessible;\n\n if ( // These native elements are focusable by default\n elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n if (_focusable === false || accessibilityDisabled === true) {\n domProps.tabIndex = '-1';\n }\n } else if ( // These roles are made focusable by default\n role === 'button' || role === 'checkbox' || role === 'link' || role === 'menuitem' || role === 'radio' || role === 'textbox' || role === 'switch') {\n if (_focusable !== false) {\n domProps.tabIndex = '0';\n }\n } else {\n // Everything else must explicitly set the prop\n if (_focusable === true) {\n domProps.tabIndex = '0';\n }\n } // STYLE\n\n\n var reactNativeStyle = StyleSheet.compose(pointerEvents && pointerEventsStyles[pointerEvents], providedStyle); // Additional style resets for interactive elements\n\n var needsCursor = (role === 'button' || role === 'link') && !disabled;\n var needsReset = elementType === 'a' || elementType === 'button' || elementType === 'li' || elementType === 'ul' || role === 'heading'; // Classic CSS styles\n\n var finalClassList = [needsReset && classes.reset, needsCursor && classes.cursor, classList]; // Resolve styles\n\n var _styleResolver$resolv = styleResolver.resolve(reactNativeStyle, finalClassList),\n className = _styleResolver$resolv.className,\n style = _styleResolver$resolv.style;\n\n if (className != null && className !== '') {\n domProps.className = className;\n }\n\n if (style) {\n domProps.style = style;\n } // OTHER\n // Native element ID\n\n\n if (nativeID != null) {\n domProps.id = nativeID;\n } // Automated test IDs\n\n\n if (testID != null) {\n domProps['data-testid'] = testID;\n } // Keyboard accessibility\n // Button-like roles should trigger 'onClick' if SPACE key is pressed.\n // Button-like roles should not trigger 'onClick' if they are disabled.\n\n\n if (isNativeInteractiveElement || role === 'button' || role === 'menuitem' || _focusable === true && !disabled) {\n var onClick = domProps.onClick;\n\n if (onClick != null) {\n if (disabled) {\n // Prevent click propagating if the element is disabled. See #1757\n domProps.onClick = function (e) {\n e.stopPropagation();\n };\n } else if (!isNativeInteractiveElement) {\n // For native elements that are focusable but don't dispatch 'click' events\n // for keyboards.\n var onKeyDown = domProps.onKeyDown;\n\n domProps.onKeyDown = function (e) {\n var key = e.key,\n repeat = e.repeat;\n var isSpacebarKey = key === ' ' || key === 'Spacebar';\n var isButtonRole = role === 'button' || role === 'menuitem';\n\n if (onKeyDown != null) {\n onKeyDown(e);\n }\n\n if (!repeat && key === 'Enter') {\n onClick(e);\n } else if (isSpacebarKey && isButtonRole) {\n if (!repeat) {\n onClick(e);\n } // Prevent spacebar scrolling the window\n\n\n e.preventDefault();\n }\n };\n }\n }\n }\n\n return domProps;\n};\n\nexport default createDOMProps;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport AccessibilityUtil from '../../modules/AccessibilityUtil';\nimport createDOMProps from '../../modules/createDOMProps';\nimport React from 'react';\n\nvar createElement = function createElement(component, props) {\n // Use equivalent platform elements where possible.\n var accessibilityComponent;\n\n if (component && component.constructor === String) {\n accessibilityComponent = AccessibilityUtil.propsToAccessibilityComponent(props);\n }\n\n var Component = accessibilityComponent || component;\n var domProps = createDOMProps(Component, props);\n\n for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n children[_key - 2] = arguments[_key];\n }\n\n return (\n /*#__PURE__*/\n React.createElement.apply(React, [Component, domProps].concat(children))\n );\n};\n\nexport default createElement;","/**\n * Copyright (c) Nicolas Gallagher.\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 * useLayoutEffect throws an error on the server. On the few occasions where is\n * problematic, use this hook.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport { useEffect, useLayoutEffect } from 'react';\nvar useLayoutEffectImpl = canUseDOM ? useLayoutEffect : useEffect;\nexport default useLayoutEffectImpl;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nvar getBoundingClientRect = function getBoundingClientRect(node) {\n if (node != null) {\n var isElement = node.nodeType === 1;\n /* Node.ELEMENT_NODE */\n\n if (isElement && typeof node.getBoundingClientRect === 'function') {\n return node.getBoundingClientRect();\n }\n }\n};\n\nexport default getBoundingClientRect;","/* eslint-disable */\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * From React 16.0.0\n * \n */\nimport isUnitlessNumber from '../unitlessNumbers';\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\n\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n // Note that we've removed escapeTextForBrowser() calls here since the\n // whole string will be escaped when the attribute is injected into\n // the markup. If you provide unsafe user data here they can inject\n // arbitrary CSS which may be problematic (I couldn't repro this):\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n // This is not an XSS hole but instead a potential CSS injection issue\n // which has lead to a greater discussion about how we're going to\n // trust URLs moving forward. See #2115901\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n\n if (isEmpty) {\n return '';\n }\n\n if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return ('' + value).trim();\n}\n\nexport default dangerousStyleValue;","/* eslint-disable */\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * From React 16.3.0\n * \n */\nimport dangerousStyleValue from './dangerousStyleValue';\n/**\n * Sets the value for multiple styles on a node. If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n */\n\nfunction setValueForStyles(node, styles) {\n var style = node.style;\n\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n\n var isCustomProperty = styleName.indexOf('--') === 0;\n var styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty);\n\n if (styleName === 'float') {\n styleName = 'cssFloat';\n }\n\n if (isCustomProperty) {\n style.setProperty(styleName, styleValue);\n } else {\n style[styleName] = styleValue;\n }\n }\n}\n\nexport default setValueForStyles;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport getBoundingClientRect from '../../modules/getBoundingClientRect';\nimport setValueForStyles from '../../modules/setValueForStyles';\n\nvar getRect = function getRect(node) {\n // Unlike the DOM's getBoundingClientRect, React Native layout measurements\n // for \"height\" and \"width\" ignore scale transforms.\n // https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model/Determining_the_dimensions_of_elements\n var _getBoundingClientRec = getBoundingClientRect(node),\n x = _getBoundingClientRec.x,\n y = _getBoundingClientRec.y,\n top = _getBoundingClientRec.top,\n left = _getBoundingClientRec.left;\n\n var width = node.offsetWidth;\n var height = node.offsetHeight;\n return {\n x: x,\n y: y,\n width: width,\n height: height,\n top: top,\n left: left\n };\n};\n\nvar _measureLayout = function measureLayout(node, relativeToNativeNode, callback) {\n var relativeNode = relativeToNativeNode || node && node.parentNode;\n\n if (node && relativeNode) {\n setTimeout(function () {\n var relativeRect = getBoundingClientRect(relativeNode);\n\n var _getRect = getRect(node),\n height = _getRect.height,\n left = _getRect.left,\n top = _getRect.top,\n width = _getRect.width;\n\n var x = left - relativeRect.left;\n var y = top - relativeRect.top;\n callback(x, y, width, height, left, top);\n }, 0);\n }\n};\n\nvar focusableElements = {\n A: true,\n INPUT: true,\n SELECT: true,\n TEXTAREA: true\n};\nvar UIManager = {\n blur: function blur(node) {\n try {\n node.blur();\n } catch (err) {}\n },\n focus: function focus(node) {\n try {\n var name = node.nodeName; // A tabIndex of -1 allows element to be programmatically focused but\n // prevents keyboard focus, so we don't want to set the value on elements\n // that support keyboard focus by default.\n\n if (node.getAttribute('tabIndex') == null && focusableElements[name] == null) {\n node.setAttribute('tabIndex', '-1');\n }\n\n node.focus();\n } catch (err) {}\n },\n measure: function measure(node, callback) {\n _measureLayout(node, null, callback);\n },\n measureInWindow: function measureInWindow(node, callback) {\n if (node) {\n setTimeout(function () {\n var _getRect2 = getRect(node),\n height = _getRect2.height,\n left = _getRect2.left,\n top = _getRect2.top,\n width = _getRect2.width;\n\n callback(left, top, width, height);\n }, 0);\n }\n },\n measureLayout: function measureLayout(node, relativeToNativeNode, onFail, onSuccess) {\n _measureLayout(node, relativeToNativeNode, onSuccess);\n },\n updateView: function updateView(node, props) {\n for (var prop in props) {\n if (!Object.prototype.hasOwnProperty.call(props, prop)) {\n continue;\n }\n\n var value = props[prop];\n\n switch (prop) {\n case 'style':\n {\n setValueForStyles(node, value);\n break;\n }\n\n case 'class':\n case 'className':\n {\n node.setAttribute('class', value);\n break;\n }\n\n case 'text':\n case 'value':\n // native platforms use `text` prop to replace text input value\n node.value = value;\n break;\n\n default:\n node.setAttribute(prop, value);\n }\n }\n },\n configureNextLayoutAnimation: function configureNextLayoutAnimation(config, onAnimationDidEnd) {\n onAnimationDidEnd();\n },\n // mocks\n setLayoutAnimationEnabledExperimental: function setLayoutAnimationEnabledExperimental() {}\n};\nexport default UIManager;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport useLayoutEffect from '../useLayoutEffect';\nimport UIManager from '../../exports/UIManager';\nvar DOM_LAYOUT_HANDLER_NAME = '__reactLayoutHandler';\nvar didWarn = !canUseDOM;\nvar resizeObserver = null;\n\nfunction getResizeObserver() {\n if (canUseDOM && typeof window.ResizeObserver !== 'undefined') {\n if (resizeObserver == null) {\n resizeObserver = new window.ResizeObserver(function (entries) {\n entries.forEach(function (entry) {\n var node = entry.target;\n var onLayout = node[DOM_LAYOUT_HANDLER_NAME];\n\n if (typeof onLayout === 'function') {\n // We still need to measure the view because browsers don't yet provide\n // border-box dimensions in the entry\n UIManager.measure(node, function (x, y, width, height, left, top) {\n var event = {\n // $FlowFixMe\n nativeEvent: {\n layout: {\n x: x,\n y: y,\n width: width,\n height: height,\n left: left,\n top: top\n }\n },\n timeStamp: Date.now()\n };\n Object.defineProperty(event.nativeEvent, 'target', {\n enumerable: true,\n get: function get() {\n return entry.target;\n }\n });\n onLayout(event);\n });\n }\n });\n });\n }\n } else if (!didWarn) {\n if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {\n console.warn('onLayout relies on ResizeObserver which is not supported by your browser. ' + 'Please include a polyfill, e.g., https://github.com/que-etc/resize-observer-polyfill.');\n didWarn = true;\n }\n }\n\n return resizeObserver;\n}\n\nexport default function useElementLayout(ref, onLayout) {\n var observer = getResizeObserver();\n useLayoutEffect(function () {\n var node = ref.current;\n\n if (node != null) {\n node[DOM_LAYOUT_HANDLER_NAME] = onLayout;\n }\n }, [ref, onLayout]); // Observing is done in a separate effect to avoid this effect running\n // when 'onLayout' changes.\n\n useLayoutEffect(function () {\n var node = ref.current;\n\n if (node != null && observer != null) {\n if (typeof node[DOM_LAYOUT_HANDLER_NAME] === 'function') {\n observer.observe(node);\n } else {\n observer.unobserve(node);\n }\n }\n\n return function () {\n if (node != null && observer != null) {\n observer.unobserve(node);\n }\n };\n }, [ref, observer]);\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 */\nimport * as React from 'react';\nvar UNINITIALIZED = typeof Symbol === 'function' && typeof Symbol() === 'symbol' ? Symbol() : Object.freeze({});\nexport default function useStable(getInitialValue) {\n var ref = React.useRef(UNINITIALIZED);\n\n if (ref.current === UNINITIALIZED) {\n ref.current = getInitialValue();\n } // $FlowFixMe (#64650789) Trouble refining types where `Symbol` is concerned.\n\n\n return ref.current;\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\n/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport UIManager from '../../exports/UIManager';\nimport createDOMProps from '../createDOMProps';\nimport useStable from '../useStable';\nimport { useRef } from 'react';\nvar emptyObject = {};\n\nfunction setNativeProps(node, nativeProps, classList, pointerEvents, style, previousStyleRef) {\n if (node != null && nativeProps) {\n var previousStyle = previousStyleRef ? previousStyleRef.current : {};\n var domProps = createDOMProps(null, _objectSpread(_objectSpread({\n pointerEvents: pointerEvents\n }, nativeProps), {}, {\n classList: [classList, nativeProps.className],\n style: [style, previousStyle, nativeProps.style]\n }));\n var nextDomStyle = domProps.style;\n\n if (previousStyleRef.current != null) {\n if (domProps.style == null) {\n domProps.style = {};\n }\n\n for (var styleName in previousStyleRef.current) {\n if (domProps.style[styleName] == null) {\n domProps.style[styleName] = '';\n }\n }\n }\n\n previousStyleRef.current = nextDomStyle;\n UIManager.updateView(node, domProps);\n }\n}\n/**\n * Adds non-standard methods to the hode element. This is temporarily until an\n * API like `ReactNative.measure(hostRef, callback)` is added to React Native.\n */\n\n\nexport default function usePlatformMethods(_ref) {\n var classList = _ref.classList,\n pointerEvents = _ref.pointerEvents,\n style = _ref.style;\n var previousStyleRef = useRef(null);\n var setNativePropsArgsRef = useRef(null);\n setNativePropsArgsRef.current = {\n classList: classList,\n pointerEvents: pointerEvents,\n style: style\n }; // Avoid creating a new ref on every render. The props only need to be\n // available to 'setNativeProps' when it is called.\n\n var ref = useStable(function () {\n return function (hostNode) {\n if (hostNode != null) {\n hostNode.measure = function (callback) {\n return UIManager.measure(hostNode, callback);\n };\n\n hostNode.measureLayout = function (relativeToNode, success, failure) {\n return UIManager.measureLayout(hostNode, relativeToNode, failure, success);\n };\n\n hostNode.measureInWindow = function (callback) {\n return UIManager.measureInWindow(hostNode, callback);\n };\n\n hostNode.setNativeProps = function (nativeProps) {\n var _ref2 = setNativePropsArgsRef.current || emptyObject,\n classList = _ref2.classList,\n style = _ref2.style,\n pointerEvents = _ref2.pointerEvents;\n\n setNativeProps(hostNode, nativeProps, classList, pointerEvents, style, previousStyleRef);\n };\n }\n };\n });\n return ref;\n}","/**\n * Copyright (c) Nicolas Gallagher\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 */\nexport var BLUR = 'blur';\nexport var CONTEXT_MENU = 'contextmenu';\nexport var FOCUS_OUT = 'focusout';\nexport var MOUSE_DOWN = 'mousedown';\nexport var MOUSE_MOVE = 'mousemove';\nexport var MOUSE_UP = 'mouseup';\nexport var MOUSE_CANCEL = 'dragstart';\nexport var TOUCH_START = 'touchstart';\nexport var TOUCH_MOVE = 'touchmove';\nexport var TOUCH_END = 'touchend';\nexport var TOUCH_CANCEL = 'touchcancel';\nexport var SCROLL = 'scroll';\nexport var SELECT = 'select';\nexport var SELECTION_CHANGE = 'selectionchange';\nexport function isStartish(eventType) {\n return eventType === TOUCH_START || eventType === MOUSE_DOWN;\n}\nexport function isMoveish(eventType) {\n return eventType === TOUCH_MOVE || eventType === MOUSE_MOVE;\n}\nexport function isEndish(eventType) {\n return eventType === TOUCH_END || eventType === MOUSE_UP || isCancelish(eventType);\n}\nexport function isCancelish(eventType) {\n return eventType === TOUCH_CANCEL || eventType === MOUSE_CANCEL;\n}\nexport function isScroll(eventType) {\n return eventType === SCROLL;\n}\nexport function isSelectionChange(eventType) {\n return eventType === SELECT || eventType === SELECTION_CHANGE;\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 */\nimport { isStartish, isMoveish, isEndish } from './ResponderEventTypes';\n\n/**\n * Tracks the position and time of each active touch by `touch.identifier`. We\n * should typically only see IDs in the range of 1-20 because IDs get recycled\n * when touches end and start again.\n */\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar MAX_TOUCH_BANK = 20;\nvar touchBank = [];\nvar touchHistory = {\n touchBank: touchBank,\n numberActiveTouches: 0,\n // If there is only one active touch, we remember its location. This prevents\n // us having to loop through all of the touches all the time in the most\n // common case.\n indexOfSingleActiveTouch: -1,\n mostRecentTimeStamp: 0\n};\n\nfunction timestampForTouch(touch) {\n // The legacy internal implementation provides \"timeStamp\", which has been\n // renamed to \"timestamp\".\n return touch.timeStamp || touch.timestamp;\n}\n/**\n * TODO: Instead of making gestures recompute filtered velocity, we could\n * include a built in velocity computation that can be reused globally.\n */\n\n\nfunction createTouchRecord(touch) {\n return {\n touchActive: true,\n startPageX: touch.pageX,\n startPageY: touch.pageY,\n startTimeStamp: timestampForTouch(touch),\n currentPageX: touch.pageX,\n currentPageY: touch.pageY,\n currentTimeStamp: timestampForTouch(touch),\n previousPageX: touch.pageX,\n previousPageY: touch.pageY,\n previousTimeStamp: timestampForTouch(touch)\n };\n}\n\nfunction resetTouchRecord(touchRecord, touch) {\n touchRecord.touchActive = true;\n touchRecord.startPageX = touch.pageX;\n touchRecord.startPageY = touch.pageY;\n touchRecord.startTimeStamp = timestampForTouch(touch);\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchRecord.previousPageX = touch.pageX;\n touchRecord.previousPageY = touch.pageY;\n touchRecord.previousTimeStamp = timestampForTouch(touch);\n}\n\nfunction getTouchIdentifier(_ref) {\n var identifier = _ref.identifier;\n\n if (identifier == null) {\n console.error('Touch object is missing identifier.');\n }\n\n if (__DEV__) {\n if (identifier > MAX_TOUCH_BANK) {\n console.error('Touch identifier %s is greater than maximum supported %s which causes ' + 'performance issues backfilling array locations for all of the indices.', identifier, MAX_TOUCH_BANK);\n }\n }\n\n return identifier;\n}\n\nfunction recordTouchStart(touch) {\n var identifier = getTouchIdentifier(touch);\n var touchRecord = touchBank[identifier];\n\n if (touchRecord) {\n resetTouchRecord(touchRecord, touch);\n } else {\n touchBank[identifier] = createTouchRecord(touch);\n }\n\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n}\n\nfunction recordTouchMove(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n\n if (touchRecord) {\n touchRecord.touchActive = true;\n touchRecord.previousPageX = touchRecord.currentPageX;\n touchRecord.previousPageY = touchRecord.currentPageY;\n touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n } else {\n console.warn('Cannot record touch move without a touch start.\\n', \"Touch Move: \" + printTouch(touch) + \"\\n\", \"Touch Bank: \" + printTouchBank());\n }\n}\n\nfunction recordTouchEnd(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n\n if (touchRecord) {\n touchRecord.touchActive = false;\n touchRecord.previousPageX = touchRecord.currentPageX;\n touchRecord.previousPageY = touchRecord.currentPageY;\n touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n } else {\n console.warn('Cannot record touch end without a touch start.\\n', \"Touch End: \" + printTouch(touch) + \"\\n\", \"Touch Bank: \" + printTouchBank());\n }\n}\n\nfunction printTouch(touch) {\n return JSON.stringify({\n identifier: touch.identifier,\n pageX: touch.pageX,\n pageY: touch.pageY,\n timestamp: timestampForTouch(touch)\n });\n}\n\nfunction printTouchBank() {\n var printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));\n\n if (touchBank.length > MAX_TOUCH_BANK) {\n printed += ' (original size: ' + touchBank.length + ')';\n }\n\n return printed;\n}\n\nvar ResponderTouchHistoryStore = {\n recordTouchTrack: function recordTouchTrack(topLevelType, nativeEvent) {\n if (isMoveish(topLevelType)) {\n nativeEvent.changedTouches.forEach(recordTouchMove);\n } else if (isStartish(topLevelType)) {\n nativeEvent.changedTouches.forEach(recordTouchStart);\n touchHistory.numberActiveTouches = nativeEvent.touches.length;\n\n if (touchHistory.numberActiveTouches === 1) {\n touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier;\n }\n } else if (isEndish(topLevelType)) {\n nativeEvent.changedTouches.forEach(recordTouchEnd);\n touchHistory.numberActiveTouches = nativeEvent.touches.length;\n\n if (touchHistory.numberActiveTouches === 1) {\n for (var i = 0; i < touchBank.length; i++) {\n var touchTrackToCheck = touchBank[i];\n\n if (touchTrackToCheck != null && touchTrackToCheck.touchActive) {\n touchHistory.indexOfSingleActiveTouch = i;\n break;\n }\n }\n\n if (__DEV__) {\n var activeRecord = touchBank[touchHistory.indexOfSingleActiveTouch];\n\n if (!(activeRecord != null && activeRecord.touchActive)) {\n console.error('Cannot find single active touch.');\n }\n }\n }\n }\n },\n touchHistory: touchHistory\n};\nexport default ResponderTouchHistoryStore;","/**\n * Copyright (c) Nicolas Gallagher\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 */\nimport getBoundingClientRect from '../../modules/getBoundingClientRect';\nimport ResponderTouchHistoryStore from './ResponderTouchHistoryStore';\n\nvar emptyFunction = function emptyFunction() {};\n\nvar emptyObject = {};\nvar emptyArray = [];\n/**\n * Safari produces very large identifiers that would cause the `touchBank` array\n * length to be so large as to crash the browser, if not normalized like this.\n * In the future the `touchBank` should use an object/map instead.\n */\n\nfunction normalizeIdentifier(identifier) {\n return identifier > 20 ? identifier % 20 : identifier;\n}\n/**\n * Converts a native DOM event to a ResponderEvent.\n * Mouse events are transformed into fake touch events.\n */\n\n\nexport default function createResponderEvent(domEvent) {\n var rect;\n var propagationWasStopped = false;\n var changedTouches;\n var touches;\n var domEventChangedTouches = domEvent.changedTouches;\n var domEventType = domEvent.type;\n var metaKey = domEvent.metaKey === true;\n var shiftKey = domEvent.shiftKey === true;\n var force = domEventChangedTouches && domEventChangedTouches[0].force || 0;\n var identifier = normalizeIdentifier(domEventChangedTouches && domEventChangedTouches[0].identifier || 0);\n var clientX = domEventChangedTouches && domEventChangedTouches[0].clientX || domEvent.clientX;\n var clientY = domEventChangedTouches && domEventChangedTouches[0].clientY || domEvent.clientY;\n var pageX = domEventChangedTouches && domEventChangedTouches[0].pageX || domEvent.pageX;\n var pageY = domEventChangedTouches && domEventChangedTouches[0].pageY || domEvent.pageY;\n var preventDefault = typeof domEvent.preventDefault === 'function' ? domEvent.preventDefault.bind(domEvent) : emptyFunction;\n var timestamp = domEvent.timeStamp;\n\n function normalizeTouches(touches) {\n return Array.prototype.slice.call(touches).map(function (touch) {\n return {\n force: touch.force,\n identifier: normalizeIdentifier(touch.identifier),\n\n get locationX() {\n return locationX(touch.clientX);\n },\n\n get locationY() {\n return locationY(touch.clientY);\n },\n\n pageX: touch.pageX,\n pageY: touch.pageY,\n target: touch.target,\n timestamp: timestamp\n };\n });\n }\n\n if (domEventChangedTouches != null) {\n changedTouches = normalizeTouches(domEventChangedTouches);\n touches = normalizeTouches(domEvent.touches);\n } else {\n var emulatedTouches = [{\n force: force,\n identifier: identifier,\n\n get locationX() {\n return locationX(clientX);\n },\n\n get locationY() {\n return locationY(clientY);\n },\n\n pageX: pageX,\n pageY: pageY,\n target: domEvent.target,\n timestamp: timestamp\n }];\n changedTouches = emulatedTouches;\n touches = domEventType === 'mouseup' || domEventType === 'dragstart' ? emptyArray : emulatedTouches;\n }\n\n var responderEvent = {\n bubbles: true,\n cancelable: true,\n // `currentTarget` is set before dispatch\n currentTarget: null,\n defaultPrevented: domEvent.defaultPrevented,\n dispatchConfig: emptyObject,\n eventPhase: domEvent.eventPhase,\n isDefaultPrevented: function isDefaultPrevented() {\n return domEvent.defaultPrevented;\n },\n isPropagationStopped: function isPropagationStopped() {\n return propagationWasStopped;\n },\n isTrusted: domEvent.isTrusted,\n nativeEvent: {\n altKey: false,\n ctrlKey: false,\n metaKey: metaKey,\n shiftKey: shiftKey,\n changedTouches: changedTouches,\n force: force,\n identifier: identifier,\n\n get locationX() {\n return locationX(clientX);\n },\n\n get locationY() {\n return locationY(clientY);\n },\n\n pageX: pageX,\n pageY: pageY,\n target: domEvent.target,\n timestamp: timestamp,\n touches: touches,\n type: domEventType\n },\n persist: emptyFunction,\n preventDefault: preventDefault,\n stopPropagation: function stopPropagation() {\n propagationWasStopped = true;\n },\n target: domEvent.target,\n timeStamp: timestamp,\n touchHistory: ResponderTouchHistoryStore.touchHistory\n }; // Using getters and functions serves two purposes:\n // 1) The value of `currentTarget` is not initially available.\n // 2) Measuring the clientRect may cause layout jank and should only be done on-demand.\n\n function locationX(x) {\n rect = rect || getBoundingClientRect(responderEvent.currentTarget);\n\n if (rect) {\n return x - rect.left;\n }\n }\n\n function locationY(y) {\n rect = rect || getBoundingClientRect(responderEvent.currentTarget);\n\n if (rect) {\n return y - rect.top;\n }\n }\n\n return responderEvent;\n}","/**\n * Copyright (c) Nicolas Gallagher\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 */\nimport isSelectionValid from '../../modules/isSelectionValid';\nvar keyName = '__reactResponderId';\n\nfunction getEventPath(domEvent) {\n // The 'selectionchange' event always has the 'document' as the target.\n // Use the anchor node as the initial target to reconstruct a path.\n // (We actually only need the first \"responder\" node in practice.)\n if (domEvent.type === 'selectionchange') {\n var target = window.getSelection().anchorNode;\n return composedPathFallback(target);\n } else {\n var path = domEvent.composedPath != null ? domEvent.composedPath() : composedPathFallback(domEvent.target);\n return path;\n }\n}\n\nfunction composedPathFallback(target) {\n var path = [];\n\n while (target != null && target !== document.body) {\n path.push(target);\n target = target.parentNode;\n }\n\n return path;\n}\n/**\n * Retrieve the responderId from a host node\n */\n\n\nfunction getResponderId(node) {\n if (node != null) {\n return node[keyName];\n }\n\n return null;\n}\n/**\n * Store the responderId on a host node\n */\n\n\nexport function setResponderId(node, id) {\n if (node != null) {\n node[keyName] = id;\n }\n}\n/**\n * Filter the event path to contain only the nodes attached to the responder system\n */\n\nexport function getResponderPaths(domEvent) {\n var idPath = [];\n var nodePath = [];\n var eventPath = getEventPath(domEvent);\n\n for (var i = 0; i < eventPath.length; i++) {\n var node = eventPath[i];\n var id = getResponderId(node);\n\n if (id != null) {\n idPath.push(id);\n nodePath.push(node);\n }\n }\n\n return {\n idPath: idPath,\n nodePath: nodePath\n };\n}\n/**\n * Walk the paths and find the first common ancestor\n */\n\nexport function getLowestCommonAncestor(pathA, pathB) {\n var pathALength = pathA.length;\n var pathBLength = pathB.length;\n\n if ( // If either path is empty\n pathALength === 0 || pathBLength === 0 || // If the last elements aren't the same there can't be a common ancestor\n // that is connected to the responder system\n pathA[pathALength - 1] !== pathB[pathBLength - 1]) {\n return null;\n }\n\n var itemA = pathA[0];\n var indexA = 0;\n var itemB = pathB[0];\n var indexB = 0; // If A is deeper, skip indices that can't match.\n\n if (pathALength - pathBLength > 0) {\n indexA = pathALength - pathBLength;\n itemA = pathA[indexA];\n pathALength = pathBLength;\n } // If B is deeper, skip indices that can't match\n\n\n if (pathBLength - pathALength > 0) {\n indexB = pathBLength - pathALength;\n itemB = pathB[indexB];\n pathBLength = pathALength;\n } // Walk in lockstep until a match is found\n\n\n var depth = pathALength;\n\n while (depth--) {\n if (itemA === itemB) {\n return itemA;\n }\n\n itemA = pathA[indexA++];\n itemB = pathB[indexB++];\n }\n\n return null;\n}\n/**\n * Determine whether any of the active touches are within the current responder.\n * This cannot rely on W3C `targetTouches`, as neither IE11 nor Safari implement it.\n */\n\nexport function hasTargetTouches(target, touches) {\n if (!touches || touches.length === 0) {\n return false;\n }\n\n for (var i = 0; i < touches.length; i++) {\n var node = touches[i].target;\n\n if (node != null) {\n if (target.contains(node)) {\n return true;\n }\n }\n }\n\n return false;\n}\n/**\n * Ignore 'selectionchange' events that don't correspond with a person's intent to\n * select text.\n */\n\nexport function hasValidSelection(domEvent) {\n if (domEvent.type === 'selectionchange') {\n return isSelectionValid();\n }\n\n return domEvent.type === 'select';\n}\n/**\n * Events are only valid if the primary button was used without specific modifier keys.\n */\n\nexport function isPrimaryPointerDown(domEvent) {\n var altKey = domEvent.altKey,\n button = domEvent.button,\n buttons = domEvent.buttons,\n ctrlKey = domEvent.ctrlKey,\n type = domEvent.type;\n var isTouch = type === 'touchstart' || type === 'touchmove';\n var isPrimaryMouseDown = type === 'mousedown' && (button === 0 || buttons === 1);\n var isPrimaryMouseMove = type === 'mousemove' && buttons === 1;\n var noModifiers = altKey === false && ctrlKey === false;\n\n if (isTouch || isPrimaryMouseDown && noModifiers || isPrimaryMouseMove && noModifiers) {\n return true;\n }\n\n return false;\n}","/**\n * Copyright (c) Nicolas Gallagher\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 */\nexport default function isSelectionValid() {\n var selection = window.getSelection();\n var string = selection.toString();\n var anchorNode = selection.anchorNode;\n var focusNode = selection.focusNode;\n var isTextNode = anchorNode && anchorNode.nodeType === window.Node.TEXT_NODE || focusNode && focusNode.nodeType === window.Node.TEXT_NODE;\n return string.length >= 1 && string !== '\\n' && isTextNode;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n/**\n * RESPONDER EVENT SYSTEM\n *\n * A single, global \"interaction lock\" on views. For a view to be the \"responder\" means\n * that pointer interactions are exclusive to that view and none other. The \"interaction\n * lock\" can be transferred (only) to ancestors of the current \"responder\" as long as\n * pointers continue to be active.\n *\n * Responder being granted:\n *\n * A view can become the \"responder\" after the following events:\n * * \"pointerdown\" (implemented using \"touchstart\", \"mousedown\")\n * * \"pointermove\" (implemented using \"touchmove\", \"mousemove\")\n * * \"scroll\" (while a pointer is down)\n * * \"selectionchange\" (while a pointer is down)\n *\n * If nothing is already the \"responder\", the event propagates to (capture) and from\n * (bubble) the event target until a view returns `true` for\n * `on*ShouldSetResponder(Capture)`.\n *\n * If something is already the responder, the event propagates to (capture) and from\n * (bubble) the lowest common ancestor of the event target and the current \"responder\".\n * Then negotiation happens between the current \"responder\" and a view that wants to\n * become the \"responder\": see the timing diagram below.\n *\n * (NOTE: Scrolled views either automatically become the \"responder\" or release the\n * \"interaction lock\". A native scroll view that isn't built on top of the responder\n * system must result in the current \"responder\" being notified that it no longer has\n * the \"interaction lock\" - the native system has taken over.\n *\n * Responder being released:\n *\n * As soon as there are no more active pointers that *started* inside descendants\n * of the *current* \"responder\", an `onResponderRelease` event is dispatched to the\n * current \"responder\", and the responder lock is released.\n *\n * Typical sequence of events:\n * * startShouldSetResponder\n * * responderGrant/Reject\n * * responderStart\n * * responderMove\n * * responderEnd\n * * responderRelease\n */\n\n/* Negotiation Performed\n +-----------------------+\n / \\\nProcess low level events to + Current Responder + wantsResponderID\ndetermine who to perform negot-| (if any exists at all) |\niation/transition | Otherwise just pass through|\n-------------------------------+----------------------------+------------------+\nBubble to find first ID | |\nto return true:wantsResponderID| |\n | |\n +--------------+ | |\n | onTouchStart | | |\n +------+-------+ none | |\n | return| |\n+-----------v-------------+true| +------------------------+ |\n|onStartShouldSetResponder|----->| onResponderStart (cur) |<-----------+\n+-----------+-------------+ | +------------------------+ | |\n | | | +--------+-------+\n | returned true for| false:REJECT +-------->|onResponderReject\n | wantsResponderID | | | +----------------+\n | (now attempt | +------------------+-----+ |\n | handoff) | | onResponder | |\n +------------------->| TerminationRequest | |\n | +------------------+-----+ |\n | | | +----------------+\n | true:GRANT +-------->|onResponderGrant|\n | | +--------+-------+\n | +------------------------+ | |\n | | onResponderTerminate |<-----------+\n | +------------------+-----+ |\n | | | +----------------+\n | +-------->|onResponderStart|\n | | +----------------+\nBubble to find first ID | |\nto return true:wantsResponderID| |\n | |\n +-------------+ | |\n | onTouchMove | | |\n +------+------+ none | |\n | return| |\n+-----------v-------------+true| +------------------------+ |\n|onMoveShouldSetResponder |----->| onResponderMove (cur) |<-----------+\n+-----------+-------------+ | +------------------------+ | |\n | | | +--------+-------+\n | returned true for| false:REJECT +-------->|onResponderReject\n | wantsResponderID | | | +----------------+\n | (now attempt | +------------------+-----+ |\n | handoff) | | onResponder | |\n +------------------->| TerminationRequest| |\n | +------------------+-----+ |\n | | | +----------------+\n | true:GRANT +-------->|onResponderGrant|\n | | +--------+-------+\n | +------------------------+ | |\n | | onResponderTerminate |<-----------+\n | +------------------+-----+ |\n | | | +----------------+\n | +-------->|onResponderMove |\n | | +----------------+\n | |\n | |\n Some active touch started| |\n inside current responder | +------------------------+ |\n +------------------------->| onResponderEnd | |\n | | +------------------------+ |\n +---+---------+ | |\n | onTouchEnd | | |\n +---+---------+ | |\n | | +------------------------+ |\n +------------------------->| onResponderEnd | |\n No active touches started| +-----------+------------+ |\n inside current responder | | |\n | v |\n | +------------------------+ |\n | | onResponderRelease | |\n | +------------------------+ |\n | |\n + + */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport createResponderEvent from './createResponderEvent';\nimport { isCancelish, isEndish, isMoveish, isScroll, isSelectionChange, isStartish } from './ResponderEventTypes';\nimport { getLowestCommonAncestor, getResponderPaths, hasTargetTouches, hasValidSelection, isPrimaryPointerDown, setResponderId } from './utils';\nimport ResponderTouchHistoryStore from './ResponderTouchHistoryStore';\n/* ------------ TYPES ------------ */\n\nvar emptyObject = {};\n/* ------------ IMPLEMENTATION ------------ */\n\nvar startRegistration = ['onStartShouldSetResponderCapture', 'onStartShouldSetResponder', {\n bubbles: true\n}];\nvar moveRegistration = ['onMoveShouldSetResponderCapture', 'onMoveShouldSetResponder', {\n bubbles: true\n}];\nvar scrollRegistration = ['onScrollShouldSetResponderCapture', 'onScrollShouldSetResponder', {\n bubbles: false\n}];\nvar shouldSetResponderEvents = {\n touchstart: startRegistration,\n mousedown: startRegistration,\n touchmove: moveRegistration,\n mousemove: moveRegistration,\n scroll: scrollRegistration\n};\nvar emptyResponder = {\n id: null,\n idPath: null,\n node: null\n};\nvar responderListenersMap = new Map();\nvar isEmulatingMouseEvents = false;\nvar trackedTouchCount = 0;\nvar currentResponder = {\n id: null,\n node: null,\n idPath: null\n};\n\nfunction changeCurrentResponder(responder) {\n currentResponder = responder;\n}\n\nfunction getResponderConfig(id) {\n var config = responderListenersMap.get(id);\n return config != null ? config : emptyObject;\n}\n/**\n * Process native events\n *\n * A single event listener is used to manage the responder system.\n * All pointers are tracked in the ResponderTouchHistoryStore. Native events\n * are interpreted in terms of the Responder System and checked to see if\n * the responder should be transferred. Each host node that is attached to\n * the Responder System has an ID, which is used to look up its associated\n * callbacks.\n */\n\n\nfunction eventListener(domEvent) {\n var eventType = domEvent.type;\n var eventTarget = domEvent.target;\n /**\n * Manage emulated events and early bailout.\n * Since PointerEvent is not used yet (lack of support in older Safari), it's\n * necessary to manually manage the mess of browser touch/mouse events.\n * And bailout early for termination events when there is no active responder.\n */\n // Flag when browser may produce emulated events\n\n if (eventType === 'touchstart') {\n isEmulatingMouseEvents = true;\n } // Remove flag when browser will not produce emulated events\n\n\n if (eventType === 'touchmove' || trackedTouchCount > 1) {\n isEmulatingMouseEvents = false;\n } // Ignore various events in particular circumstances\n\n\n if ( // Ignore browser emulated mouse events\n eventType === 'mousedown' && isEmulatingMouseEvents || eventType === 'mousemove' && isEmulatingMouseEvents || // Ignore mousemove if a mousedown didn't occur first\n eventType === 'mousemove' && trackedTouchCount < 1) {\n return;\n } // Remove flag after emulated events are finished\n\n\n if (isEmulatingMouseEvents && eventType === 'mouseup') {\n if (trackedTouchCount === 0) {\n isEmulatingMouseEvents = false;\n }\n\n return;\n }\n\n var isStartEvent = isStartish(eventType) && isPrimaryPointerDown(domEvent);\n var isMoveEvent = isMoveish(eventType);\n var isEndEvent = isEndish(eventType);\n var isScrollEvent = isScroll(eventType);\n var isSelectionChangeEvent = isSelectionChange(eventType);\n var responderEvent = createResponderEvent(domEvent);\n /**\n * Record the state of active pointers\n */\n\n if (isStartEvent || isMoveEvent || isEndEvent) {\n if (domEvent.touches) {\n trackedTouchCount = domEvent.touches.length;\n } else {\n if (isStartEvent) {\n trackedTouchCount = 1;\n } else if (isEndEvent) {\n trackedTouchCount = 0;\n }\n }\n\n ResponderTouchHistoryStore.recordTouchTrack(eventType, responderEvent.nativeEvent);\n }\n /**\n * Responder System logic\n */\n\n\n var eventPaths = getResponderPaths(domEvent);\n var wasNegotiated = false;\n var wantsResponder; // If an event occured that might change the current responder...\n\n if (isStartEvent || isMoveEvent || isScrollEvent && trackedTouchCount > 0) {\n // If there is already a responder, prune the event paths to the lowest common ancestor\n // of the existing responder and deepest target of the event.\n var currentResponderIdPath = currentResponder.idPath;\n var eventIdPath = eventPaths.idPath;\n\n if (currentResponderIdPath != null && eventIdPath != null) {\n var lowestCommonAncestor = getLowestCommonAncestor(currentResponderIdPath, eventIdPath);\n\n if (lowestCommonAncestor != null) {\n var indexOfLowestCommonAncestor = eventIdPath.indexOf(lowestCommonAncestor); // Skip the current responder so it doesn't receive unexpected \"shouldSet\" events.\n\n var index = indexOfLowestCommonAncestor + (lowestCommonAncestor === currentResponder.id ? 1 : 0);\n eventPaths = {\n idPath: eventIdPath.slice(index),\n nodePath: eventPaths.nodePath.slice(index)\n };\n } else {\n eventPaths = null;\n }\n }\n\n if (eventPaths != null) {\n // If a node wants to become the responder, attempt to transfer.\n wantsResponder = findWantsResponder(eventPaths, domEvent, responderEvent);\n\n if (wantsResponder != null) {\n // Sets responder if none exists, or negotates with existing responder.\n attemptTransfer(responderEvent, wantsResponder);\n wasNegotiated = true;\n }\n }\n } // If there is now a responder, invoke its callbacks for the lifecycle of the gesture.\n\n\n if (currentResponder.id != null && currentResponder.node != null) {\n var _currentResponder = currentResponder,\n id = _currentResponder.id,\n node = _currentResponder.node;\n\n var _getResponderConfig = getResponderConfig(id),\n onResponderStart = _getResponderConfig.onResponderStart,\n onResponderMove = _getResponderConfig.onResponderMove,\n onResponderEnd = _getResponderConfig.onResponderEnd,\n onResponderRelease = _getResponderConfig.onResponderRelease,\n onResponderTerminate = _getResponderConfig.onResponderTerminate,\n onResponderTerminationRequest = _getResponderConfig.onResponderTerminationRequest;\n\n responderEvent.bubbles = false;\n responderEvent.cancelable = false;\n responderEvent.currentTarget = node; // Start\n\n if (isStartEvent) {\n if (onResponderStart != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderStart';\n onResponderStart(responderEvent);\n }\n } // Move\n else if (isMoveEvent) {\n if (onResponderMove != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderMove';\n onResponderMove(responderEvent);\n }\n } else {\n var isTerminateEvent = isCancelish(eventType) || // native context menu\n eventType === 'contextmenu' || // window blur\n eventType === 'blur' && eventTarget === window || // responder (or ancestors) blur\n eventType === 'blur' && eventTarget.contains(node) && domEvent.relatedTarget !== node || // native scroll without using a pointer\n isScrollEvent && trackedTouchCount === 0 || // native scroll on node that is parent of the responder (allow siblings to scroll)\n isScrollEvent && eventTarget.contains(node) && eventTarget !== node || // native select/selectionchange on node\n isSelectionChangeEvent && hasValidSelection(domEvent);\n var isReleaseEvent = isEndEvent && !isTerminateEvent && !hasTargetTouches(node, domEvent.touches); // End\n\n if (isEndEvent) {\n if (onResponderEnd != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderEnd';\n onResponderEnd(responderEvent);\n }\n } // Release\n\n\n if (isReleaseEvent) {\n if (onResponderRelease != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderRelease';\n onResponderRelease(responderEvent);\n }\n\n changeCurrentResponder(emptyResponder);\n } // Terminate\n\n\n if (isTerminateEvent) {\n var shouldTerminate = true; // Responders can still avoid termination but only for these events.\n\n if (eventType === 'contextmenu' || eventType === 'scroll' || eventType === 'selectionchange') {\n // Only call this function is it wasn't already called during negotiation.\n if (wasNegotiated) {\n shouldTerminate = false;\n } else if (onResponderTerminationRequest != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminationRequest';\n\n if (onResponderTerminationRequest(responderEvent) === false) {\n shouldTerminate = false;\n }\n }\n }\n\n if (shouldTerminate) {\n if (onResponderTerminate != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminate';\n onResponderTerminate(responderEvent);\n }\n\n changeCurrentResponder(emptyResponder);\n isEmulatingMouseEvents = false;\n trackedTouchCount = 0;\n }\n }\n }\n }\n}\n/**\n * Walk the event path to/from the target node. At each node, stop and call the\n * relevant \"shouldSet\" functions for the given event type. If any of those functions\n * call \"stopPropagation\" on the event, stop searching for a responder.\n */\n\n\nfunction findWantsResponder(eventPaths, domEvent, responderEvent) {\n var shouldSetCallbacks = shouldSetResponderEvents[domEvent.type]; // for Flow\n\n if (shouldSetCallbacks != null) {\n var idPath = eventPaths.idPath,\n nodePath = eventPaths.nodePath;\n var shouldSetCallbackCaptureName = shouldSetCallbacks[0];\n var shouldSetCallbackBubbleName = shouldSetCallbacks[1];\n var bubbles = shouldSetCallbacks[2].bubbles;\n\n var check = function check(id, node, callbackName) {\n var config = getResponderConfig(id);\n var shouldSetCallback = config[callbackName];\n\n if (shouldSetCallback != null) {\n responderEvent.currentTarget = node;\n\n if (shouldSetCallback(responderEvent) === true) {\n // Start the path from the potential responder\n var prunedIdPath = idPath.slice(idPath.indexOf(id));\n return {\n id: id,\n node: node,\n idPath: prunedIdPath\n };\n }\n }\n }; // capture\n\n\n for (var i = idPath.length - 1; i >= 0; i--) {\n var id = idPath[i];\n var node = nodePath[i];\n var result = check(id, node, shouldSetCallbackCaptureName);\n\n if (result != null) {\n return result;\n }\n\n if (responderEvent.isPropagationStopped() === true) {\n return;\n }\n } // bubble\n\n\n if (bubbles) {\n for (var _i = 0; _i < idPath.length; _i++) {\n var _id = idPath[_i];\n var _node = nodePath[_i];\n\n var _result = check(_id, _node, shouldSetCallbackBubbleName);\n\n if (_result != null) {\n return _result;\n }\n\n if (responderEvent.isPropagationStopped() === true) {\n return;\n }\n }\n } else {\n var _id2 = idPath[0];\n var _node2 = nodePath[0];\n var target = domEvent.target;\n\n if (target === _node2) {\n return check(_id2, _node2, shouldSetCallbackBubbleName);\n }\n }\n }\n}\n/**\n * Attempt to transfer the responder.\n */\n\n\nfunction attemptTransfer(responderEvent, wantsResponder) {\n var _currentResponder2 = currentResponder,\n currentId = _currentResponder2.id,\n currentNode = _currentResponder2.node;\n var id = wantsResponder.id,\n node = wantsResponder.node;\n\n var _getResponderConfig2 = getResponderConfig(id),\n onResponderGrant = _getResponderConfig2.onResponderGrant,\n onResponderReject = _getResponderConfig2.onResponderReject;\n\n responderEvent.bubbles = false;\n responderEvent.cancelable = false;\n responderEvent.currentTarget = node; // Set responder\n\n if (currentId == null) {\n if (onResponderGrant != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderGrant';\n onResponderGrant(responderEvent);\n }\n\n changeCurrentResponder(wantsResponder);\n } // Negotiate with current responder\n else {\n var _getResponderConfig3 = getResponderConfig(currentId),\n onResponderTerminate = _getResponderConfig3.onResponderTerminate,\n onResponderTerminationRequest = _getResponderConfig3.onResponderTerminationRequest;\n\n var allowTransfer = true;\n\n if (onResponderTerminationRequest != null) {\n responderEvent.currentTarget = currentNode;\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminationRequest';\n\n if (onResponderTerminationRequest(responderEvent) === false) {\n allowTransfer = false;\n }\n }\n\n if (allowTransfer) {\n // Terminate existing responder\n if (onResponderTerminate != null) {\n responderEvent.currentTarget = currentNode;\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminate';\n onResponderTerminate(responderEvent);\n } // Grant next responder\n\n\n if (onResponderGrant != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderGrant';\n onResponderGrant(responderEvent);\n }\n\n changeCurrentResponder(wantsResponder);\n } else {\n // Reject responder request\n if (onResponderReject != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderReject';\n onResponderReject(responderEvent);\n }\n }\n }\n}\n/* ------------ PUBLIC API ------------ */\n\n/**\n * Attach Listeners\n *\n * Use native events as ReactDOM doesn't have a non-plugin API to implement\n * this system.\n */\n\n\nvar documentEventsCapturePhase = ['blur', 'scroll'];\nvar documentEventsBubblePhase = [// mouse\n'mousedown', 'mousemove', 'mouseup', 'dragstart', // touch\n'touchstart', 'touchmove', 'touchend', 'touchcancel', // other\n'contextmenu', 'select', 'selectionchange'];\nexport function attachListeners() {\n if (canUseDOM && window.__reactResponderSystemActive == null) {\n window.addEventListener('blur', eventListener);\n documentEventsBubblePhase.forEach(function (eventType) {\n document.addEventListener(eventType, eventListener);\n });\n documentEventsCapturePhase.forEach(function (eventType) {\n document.addEventListener(eventType, eventListener, true);\n });\n window.__reactResponderSystemActive = true;\n }\n}\n/**\n * Register a node with the ResponderSystem.\n */\n\nexport function addNode(id, node, config) {\n setResponderId(node, id);\n responderListenersMap.set(id, config);\n}\n/**\n * Unregister a node with the ResponderSystem.\n */\n\nexport function removeNode(id) {\n if (currentResponder.id === id) {\n terminateResponder();\n }\n\n if (responderListenersMap.has(id)) {\n responderListenersMap.delete(id);\n }\n}\n/**\n * Allow the current responder to be terminated from within components to support\n * more complex requirements, such as use with other React libraries for working\n * with scroll views, input views, etc.\n */\n\nexport function terminateResponder() {\n var _currentResponder3 = currentResponder,\n id = _currentResponder3.id,\n node = _currentResponder3.node;\n\n if (id != null && node != null) {\n var _getResponderConfig4 = getResponderConfig(id),\n onResponderTerminate = _getResponderConfig4.onResponderTerminate;\n\n if (onResponderTerminate != null) {\n var event = createResponderEvent({});\n event.currentTarget = node;\n onResponderTerminate(event);\n }\n\n changeCurrentResponder(emptyResponder);\n }\n\n isEmulatingMouseEvents = false;\n trackedTouchCount = 0;\n}\n/**\n * Allow unit tests to inspect the current responder in the system.\n * FOR TESTING ONLY.\n */\n\nexport function getResponderNode() {\n return currentResponder.node;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n/**\n * Hook for integrating the Responder System into React\n *\n * function SomeComponent({ onStartShouldSetResponder }) {\n * const ref = useRef(null);\n * useResponderEvents(ref, { onStartShouldSetResponder });\n * return
\n * }\n */\nimport * as React from 'react';\nimport * as ResponderSystem from './ResponderSystem';\nvar emptyObject = {};\nvar idCounter = 0;\n\nfunction useStable(getInitialValue) {\n var ref = React.useRef(null);\n\n if (ref.current == null) {\n ref.current = getInitialValue();\n }\n\n return ref.current;\n}\n\nexport default function useResponderEvents(hostRef, config) {\n if (config === void 0) {\n config = emptyObject;\n }\n\n var id = useStable(function () {\n return idCounter++;\n });\n var isAttachedRef = React.useRef(false); // This is a separate effects so it doesn't run when the config changes.\n // On initial mount, attach global listeners if needed.\n // On unmount, remove node potentially attached to the Responder System.\n\n React.useEffect(function () {\n ResponderSystem.attachListeners();\n return function () {\n ResponderSystem.removeNode(id);\n };\n }, [id]); // Register and unregister with the Responder System as necessary\n\n React.useEffect(function () {\n var _config = config,\n onMoveShouldSetResponder = _config.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = _config.onMoveShouldSetResponderCapture,\n onScrollShouldSetResponder = _config.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = _config.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = _config.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = _config.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = _config.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = _config.onStartShouldSetResponderCapture;\n var requiresResponderSystem = onMoveShouldSetResponder != null || onMoveShouldSetResponderCapture != null || onScrollShouldSetResponder != null || onScrollShouldSetResponderCapture != null || onSelectionChangeShouldSetResponder != null || onSelectionChangeShouldSetResponderCapture != null || onStartShouldSetResponder != null || onStartShouldSetResponderCapture != null;\n var node = hostRef.current;\n\n if (requiresResponderSystem) {\n ResponderSystem.addNode(id, node, config);\n isAttachedRef.current = true;\n } else if (isAttachedRef.current) {\n ResponderSystem.removeNode(id);\n isAttachedRef.current = false;\n }\n }, [config, hostRef, id]);\n React.useDebugValue({\n isResponder: hostRef.current === ResponderSystem.getResponderNode()\n });\n React.useDebugValue(config);\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 */\nimport { createContext } from 'react';\nvar TextAncestorContext =\n/*#__PURE__*/\ncreateContext(false);\nexport default TextAncestorContext;","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\n/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport * as React from 'react';\nimport { forwardRef, useContext, useRef } from 'react';\nimport createElement from '../createElement';\nimport css from '../StyleSheet/css';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from '../Text/TextAncestorContext';\n\nvar forwardPropsList = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, forwardedProps.defaultProps), forwardedProps.accessibilityProps), forwardedProps.clickProps), forwardedProps.focusProps), forwardedProps.keyboardProps), forwardedProps.mouseProps), forwardedProps.touchProps), forwardedProps.styleProps), {}, {\n href: true,\n lang: true,\n onScroll: true,\n onWheel: true,\n pointerEvents: true\n});\n\nvar pickProps = function pickProps(props) {\n return pick(props, forwardPropsList);\n};\n\nvar View =\n/*#__PURE__*/\nforwardRef(function (props, forwardedRef) {\n var hrefAttrs = props.hrefAttrs,\n onLayout = props.onLayout,\n onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n onResponderEnd = props.onResponderEnd,\n onResponderGrant = props.onResponderGrant,\n onResponderMove = props.onResponderMove,\n onResponderReject = props.onResponderReject,\n onResponderRelease = props.onResponderRelease,\n onResponderStart = props.onResponderStart,\n onResponderTerminate = props.onResponderTerminate,\n onResponderTerminationRequest = props.onResponderTerminationRequest,\n onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture;\n\n if (process.env.NODE_ENV !== 'production') {\n React.Children.toArray(props.children).forEach(function (item) {\n if (typeof item === 'string') {\n console.error(\"Unexpected text node: \" + item + \". A text node cannot be a child of a .\");\n }\n });\n }\n\n var hasTextAncestor = useContext(TextAncestorContext);\n var hostRef = useRef(null);\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder: onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture: onMoveShouldSetResponderCapture,\n onResponderEnd: onResponderEnd,\n onResponderGrant: onResponderGrant,\n onResponderMove: onResponderMove,\n onResponderReject: onResponderReject,\n onResponderRelease: onResponderRelease,\n onResponderStart: onResponderStart,\n onResponderTerminate: onResponderTerminate,\n onResponderTerminationRequest: onResponderTerminationRequest,\n onScrollShouldSetResponder: onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture: onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder: onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture: onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder: onStartShouldSetResponder,\n onStartShouldSetResponderCapture: onStartShouldSetResponderCapture\n });\n var style = StyleSheet.compose(hasTextAncestor && styles.inline, props.style);\n var supportedProps = pickProps(props);\n supportedProps.classList = classList;\n supportedProps.style = style;\n\n if (props.href != null && hrefAttrs != null) {\n var download = hrefAttrs.download,\n rel = hrefAttrs.rel,\n target = hrefAttrs.target;\n\n if (download != null) {\n supportedProps.download = download;\n }\n\n if (rel != null) {\n supportedProps.rel = rel;\n }\n\n if (typeof target === 'string') {\n supportedProps.target = target.charAt(0) !== '_' ? '_' + target : target;\n }\n }\n\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n return createElement('div', supportedProps);\n});\nView.displayName = 'View';\nvar classes = css.create({\n view: {\n alignItems: 'stretch',\n border: '0 solid black',\n boxSizing: 'border-box',\n display: 'flex',\n flexBasis: 'auto',\n flexDirection: 'column',\n flexShrink: 0,\n margin: 0,\n minHeight: 0,\n minWidth: 0,\n padding: 0,\n position: 'relative',\n zIndex: 0\n }\n});\nvar classList = [classes.view];\nvar styles = StyleSheet.create({\n inline: {\n display: 'inline-flex'\n }\n});\nexport default View;","/**\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 */\nexport var defaultProps = {\n children: true,\n dataSet: true,\n nativeID: true,\n ref: true,\n suppressHydrationWarning: true,\n testID: true\n};\nexport var accessibilityProps = {\n accessibilityActiveDescendant: true,\n accessibilityAtomic: true,\n accessibilityAutoComplete: true,\n accessibilityBusy: true,\n accessibilityChecked: true,\n accessibilityColumnCount: true,\n accessibilityColumnIndex: true,\n accessibilityColumnSpan: true,\n accessibilityControls: true,\n accessibilityCurrent: true,\n accessibilityDescribedBy: true,\n accessibilityDetails: true,\n accessibilityDisabled: true,\n accessibilityErrorMessage: true,\n accessibilityExpanded: true,\n accessibilityFlowTo: true,\n accessibilityHasPopup: true,\n accessibilityHidden: true,\n accessibilityInvalid: true,\n accessibilityKeyShortcuts: true,\n accessibilityLabel: true,\n accessibilityLabelledBy: true,\n accessibilityLevel: true,\n accessibilityLiveRegion: true,\n accessibilityModal: true,\n accessibilityMultiline: true,\n accessibilityMultiSelectable: true,\n accessibilityOrientation: true,\n accessibilityOwns: true,\n accessibilityPlaceholder: true,\n accessibilityPosInSet: true,\n accessibilityPressed: true,\n accessibilityReadOnly: true,\n accessibilityRequired: true,\n accessibilityRole: true,\n accessibilityRoleDescription: true,\n accessibilityRowCount: true,\n accessibilityRowIndex: true,\n accessibilityRowSpan: true,\n accessibilitySelected: true,\n accessibilitySetSize: true,\n accessibilitySort: true,\n accessibilityValueMax: true,\n accessibilityValueMin: true,\n accessibilityValueNow: true,\n accessibilityValueText: true,\n dir: true,\n focusable: true,\n // Deprecated\n accessible: true,\n accessibilityState: true,\n accessibilityValue: true\n};\nexport var clickProps = {\n onClick: true,\n onClickCapture: true,\n onContextMenu: true\n};\nexport var focusProps = {\n onBlur: true,\n onFocus: true\n};\nexport var keyboardProps = {\n onKeyDown: true,\n onKeyDownCapture: true,\n onKeyUp: true,\n onKeyUpCapture: true\n};\nexport var mouseProps = {\n onMouseDown: true,\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseMove: true,\n onMouseOver: true,\n onMouseOut: true,\n onMouseUp: true\n};\nexport var touchProps = {\n onTouchCancel: true,\n onTouchCancelCapture: true,\n onTouchEnd: true,\n onTouchEndCapture: true,\n onTouchMove: true,\n onTouchMoveCapture: true,\n onTouchStart: true,\n onTouchStartCapture: true\n};\nexport var styleProps = {\n classList: true,\n style: true\n};","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nexport default function pick(obj, list) {\n var nextObj = {};\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (list[key] === true || // Temporary until ARIA is mapped to explicit props\n key.indexOf('aria-') === 0) {\n nextObj[key] = obj[key];\n }\n }\n }\n\n return nextObj;\n}","import {\n DocumentNode,\n OperationDefinitionNode,\n SelectionSetNode,\n FieldNode,\n FragmentDefinitionNode,\n} from 'graphql';\n\nexport function queryFromPojo(obj: any): DocumentNode {\n const op: OperationDefinitionNode = {\n kind: 'OperationDefinition',\n operation: 'query',\n name: {\n kind: 'Name',\n value: 'GeneratedClientQuery',\n },\n selectionSet: selectionSetFromObj(obj),\n };\n\n const out: DocumentNode = {\n kind: 'Document',\n definitions: [op],\n };\n\n return out;\n}\n\nexport function fragmentFromPojo(obj: any, typename?: string): DocumentNode {\n const frag: FragmentDefinitionNode = {\n kind: 'FragmentDefinition',\n typeCondition: {\n kind: 'NamedType',\n name: {\n kind: 'Name',\n value: typename || '__FakeType',\n },\n },\n name: {\n kind: 'Name',\n value: 'GeneratedClientQuery',\n },\n selectionSet: selectionSetFromObj(obj),\n };\n\n const out: DocumentNode = {\n kind: 'Document',\n definitions: [frag],\n };\n\n return out;\n}\n\nfunction selectionSetFromObj(obj: any): SelectionSetNode {\n if (\n typeof obj === 'number' ||\n typeof obj === 'boolean' ||\n typeof obj === 'string' ||\n typeof obj === 'undefined' ||\n obj === null\n ) {\n // No selection set here\n return null;\n }\n\n if (Array.isArray(obj)) {\n // GraphQL queries don't include arrays\n return selectionSetFromObj(obj[0]);\n }\n\n // Now we know it's an object\n const selections: FieldNode[] = [];\n\n Object.keys(obj).forEach(key => {\n const nestedSelSet: SelectionSetNode = selectionSetFromObj(obj[key]);\n\n const field: FieldNode = {\n kind: 'Field',\n name: {\n kind: 'Name',\n value: key,\n },\n selectionSet: nestedSelSet || undefined,\n };\n\n selections.push(field);\n });\n\n const selectionSet: SelectionSetNode = {\n kind: 'SelectionSet',\n selections,\n };\n\n return selectionSet;\n}\n\nexport const justTypenameQuery: DocumentNode = {\n kind: 'Document',\n definitions: [\n {\n kind: 'OperationDefinition',\n operation: 'query',\n name: null,\n variableDefinitions: null,\n directives: [],\n selectionSet: {\n kind: 'SelectionSet',\n selections: [\n {\n kind: 'Field',\n alias: null,\n name: {\n kind: 'Name',\n value: '__typename',\n },\n arguments: [],\n directives: [],\n selectionSet: null,\n },\n ],\n },\n },\n ],\n};\n","import { DataProxy } from './DataProxy';\n\nexport namespace Cache {\n export type WatchCallback = (newData: any) => void;\n export interface EvictionResult {\n success: Boolean;\n }\n\n export interface ReadOptions\n extends DataProxy.Query {\n rootId?: string;\n previousResult?: any;\n optimistic: boolean;\n }\n\n export interface WriteOptions\n extends DataProxy.Query {\n dataId: string;\n result: TResult;\n }\n\n export interface DiffOptions extends ReadOptions {\n returnPartialData?: boolean;\n }\n\n export interface WatchOptions extends ReadOptions {\n callback: WatchCallback;\n }\n\n export interface EvictOptions\n extends DataProxy.Query {\n rootId?: string;\n }\n\n export import DiffResult = DataProxy.DiffResult;\n export import WriteQueryOptions = DataProxy.WriteQueryOptions;\n export import WriteFragmentOptions = DataProxy.WriteFragmentOptions;\n export import WriteDataOptions = DataProxy.WriteDataOptions;\n export import Fragment = DataProxy.Fragment;\n}\n","interface Node {\n key: K;\n value: V;\n newer: Node | null;\n older: Node | null;\n}\n\nfunction defaultDispose() {}\n\nexport class Cache {\n private map = new Map>();\n private newest: Node | null = null;\n private oldest: Node | null = null;\n\n constructor(\n private max = Infinity,\n public dispose: (value: V, key: K) => void = defaultDispose,\n ) {}\n\n public has(key: K) {\n return this.map.has(key);\n }\n\n public get(key: K) {\n const entry = this.getEntry(key);\n return entry && entry.value;\n }\n\n private getEntry(key: K): Node | void {\n const entry = this.map.get(key);\n\n if (entry && entry !== this.newest) {\n const { older, newer } = entry;\n\n if (newer) {\n newer.older = older;\n }\n\n if (older) {\n older.newer = newer;\n }\n\n entry.older = this.newest;\n entry.older!.newer = entry;\n\n entry.newer = null;\n this.newest = entry;\n\n if (entry === this.oldest) {\n this.oldest = newer;\n }\n }\n\n return entry;\n }\n\n public set(key: K, value: V) {\n let entry = this.getEntry(key);\n if (entry) {\n return entry.value = value;\n }\n\n entry = {\n key: key,\n value: value,\n newer: null,\n older: this.newest\n };\n\n if (this.newest) {\n this.newest.newer = entry;\n }\n\n this.newest = entry;\n this.oldest = this.oldest || entry;\n\n this.map.set(key, entry);\n\n return entry.value;\n }\n\n public clean() {\n while (this.oldest && this.map.size > this.max) {\n this.delete(this.oldest.key);\n }\n }\n\n public delete(key: K) {\n const entry = this.map.get(key);\n if (entry) {\n if (entry === this.newest) {\n this.newest = entry.older;\n }\n\n if (entry === this.oldest) {\n this.oldest = entry.newer;\n }\n\n if (entry.newer) {\n entry.newer.older = entry.older;\n }\n\n if (entry.older) {\n entry.older.newer = entry.newer;\n }\n\n this.map.delete(key);\n this.dispose(entry.value, key);\n\n return true;\n }\n\n return false;\n }\n}\n","type Context = {\n parent: Context | null;\n slots: { [slotId: string]: any };\n}\n\n// This currentContext variable will only be used if the makeSlotClass\n// function is called, which happens only if this is the first copy of the\n// @wry/context package to be imported.\nlet currentContext: Context | null = null;\n\n// This unique internal object is used to denote the absence of a value\n// for a given Slot, and is never exposed to outside code.\nconst MISSING_VALUE: any = {};\n\nlet idCounter = 1;\n\n// Although we can't do anything about the cost of duplicated code from\n// accidentally bundling multiple copies of the @wry/context package, we can\n// avoid creating the Slot class more than once using makeSlotClass.\nconst makeSlotClass = () => class Slot {\n // If you have a Slot object, you can find out its slot.id, but you cannot\n // guess the slot.id of a Slot you don't have access to, thanks to the\n // randomized suffix.\n public readonly id = [\n \"slot\",\n idCounter++,\n Date.now(),\n Math.random().toString(36).slice(2),\n ].join(\":\");\n\n public hasValue() {\n for (let context = currentContext; context; context = context.parent) {\n // We use the Slot object iself as a key to its value, which means the\n // value cannot be obtained without a reference to the Slot object.\n if (this.id in context.slots) {\n const value = context.slots[this.id];\n if (value === MISSING_VALUE) break;\n if (context !== currentContext) {\n // Cache the value in currentContext.slots so the next lookup will\n // be faster. This caching is safe because the tree of contexts and\n // the values of the slots are logically immutable.\n currentContext!.slots[this.id] = value;\n }\n return true;\n }\n }\n if (currentContext) {\n // If a value was not found for this Slot, it's never going to be found\n // no matter how many times we look it up, so we might as well cache\n // the absence of the value, too.\n currentContext.slots[this.id] = MISSING_VALUE;\n }\n return false;\n }\n\n public getValue(): TValue | undefined {\n if (this.hasValue()) {\n return currentContext!.slots[this.id] as TValue;\n }\n }\n\n public withValue(\n value: TValue,\n callback: (this: TThis, ...args: TArgs) => TResult,\n // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args?: TArgs,\n thisArg?: TThis,\n ): TResult {\n const slots = {\n __proto__: null,\n [this.id]: value,\n };\n const parent = currentContext;\n currentContext = { parent, slots };\n try {\n // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n return callback.apply(thisArg!, args!);\n } finally {\n currentContext = parent;\n }\n }\n\n // Capture the current context and wrap a callback function so that it\n // reestablishes the captured context when called.\n static bind(\n callback: (...args: TArgs) => TResult,\n ) {\n const context = currentContext;\n return function (this: any) {\n const saved = currentContext;\n try {\n currentContext = context;\n return callback.apply(this, arguments as any);\n } finally {\n currentContext = saved;\n }\n } as typeof callback;\n }\n\n // Immediately run a callback function without any captured context.\n static noContext(\n callback: (this: TThis, ...args: TArgs) => TResult,\n // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args?: TArgs,\n thisArg?: TThis,\n ) {\n if (currentContext) {\n const saved = currentContext;\n try {\n currentContext = null;\n // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n return callback.apply(thisArg!, args!);\n } finally {\n currentContext = saved;\n }\n } else {\n return callback.apply(thisArg!, args!);\n }\n }\n};\n\n// We store a single global implementation of the Slot class as a permanent\n// non-enumerable symbol property of the Array constructor. This obfuscation\n// does nothing to prevent access to the Slot class, but at least it ensures\n// the implementation (i.e. currentContext) cannot be tampered with, and all\n// copies of the @wry/context package (hopefully just one) will share the\n// same Slot implementation. Since the first copy of the @wry/context package\n// to be imported wins, this technique imposes a very high cost for any\n// future breaking changes to the Slot class.\nconst globalKey = \"@wry/context:Slot\";\nconst host = Array as any;\n\nexport const Slot: ReturnType = host[globalKey] || function () {\n const Slot = makeSlotClass();\n try {\n Object.defineProperty(host, globalKey, {\n value: host[globalKey] = Slot,\n enumerable: false,\n writable: false,\n configurable: false,\n });\n } finally {\n return Slot;\n }\n}();\n","import { AnyEntry } from \"./entry\";\nimport { Slot } from \"@wry/context\";\n\nexport const parentEntrySlot = new Slot();\n\nexport {\n bind as bindContext,\n noContext,\n setTimeout,\n asyncFromGen,\n} from \"@wry/context\";\n","import { parentEntrySlot } from \"./context\";\nimport { OptimisticWrapOptions } from \"./index\";\n\nconst reusableEmptyArray: AnyEntry[] = [];\nconst emptySetPool: Set[] = [];\nconst POOL_TARGET_SIZE = 100;\n\n// Since this package might be used browsers, we should avoid using the\n// Node built-in assert module.\nfunction assert(condition: any, optionalMessage?: string) {\n if (! condition) {\n throw new Error(optionalMessage || \"assertion failure\");\n }\n}\n\n// Since exceptions are cached just like normal values, we need an efficient\n// way of representing unknown, ordinary, and exceptional values.\ntype Value =\n | [] // unknown\n | [T] // known value\n | [void, any]; // known exception\n\nfunction valueIs(a: Value, b: Value) {\n const len = a.length;\n return (\n // Unknown values are not equal to each other.\n len > 0 &&\n // Both values must be ordinary (or both exceptional) to be equal.\n len === b.length &&\n // The underlying value or exception must be the same.\n a[len - 1] === b[len - 1]\n );\n}\n\nfunction valueGet(value: Value): T {\n switch (value.length) {\n case 0: throw new Error(\"unknown value\");\n case 1: return value[0];\n case 2: throw value[1];\n }\n}\n\nfunction valueCopy(value: Value): Value {\n return value.slice(0) as Value;\n}\n\nexport type AnyEntry = Entry;\n\nexport class Entry {\n public static count = 0;\n\n public subscribe: OptimisticWrapOptions[\"subscribe\"];\n public unsubscribe?: () => any;\n public reportOrphan?: (this: Entry) => any;\n\n public readonly parents = new Set();\n public readonly childValues = new Map>();\n\n // When this Entry has children that are dirty, this property becomes\n // a Set containing other Entry objects, borrowed from emptySetPool.\n // When the set becomes empty, it gets recycled back to emptySetPool.\n public dirtyChildren: Set | null = null;\n\n public dirty = true;\n public recomputing = false;\n public readonly value: Value = [];\n\n constructor(\n public readonly fn: (...args: TArgs) => TValue,\n public args: TArgs,\n ) {\n ++Entry.count;\n }\n\n // This is the most important method of the Entry API, because it\n // determines whether the cached this.value can be returned immediately,\n // or must be recomputed. The overall performance of the caching system\n // depends on the truth of the following observations: (1) this.dirty is\n // usually false, (2) this.dirtyChildren is usually null/empty, and thus\n // (3) valueGet(this.value) is usually returned without recomputation.\n public recompute(): TValue {\n assert(! this.recomputing, \"already recomputing\");\n\n if (! rememberParent(this) && maybeReportOrphan(this)) {\n // The recipient of the entry.reportOrphan callback decided to dispose\n // of this orphan entry by calling entry.dispose(), so we don't need to\n // (and should not) proceed with the recomputation.\n return void 0 as any;\n }\n\n return mightBeDirty(this)\n ? reallyRecompute(this)\n : valueGet(this.value);\n }\n\n public setDirty() {\n if (this.dirty) return;\n this.dirty = true;\n this.value.length = 0;\n reportDirty(this);\n // We can go ahead and unsubscribe here, since any further dirty\n // notifications we receive will be redundant, and unsubscribing may\n // free up some resources, e.g. file watchers.\n maybeUnsubscribe(this);\n }\n\n public dispose() {\n forgetChildren(this).forEach(maybeReportOrphan);\n maybeUnsubscribe(this);\n\n // Because this entry has been kicked out of the cache (in index.js),\n // we've lost the ability to find out if/when this entry becomes dirty,\n // whether that happens through a subscription, because of a direct call\n // to entry.setDirty(), or because one of its children becomes dirty.\n // Because of this loss of future information, we have to assume the\n // worst (that this entry might have become dirty very soon), so we must\n // immediately mark this entry's parents as dirty. Normally we could\n // just call entry.setDirty() rather than calling parent.setDirty() for\n // each parent, but that would leave this entry in parent.childValues\n // and parent.dirtyChildren, which would prevent the child from being\n // truly forgotten.\n this.parents.forEach(parent => {\n parent.setDirty();\n forgetChild(parent, this);\n });\n }\n}\n\nfunction rememberParent(child: AnyEntry) {\n const parent = parentEntrySlot.getValue();\n if (parent) {\n child.parents.add(parent);\n\n if (! parent.childValues.has(child)) {\n parent.childValues.set(child, []);\n }\n\n if (mightBeDirty(child)) {\n reportDirtyChild(parent, child);\n } else {\n reportCleanChild(parent, child);\n }\n\n return parent;\n }\n}\n\nfunction reallyRecompute(entry: AnyEntry) {\n // Since this recomputation is likely to re-remember some of this\n // entry's children, we forget our children here but do not call\n // maybeReportOrphan until after the recomputation finishes.\n const originalChildren = forgetChildren(entry);\n\n // Set entry as the parent entry while calling recomputeNewValue(entry).\n parentEntrySlot.withValue(entry, recomputeNewValue, [entry]);\n\n if (maybeSubscribe(entry)) {\n // If we successfully recomputed entry.value and did not fail to\n // (re)subscribe, then this Entry is no longer explicitly dirty.\n setClean(entry);\n }\n\n // Now that we've had a chance to re-remember any children that were\n // involved in the recomputation, we can safely report any orphan\n // children that remain.\n originalChildren.forEach(maybeReportOrphan);\n\n return valueGet(entry.value);\n}\n\nfunction recomputeNewValue(entry: AnyEntry) {\n entry.recomputing = true;\n // Set entry.value as unknown.\n entry.value.length = 0;\n try {\n // If entry.fn succeeds, entry.value will become a normal Value.\n entry.value[0] = entry.fn.apply(null, entry.args);\n } catch (e) {\n // If entry.fn throws, entry.value will become exceptional.\n entry.value[1] = e;\n }\n // Either way, this line is always reached.\n entry.recomputing = false;\n}\n\nfunction mightBeDirty(entry: AnyEntry) {\n return entry.dirty || !!(entry.dirtyChildren && entry.dirtyChildren.size);\n}\n\nfunction setClean(entry: AnyEntry) {\n entry.dirty = false;\n\n if (mightBeDirty(entry)) {\n // This Entry may still have dirty children, in which case we can't\n // let our parents know we're clean just yet.\n return;\n }\n\n reportClean(entry);\n}\n\nfunction reportDirty(child: AnyEntry) {\n child.parents.forEach(parent => reportDirtyChild(parent, child));\n}\n\nfunction reportClean(child: AnyEntry) {\n child.parents.forEach(parent => reportCleanChild(parent, child));\n}\n\n// Let a parent Entry know that one of its children may be dirty.\nfunction reportDirtyChild(parent: AnyEntry, child: AnyEntry) {\n // Must have called rememberParent(child) before calling\n // reportDirtyChild(parent, child).\n assert(parent.childValues.has(child));\n assert(mightBeDirty(child));\n\n if (! parent.dirtyChildren) {\n parent.dirtyChildren = emptySetPool.pop() || new Set;\n\n } else if (parent.dirtyChildren.has(child)) {\n // If we already know this child is dirty, then we must have already\n // informed our own parents that we are dirty, so we can terminate\n // the recursion early.\n return;\n }\n\n parent.dirtyChildren.add(child);\n reportDirty(parent);\n}\n\n// Let a parent Entry know that one of its children is no longer dirty.\nfunction reportCleanChild(parent: AnyEntry, child: AnyEntry) {\n // Must have called rememberChild(child) before calling\n // reportCleanChild(parent, child).\n assert(parent.childValues.has(child));\n assert(! mightBeDirty(child));\n\n const childValue = parent.childValues.get(child)!;\n if (childValue.length === 0) {\n parent.childValues.set(child, valueCopy(child.value));\n } else if (! valueIs(childValue, child.value)) {\n parent.setDirty();\n }\n\n removeDirtyChild(parent, child);\n\n if (mightBeDirty(parent)) {\n return;\n }\n\n reportClean(parent);\n}\n\nfunction removeDirtyChild(parent: AnyEntry, child: AnyEntry) {\n const dc = parent.dirtyChildren;\n if (dc) {\n dc.delete(child);\n if (dc.size === 0) {\n if (emptySetPool.length < POOL_TARGET_SIZE) {\n emptySetPool.push(dc);\n }\n parent.dirtyChildren = null;\n }\n }\n}\n\n// If the given entry has a reportOrphan method, and no remaining parents,\n// call entry.reportOrphan and return true iff it returns true. The\n// reportOrphan function should return true to indicate entry.dispose()\n// has been called, and the entry has been removed from any other caches\n// (see index.js for the only current example).\nfunction maybeReportOrphan(entry: AnyEntry) {\n return entry.parents.size === 0 &&\n typeof entry.reportOrphan === \"function\" &&\n entry.reportOrphan() === true;\n}\n\n// Removes all children from this entry and returns an array of the\n// removed children.\nfunction forgetChildren(parent: AnyEntry) {\n let children = reusableEmptyArray;\n\n if (parent.childValues.size > 0) {\n children = [];\n parent.childValues.forEach((_value, child) => {\n forgetChild(parent, child);\n children.push(child);\n });\n }\n\n // After we forget all our children, this.dirtyChildren must be empty\n // and therefore must have been reset to null.\n assert(parent.dirtyChildren === null);\n\n return children;\n}\n\nfunction forgetChild(parent: AnyEntry, child: AnyEntry) {\n child.parents.delete(parent);\n parent.childValues.delete(child);\n removeDirtyChild(parent, child);\n}\n\nfunction maybeSubscribe(entry: AnyEntry) {\n if (typeof entry.subscribe === \"function\") {\n try {\n maybeUnsubscribe(entry); // Prevent double subscriptions.\n entry.unsubscribe = entry.subscribe.apply(null, entry.args);\n } catch (e) {\n // If this Entry has a subscribe function and it threw an exception\n // (or an unsubscribe function it previously returned now throws),\n // return false to indicate that we were not able to subscribe (or\n // unsubscribe), and this Entry should remain dirty.\n entry.setDirty();\n return false;\n }\n }\n\n // Returning true indicates either that there was no entry.subscribe\n // function or that it succeeded.\n return true;\n}\n\nfunction maybeUnsubscribe(entry: AnyEntry) {\n const { unsubscribe } = entry;\n if (typeof unsubscribe === \"function\") {\n entry.unsubscribe = void 0;\n unsubscribe();\n }\n}\n","// A trie data structure that holds object keys weakly, yet can also hold\n// non-object keys, unlike the native `WeakMap`.\nexport class KeyTrie {\n // Since a `WeakMap` cannot hold primitive values as keys, we need a\n // backup `Map` instance to hold primitive keys. Both `this._weakMap`\n // and `this._strongMap` are lazily initialized.\n private weak?: WeakMap>;\n private strong?: Map>;\n private data?: K;\n\n constructor(private readonly weakness: boolean) {}\n\n public lookup(...array: T): K {\n return this.lookupArray(array);\n }\n\n public lookupArray(array: T): K {\n let node: KeyTrie = this;\n array.forEach(key => node = node.getChildTrie(key));\n return node.data || (node.data = Object.create(null));\n }\n\n private getChildTrie(key: any) {\n const map = this.weakness && isObjRef(key)\n ? this.weak || (this.weak = new WeakMap>())\n : this.strong || (this.strong = new Map>());\n let child = map.get(key);\n if (!child) map.set(key, child = new KeyTrie(this.weakness));\n return child;\n }\n}\n\nfunction isObjRef(value: any) {\n switch (typeof value) {\n case \"object\":\n if (value === null) break;\n // Fall through to return true...\n case \"function\":\n return true;\n }\n return false;\n}\n","import { isTest, IdValue } from 'apollo-utilities';\nimport { invariant } from 'ts-invariant';\n\nimport {\n ReadStoreContext,\n FragmentMatcherInterface,\n PossibleTypesMap,\n IntrospectionResultData,\n} from './types';\n\nlet haveWarned = false;\n\nfunction shouldWarn() {\n const answer = !haveWarned;\n /* istanbul ignore if */\n if (!isTest()) {\n haveWarned = true;\n }\n return answer;\n}\n\n/**\n * This fragment matcher is very basic and unable to match union or interface type conditions\n */\nexport class HeuristicFragmentMatcher implements FragmentMatcherInterface {\n constructor() {\n // do nothing\n }\n\n public ensureReady() {\n return Promise.resolve();\n }\n\n public canBypassInit() {\n return true; // we don't need to initialize this fragment matcher.\n }\n\n public match(\n idValue: IdValue,\n typeCondition: string,\n context: ReadStoreContext,\n ): boolean | 'heuristic' {\n const obj = context.store.get(idValue.id);\n const isRootQuery = idValue.id === 'ROOT_QUERY';\n\n if (!obj) {\n // https://github.com/apollographql/apollo-client/pull/3507\n return isRootQuery;\n }\n\n const { __typename = isRootQuery && 'Query' } = obj;\n\n if (!__typename) {\n if (shouldWarn()) {\n invariant.warn(`You're using fragments in your queries, but either don't have the addTypename:\n true option set in Apollo Client, or you are trying to write a fragment to the store without the __typename.\n Please turn on the addTypename option and include __typename when writing fragments so that Apollo Client\n can accurately match fragments.`);\n invariant.warn(\n 'Could not find __typename on Fragment ',\n typeCondition,\n obj,\n );\n invariant.warn(\n `DEPRECATION WARNING: using fragments without __typename is unsupported behavior ` +\n `and will be removed in future versions of Apollo client. You should fix this and set addTypename to true now.`,\n );\n }\n\n return 'heuristic';\n }\n\n if (__typename === typeCondition) {\n return true;\n }\n\n // At this point we don't know if this fragment should match or not. It's\n // either:\n //\n // 1. (GOOD) A fragment on a matching interface or union.\n // 2. (BAD) A fragment on a non-matching concrete type or interface or union.\n //\n // If it's 2, we don't want it to match. If it's 1, we want it to match. We\n // can't tell the difference, so we warn the user, but still try to match\n // it (for backwards compatibility reasons). This unfortunately means that\n // using the `HeuristicFragmentMatcher` with unions and interfaces is\n // very unreliable. This will be addressed in a future major version of\n // Apollo Client, but for now the recommendation is to use the\n // `IntrospectionFragmentMatcher` when working with unions/interfaces.\n\n if (shouldWarn()) {\n invariant.error(\n 'You are using the simple (heuristic) fragment matcher, but your ' +\n 'queries contain union or interface types. Apollo Client will not be ' +\n 'able to accurately map fragments. To make this error go away, use ' +\n 'the `IntrospectionFragmentMatcher` as described in the docs: ' +\n 'https://www.apollographql.com/docs/react/advanced/fragments.html#fragment-matcher',\n );\n }\n\n return 'heuristic';\n }\n}\n\nexport class IntrospectionFragmentMatcher implements FragmentMatcherInterface {\n private isReady: boolean;\n private possibleTypesMap: PossibleTypesMap;\n\n constructor(options?: {\n introspectionQueryResultData?: IntrospectionResultData;\n }) {\n if (options && options.introspectionQueryResultData) {\n this.possibleTypesMap = this.parseIntrospectionResult(\n options.introspectionQueryResultData,\n );\n this.isReady = true;\n } else {\n this.isReady = false;\n }\n\n this.match = this.match.bind(this);\n }\n\n public match(\n idValue: IdValue,\n typeCondition: string,\n context: ReadStoreContext,\n ) {\n invariant(\n this.isReady,\n 'FragmentMatcher.match() was called before FragmentMatcher.init()',\n );\n\n const obj = context.store.get(idValue.id);\n const isRootQuery = idValue.id === 'ROOT_QUERY';\n\n if (!obj) {\n // https://github.com/apollographql/apollo-client/pull/4620\n return isRootQuery;\n }\n\n const { __typename = isRootQuery && 'Query' } = obj;\n\n invariant(\n __typename,\n `Cannot match fragment because __typename property is missing: ${JSON.stringify(\n obj,\n )}`,\n );\n\n if (__typename === typeCondition) {\n return true;\n }\n\n const implementingTypes = this.possibleTypesMap[typeCondition];\n if (\n __typename &&\n implementingTypes &&\n implementingTypes.indexOf(__typename) > -1\n ) {\n return true;\n }\n\n return false;\n }\n\n private parseIntrospectionResult(\n introspectionResultData: IntrospectionResultData,\n ): PossibleTypesMap {\n const typeMap: PossibleTypesMap = {};\n introspectionResultData.__schema.types.forEach(type => {\n if (type.kind === 'UNION' || type.kind === 'INTERFACE') {\n typeMap[type.name] = type.possibleTypes.map(\n implementingType => implementingType.name,\n );\n }\n });\n return typeMap;\n }\n}\n","import { NormalizedCache, NormalizedCacheObject, StoreObject } from './types';\nimport { wrap, OptimisticWrapperFunction } from 'optimism';\n\nconst hasOwn = Object.prototype.hasOwnProperty;\n\nexport class DepTrackingCache implements NormalizedCache {\n // Wrapper function produced by the optimism library, used to depend on\n // dataId strings, for easy invalidation of specific IDs.\n private depend: OptimisticWrapperFunction<[string], StoreObject | undefined>;\n\n constructor(private data: NormalizedCacheObject = Object.create(null)) {\n this.depend = wrap((dataId: string) => this.data[dataId], {\n disposable: true,\n makeCacheKey(dataId: string) {\n return dataId;\n },\n });\n }\n\n public toObject(): NormalizedCacheObject {\n return this.data;\n }\n\n public get(dataId: string): StoreObject {\n this.depend(dataId);\n return this.data[dataId]!;\n }\n\n public set(dataId: string, value?: StoreObject) {\n const oldValue = this.data[dataId];\n if (value !== oldValue) {\n this.data[dataId] = value;\n this.depend.dirty(dataId);\n }\n }\n\n public delete(dataId: string): void {\n if (hasOwn.call(this.data, dataId)) {\n delete this.data[dataId];\n this.depend.dirty(dataId);\n }\n }\n\n public clear(): void {\n this.replace(null);\n }\n\n public replace(newData: NormalizedCacheObject | null): void {\n if (newData) {\n Object.keys(newData).forEach(dataId => {\n this.set(dataId, newData[dataId]);\n });\n Object.keys(this.data).forEach(dataId => {\n if (!hasOwn.call(newData, dataId)) {\n this.delete(dataId);\n }\n });\n } else {\n Object.keys(this.data).forEach(dataId => {\n this.delete(dataId);\n });\n }\n }\n}\n\nexport function defaultNormalizedCacheFactory(\n seed?: NormalizedCacheObject,\n): NormalizedCache {\n return new DepTrackingCache(seed);\n}\n","import {\n argumentsObjectFromField,\n assign,\n canUseWeakMap,\n createFragmentMap,\n DirectiveInfo,\n FragmentMap,\n getDefaultValues,\n getDirectiveInfoFromField,\n getFragmentDefinitions,\n getMainDefinition,\n getQueryDefinition,\n getStoreKeyName,\n IdValue,\n isEqual,\n isField,\n isIdValue,\n isInlineFragment,\n isJsonValue,\n maybeDeepFreeze,\n mergeDeepArray,\n resultKeyNameFromField,\n shouldInclude,\n StoreValue,\n toIdValue,\n} from 'apollo-utilities';\n\nimport { Cache } from 'apollo-cache';\n\nimport {\n ReadStoreContext,\n DiffQueryAgainstStoreOptions,\n ReadQueryOptions,\n StoreObject,\n} from './types';\n\nimport {\n DocumentNode,\n FieldNode,\n FragmentDefinitionNode,\n InlineFragmentNode,\n SelectionSetNode,\n} from 'graphql';\n\nimport { wrap, KeyTrie } from 'optimism';\nimport { DepTrackingCache } from './depTrackingCache';\nimport { invariant, InvariantError } from 'ts-invariant';\n\nexport type VariableMap = { [name: string]: any };\n\nexport type FragmentMatcher = (\n rootValue: any,\n typeCondition: string,\n context: ReadStoreContext,\n) => boolean | 'heuristic';\n\ntype ExecContext = {\n query: DocumentNode;\n fragmentMap: FragmentMap;\n contextValue: ReadStoreContext;\n variableValues: VariableMap;\n fragmentMatcher: FragmentMatcher;\n};\n\ntype ExecInfo = {\n resultKey: string;\n directives: DirectiveInfo;\n};\n\nexport type ExecResultMissingField = {\n object: StoreObject;\n fieldName: string;\n tolerable: boolean;\n};\n\nexport type ExecResult = {\n result: R;\n // Empty array if no missing fields encountered while computing result.\n missing?: ExecResultMissingField[];\n};\n\ntype ExecStoreQueryOptions = {\n query: DocumentNode;\n rootValue: IdValue;\n contextValue: ReadStoreContext;\n variableValues: VariableMap;\n // Default matcher always matches all fragments\n fragmentMatcher?: FragmentMatcher;\n};\n\ntype ExecSelectionSetOptions = {\n selectionSet: SelectionSetNode;\n rootValue: any;\n execContext: ExecContext;\n};\n\ntype ExecSubSelectedArrayOptions = {\n field: FieldNode;\n array: any[];\n execContext: ExecContext;\n};\n\nexport interface StoreReaderConfig {\n cacheKeyRoot?: KeyTrie;\n freezeResults?: boolean;\n}\n\nexport class StoreReader {\n private freezeResults: boolean;\n\n constructor({\n cacheKeyRoot = new KeyTrie(canUseWeakMap),\n freezeResults = false,\n }: StoreReaderConfig = {}) {\n const {\n executeStoreQuery,\n executeSelectionSet,\n executeSubSelectedArray,\n } = this;\n\n this.freezeResults = freezeResults;\n\n this.executeStoreQuery = wrap((options: ExecStoreQueryOptions) => {\n return executeStoreQuery.call(this, options);\n }, {\n makeCacheKey({\n query,\n rootValue,\n contextValue,\n variableValues,\n fragmentMatcher,\n }: ExecStoreQueryOptions) {\n // The result of executeStoreQuery can be safely cached only if the\n // underlying store is capable of tracking dependencies and invalidating\n // the cache when relevant data have changed.\n if (contextValue.store instanceof DepTrackingCache) {\n return cacheKeyRoot.lookup(\n contextValue.store,\n query,\n fragmentMatcher,\n JSON.stringify(variableValues),\n rootValue.id,\n );\n }\n }\n });\n\n this.executeSelectionSet = wrap((options: ExecSelectionSetOptions) => {\n return executeSelectionSet.call(this, options);\n }, {\n makeCacheKey({\n selectionSet,\n rootValue,\n execContext,\n }: ExecSelectionSetOptions) {\n if (execContext.contextValue.store instanceof DepTrackingCache) {\n return cacheKeyRoot.lookup(\n execContext.contextValue.store,\n selectionSet,\n execContext.fragmentMatcher,\n JSON.stringify(execContext.variableValues),\n rootValue.id,\n );\n }\n }\n });\n\n this.executeSubSelectedArray = wrap((options: ExecSubSelectedArrayOptions) => {\n return executeSubSelectedArray.call(this, options);\n }, {\n makeCacheKey({ field, array, execContext }) {\n if (execContext.contextValue.store instanceof DepTrackingCache) {\n return cacheKeyRoot.lookup(\n execContext.contextValue.store,\n field,\n array,\n JSON.stringify(execContext.variableValues),\n );\n }\n }\n });\n }\n\n /**\n * Resolves the result of a query solely from the store (i.e. never hits the server).\n *\n * @param {Store} store The {@link NormalizedCache} used by Apollo for the `data` portion of the\n * store.\n *\n * @param {DocumentNode} query The query document to resolve from the data available in the store.\n *\n * @param {Object} [variables] A map from the name of a variable to its value. These variables can\n * be referenced by the query document.\n *\n * @param {any} previousResult The previous result returned by this function for the same query.\n * If nothing in the store changed since that previous result then values from the previous result\n * will be returned to preserve referential equality.\n */\n public readQueryFromStore(\n options: ReadQueryOptions,\n ): QueryType | undefined {\n return this.diffQueryAgainstStore({\n ...options,\n returnPartialData: false,\n }).result;\n }\n\n /**\n * Given a store and a query, return as much of the result as possible and\n * identify if any data was missing from the store.\n * @param {DocumentNode} query A parsed GraphQL query document\n * @param {Store} store The Apollo Client store object\n * @param {any} previousResult The previous result returned by this function for the same query\n * @return {result: Object, complete: [boolean]}\n */\n public diffQueryAgainstStore({\n store,\n query,\n variables,\n previousResult,\n returnPartialData = true,\n rootId = 'ROOT_QUERY',\n fragmentMatcherFunction,\n config,\n }: DiffQueryAgainstStoreOptions): Cache.DiffResult {\n // Throw the right validation error by trying to find a query in the document\n const queryDefinition = getQueryDefinition(query);\n\n variables = assign({}, getDefaultValues(queryDefinition), variables);\n\n const context: ReadStoreContext = {\n // Global settings\n store,\n dataIdFromObject: config && config.dataIdFromObject,\n cacheRedirects: (config && config.cacheRedirects) || {},\n };\n\n const execResult = this.executeStoreQuery({\n query,\n rootValue: {\n type: 'id',\n id: rootId,\n generated: true,\n typename: 'Query',\n },\n contextValue: context,\n variableValues: variables,\n fragmentMatcher: fragmentMatcherFunction,\n });\n\n const hasMissingFields =\n execResult.missing && execResult.missing.length > 0;\n\n if (hasMissingFields && ! returnPartialData) {\n execResult.missing!.forEach(info => {\n if (info.tolerable) return;\n throw new InvariantError(\n `Can't find field ${info.fieldName} on object ${JSON.stringify(\n info.object,\n null,\n 2,\n )}.`,\n );\n });\n }\n\n if (previousResult) {\n if (isEqual(previousResult, execResult.result)) {\n execResult.result = previousResult;\n }\n }\n\n return {\n result: execResult.result,\n complete: !hasMissingFields,\n };\n }\n\n /**\n * Based on graphql function from graphql-js:\n *\n * graphql(\n * schema: GraphQLSchema,\n * requestString: string,\n * rootValue?: ?any,\n * contextValue?: ?any,\n * variableValues?: ?{[key: string]: any},\n * operationName?: ?string\n * ): Promise\n *\n * The default export as of graphql-anywhere is sync as of 4.0,\n * but below is an exported alternative that is async.\n * In the 5.0 version, this will be the only export again\n * and it will be async\n *\n */\n private executeStoreQuery({\n query,\n rootValue,\n contextValue,\n variableValues,\n // Default matcher always matches all fragments\n fragmentMatcher = defaultFragmentMatcher,\n }: ExecStoreQueryOptions): ExecResult {\n const mainDefinition = getMainDefinition(query);\n const fragments = getFragmentDefinitions(query);\n const fragmentMap = createFragmentMap(fragments);\n const execContext: ExecContext = {\n query,\n fragmentMap,\n contextValue,\n variableValues,\n fragmentMatcher,\n };\n\n return this.executeSelectionSet({\n selectionSet: mainDefinition.selectionSet,\n rootValue,\n execContext,\n });\n }\n\n private executeSelectionSet({\n selectionSet,\n rootValue,\n execContext,\n }: ExecSelectionSetOptions): ExecResult {\n const { fragmentMap, contextValue, variableValues: variables } = execContext;\n const finalResult: ExecResult = { result: null };\n\n const objectsToMerge: { [key: string]: any }[] = [];\n\n const object: StoreObject = contextValue.store.get(rootValue.id);\n\n const typename =\n (object && object.__typename) ||\n (rootValue.id === 'ROOT_QUERY' && 'Query') ||\n void 0;\n\n function handleMissing(result: ExecResult): T {\n if (result.missing) {\n finalResult.missing = finalResult.missing || [];\n finalResult.missing.push(...result.missing);\n }\n return result.result;\n }\n\n selectionSet.selections.forEach(selection => {\n if (!shouldInclude(selection, variables)) {\n // Skip this entirely\n return;\n }\n\n if (isField(selection)) {\n const fieldResult = handleMissing(\n this.executeField(object, typename, selection, execContext),\n );\n\n if (typeof fieldResult !== 'undefined') {\n objectsToMerge.push({\n [resultKeyNameFromField(selection)]: fieldResult,\n });\n }\n\n } else {\n let fragment: InlineFragmentNode | FragmentDefinitionNode;\n\n if (isInlineFragment(selection)) {\n fragment = selection;\n } else {\n // This is a named fragment\n fragment = fragmentMap[selection.name.value];\n\n if (!fragment) {\n throw new InvariantError(`No fragment named ${selection.name.value}`);\n }\n }\n\n const typeCondition =\n fragment.typeCondition && fragment.typeCondition.name.value;\n\n const match =\n !typeCondition ||\n execContext.fragmentMatcher(rootValue, typeCondition, contextValue);\n\n if (match) {\n let fragmentExecResult = this.executeSelectionSet({\n selectionSet: fragment.selectionSet,\n rootValue,\n execContext,\n });\n\n if (match === 'heuristic' && fragmentExecResult.missing) {\n fragmentExecResult = {\n ...fragmentExecResult,\n missing: fragmentExecResult.missing.map(info => {\n return { ...info, tolerable: true };\n }),\n };\n }\n\n objectsToMerge.push(handleMissing(fragmentExecResult));\n }\n }\n });\n\n // Perform a single merge at the end so that we can avoid making more\n // defensive shallow copies than necessary.\n finalResult.result = mergeDeepArray(objectsToMerge);\n\n if (this.freezeResults && process.env.NODE_ENV !== 'production') {\n Object.freeze(finalResult.result);\n }\n\n return finalResult;\n }\n\n private executeField(\n object: StoreObject,\n typename: string | void,\n field: FieldNode,\n execContext: ExecContext,\n ): ExecResult {\n const { variableValues: variables, contextValue } = execContext;\n const fieldName = field.name.value;\n const args = argumentsObjectFromField(field, variables);\n\n const info: ExecInfo = {\n resultKey: resultKeyNameFromField(field),\n directives: getDirectiveInfoFromField(field, variables),\n };\n\n const readStoreResult = readStoreResolver(\n object,\n typename,\n fieldName,\n args,\n contextValue,\n info,\n );\n\n if (Array.isArray(readStoreResult.result)) {\n return this.combineExecResults(\n readStoreResult,\n this.executeSubSelectedArray({\n field,\n array: readStoreResult.result,\n execContext,\n }),\n );\n }\n\n // Handle all scalar types here\n if (!field.selectionSet) {\n assertSelectionSetForIdValue(field, readStoreResult.result);\n if (this.freezeResults && process.env.NODE_ENV !== 'production') {\n maybeDeepFreeze(readStoreResult);\n }\n return readStoreResult;\n }\n\n // From here down, the field has a selection set, which means it's trying to\n // query a GraphQLObjectType\n if (readStoreResult.result == null) {\n // Basically any field in a GraphQL response can be null, or missing\n return readStoreResult;\n }\n\n // Returned value is an object, and the query has a sub-selection. Recurse.\n return this.combineExecResults(\n readStoreResult,\n this.executeSelectionSet({\n selectionSet: field.selectionSet,\n rootValue: readStoreResult.result,\n execContext,\n }),\n );\n }\n\n private combineExecResults(\n ...execResults: ExecResult[]\n ): ExecResult {\n let missing: ExecResultMissingField[] | undefined;\n execResults.forEach(execResult => {\n if (execResult.missing) {\n missing = missing || [];\n missing.push(...execResult.missing);\n }\n });\n return {\n result: execResults.pop()!.result,\n missing,\n };\n }\n\n private executeSubSelectedArray({\n field,\n array,\n execContext,\n }: ExecSubSelectedArrayOptions): ExecResult {\n let missing: ExecResultMissingField[] | undefined;\n\n function handleMissing(childResult: ExecResult): T {\n if (childResult.missing) {\n missing = missing || [];\n missing.push(...childResult.missing);\n }\n\n return childResult.result;\n }\n\n array = array.map(item => {\n // null value in array\n if (item === null) {\n return null;\n }\n\n // This is a nested array, recurse\n if (Array.isArray(item)) {\n return handleMissing(this.executeSubSelectedArray({\n field,\n array: item,\n execContext,\n }));\n }\n\n // This is an object, run the selection set on it\n if (field.selectionSet) {\n return handleMissing(this.executeSelectionSet({\n selectionSet: field.selectionSet,\n rootValue: item,\n execContext,\n }));\n }\n\n assertSelectionSetForIdValue(field, item);\n\n return item;\n });\n\n if (this.freezeResults && process.env.NODE_ENV !== 'production') {\n Object.freeze(array);\n }\n\n return { result: array, missing };\n }\n}\n\nfunction assertSelectionSetForIdValue(\n field: FieldNode,\n value: any,\n) {\n if (!field.selectionSet && isIdValue(value)) {\n throw new InvariantError(\n `Missing selection set for object of type ${\n value.typename\n } returned for query field ${field.name.value}`\n );\n }\n}\n\nfunction defaultFragmentMatcher() {\n return true;\n}\n\nexport function assertIdValue(idValue: IdValue) {\n invariant(isIdValue(idValue), `\\\nEncountered a sub-selection on the query, but the store doesn't have \\\nan object reference. This should never happen during normal use unless you have custom code \\\nthat is directly manipulating the store; please file an issue.`);\n}\n\nfunction readStoreResolver(\n object: StoreObject,\n typename: string | void,\n fieldName: string,\n args: any,\n context: ReadStoreContext,\n { resultKey, directives }: ExecInfo,\n): ExecResult {\n let storeKeyName = fieldName;\n if (args || directives) {\n // We happen to know here that getStoreKeyName returns its first\n // argument unmodified if there are no args or directives, so we can\n // avoid calling the function at all in that case, as a small but\n // important optimization to this frequently executed code.\n storeKeyName = getStoreKeyName(storeKeyName, args, directives);\n }\n\n let fieldValue: StoreValue | void = void 0;\n\n if (object) {\n fieldValue = object[storeKeyName];\n\n if (\n typeof fieldValue === 'undefined' &&\n context.cacheRedirects &&\n typeof typename === 'string'\n ) {\n // Look for the type in the custom resolver map\n const type = context.cacheRedirects[typename];\n if (type) {\n // Look for the field in the custom resolver map\n const resolver = type[fieldName];\n if (resolver) {\n fieldValue = resolver(object, args, {\n getCacheKey(storeObj: StoreObject) {\n const id = context.dataIdFromObject!(storeObj);\n return id && toIdValue({\n id,\n typename: storeObj.__typename,\n });\n },\n });\n }\n }\n }\n }\n\n if (typeof fieldValue === 'undefined') {\n return {\n result: fieldValue,\n missing: [{\n object,\n fieldName: storeKeyName,\n tolerable: false,\n }],\n };\n }\n\n if (isJsonValue(fieldValue)) {\n fieldValue = fieldValue.json;\n }\n\n return {\n result: fieldValue,\n };\n}\n","import { NormalizedCache, NormalizedCacheObject, StoreObject } from './types';\n\nexport class ObjectCache implements NormalizedCache {\n constructor(protected data: NormalizedCacheObject = Object.create(null)) {}\n\n public toObject() {\n return this.data;\n }\n\n public get(dataId: string) {\n return this.data[dataId]!;\n }\n\n public set(dataId: string, value: StoreObject) {\n this.data[dataId] = value;\n }\n\n public delete(dataId: string) {\n this.data[dataId] = void 0;\n }\n\n public clear() {\n this.data = Object.create(null);\n }\n\n public replace(newData: NormalizedCacheObject) {\n this.data = newData || Object.create(null);\n }\n}\n\nexport function defaultNormalizedCacheFactory(\n seed?: NormalizedCacheObject,\n): NormalizedCache {\n return new ObjectCache(seed);\n}\n","import {\n SelectionSetNode,\n FieldNode,\n DocumentNode,\n InlineFragmentNode,\n FragmentDefinitionNode,\n} from 'graphql';\nimport { FragmentMatcher } from './readFromStore';\n\nimport {\n assign,\n createFragmentMap,\n FragmentMap,\n getDefaultValues,\n getFragmentDefinitions,\n getOperationDefinition,\n IdValue,\n isField,\n isIdValue,\n isInlineFragment,\n isProduction,\n resultKeyNameFromField,\n shouldInclude,\n storeKeyNameFromField,\n StoreValue,\n toIdValue,\n isEqual,\n} from 'apollo-utilities';\n\nimport { invariant } from 'ts-invariant';\n\nimport { ObjectCache } from './objectCache';\nimport { defaultNormalizedCacheFactory } from './depTrackingCache';\n\nimport {\n IdGetter,\n NormalizedCache,\n ReadStoreContext,\n StoreObject,\n} from './types';\n\nexport class WriteError extends Error {\n public type = 'WriteError';\n}\n\nexport function enhanceErrorWithDocument(error: Error, document: DocumentNode) {\n // XXX A bit hacky maybe ...\n const enhancedError = new WriteError(\n `Error writing result to store for query:\\n ${JSON.stringify(document)}`,\n );\n enhancedError.message += '\\n' + error.message;\n enhancedError.stack = error.stack;\n return enhancedError;\n}\n\nexport type WriteContext = {\n readonly store: NormalizedCache;\n readonly processedData?: { [x: string]: FieldNode[] };\n readonly variables?: any;\n readonly dataIdFromObject?: IdGetter;\n readonly fragmentMap?: FragmentMap;\n readonly fragmentMatcherFunction?: FragmentMatcher;\n};\n\nexport class StoreWriter {\n /**\n * Writes the result of a query to the store.\n *\n * @param result The result object returned for the query document.\n *\n * @param query The query document whose result we are writing to the store.\n *\n * @param store The {@link NormalizedCache} used by Apollo for the `data` portion of the store.\n *\n * @param variables A map from the name of a variable to its value. These variables can be\n * referenced by the query document.\n *\n * @param dataIdFromObject A function that returns an object identifier given a particular result\n * object. See the store documentation for details and an example of this function.\n *\n * @param fragmentMatcherFunction A function to use for matching fragment conditions in GraphQL documents\n */\n public writeQueryToStore({\n query,\n result,\n store = defaultNormalizedCacheFactory(),\n variables,\n dataIdFromObject,\n fragmentMatcherFunction,\n }: {\n query: DocumentNode;\n result: Object;\n store?: NormalizedCache;\n variables?: Object;\n dataIdFromObject?: IdGetter;\n fragmentMatcherFunction?: FragmentMatcher;\n }): NormalizedCache {\n return this.writeResultToStore({\n dataId: 'ROOT_QUERY',\n result,\n document: query,\n store,\n variables,\n dataIdFromObject,\n fragmentMatcherFunction,\n });\n }\n\n public writeResultToStore({\n dataId,\n result,\n document,\n store = defaultNormalizedCacheFactory(),\n variables,\n dataIdFromObject,\n fragmentMatcherFunction,\n }: {\n dataId: string;\n result: any;\n document: DocumentNode;\n store?: NormalizedCache;\n variables?: Object;\n dataIdFromObject?: IdGetter;\n fragmentMatcherFunction?: FragmentMatcher;\n }): NormalizedCache {\n // XXX TODO REFACTOR: this is a temporary workaround until query normalization is made to work with documents.\n const operationDefinition = getOperationDefinition(document)!;\n\n try {\n return this.writeSelectionSetToStore({\n result,\n dataId,\n selectionSet: operationDefinition.selectionSet,\n context: {\n store,\n processedData: {},\n variables: assign(\n {},\n getDefaultValues(operationDefinition),\n variables,\n ),\n dataIdFromObject,\n fragmentMap: createFragmentMap(getFragmentDefinitions(document)),\n fragmentMatcherFunction,\n },\n });\n } catch (e) {\n throw enhanceErrorWithDocument(e, document);\n }\n }\n\n public writeSelectionSetToStore({\n result,\n dataId,\n selectionSet,\n context,\n }: {\n dataId: string;\n result: any;\n selectionSet: SelectionSetNode;\n context: WriteContext;\n }): NormalizedCache {\n const { variables, store, fragmentMap } = context;\n\n selectionSet.selections.forEach(selection => {\n if (!shouldInclude(selection, variables)) {\n return;\n }\n\n if (isField(selection)) {\n const resultFieldKey: string = resultKeyNameFromField(selection);\n const value: any = result[resultFieldKey];\n\n if (typeof value !== 'undefined') {\n this.writeFieldToStore({\n dataId,\n value,\n field: selection,\n context,\n });\n } else {\n let isDefered = false;\n let isClient = false;\n if (selection.directives && selection.directives.length) {\n // If this is a defered field we don't need to throw / warn.\n isDefered = selection.directives.some(\n directive => directive.name && directive.name.value === 'defer',\n );\n\n // When using the @client directive, it might be desirable in\n // some cases to want to write a selection set to the store,\n // without having all of the selection set values available.\n // This is because the @client field values might have already\n // been written to the cache separately (e.g. via Apollo\n // Cache's `writeData` capabilities). Because of this, we'll\n // skip the missing field warning for fields with @client\n // directives.\n isClient = selection.directives.some(\n directive => directive.name && directive.name.value === 'client',\n );\n }\n\n if (!isDefered && !isClient && context.fragmentMatcherFunction) {\n // XXX We'd like to throw an error, but for backwards compatibility's sake\n // we just print a warning for the time being.\n //throw new WriteError(`Missing field ${resultFieldKey} in ${JSON.stringify(result, null, 2).substring(0, 100)}`);\n invariant.warn(\n `Missing field ${resultFieldKey} in ${JSON.stringify(\n result,\n null,\n 2,\n ).substring(0, 100)}`,\n );\n }\n }\n } else {\n // This is not a field, so it must be a fragment, either inline or named\n let fragment: InlineFragmentNode | FragmentDefinitionNode;\n\n if (isInlineFragment(selection)) {\n fragment = selection;\n } else {\n // Named fragment\n fragment = (fragmentMap || {})[selection.name.value];\n invariant(fragment, `No fragment named ${selection.name.value}.`);\n }\n\n let matches = true;\n if (context.fragmentMatcherFunction && fragment.typeCondition) {\n // TODO we need to rewrite the fragment matchers for this to work properly and efficiently\n // Right now we have to pretend that we're passing in an idValue and that there's a store\n // on the context.\n const id = dataId || 'self';\n const idValue = toIdValue({ id, typename: undefined });\n const fakeContext: ReadStoreContext = {\n // NOTE: fakeContext always uses ObjectCache\n // since this is only to ensure the return value of 'matches'\n store: new ObjectCache({ [id]: result }),\n cacheRedirects: {},\n };\n const match = context.fragmentMatcherFunction(\n idValue,\n fragment.typeCondition.name.value,\n fakeContext,\n );\n if (!isProduction() && match === 'heuristic') {\n invariant.error('WARNING: heuristic fragment matching going on!');\n }\n matches = !!match;\n }\n\n if (matches) {\n this.writeSelectionSetToStore({\n result,\n selectionSet: fragment.selectionSet,\n dataId,\n context,\n });\n }\n }\n });\n\n return store;\n }\n\n private writeFieldToStore({\n field,\n value,\n dataId,\n context,\n }: {\n field: FieldNode;\n value: any;\n dataId: string;\n context: WriteContext;\n }) {\n const { variables, dataIdFromObject, store } = context;\n\n let storeValue: StoreValue;\n let storeObject: StoreObject;\n\n const storeFieldName: string = storeKeyNameFromField(field, variables);\n\n // If this is a scalar value...\n if (!field.selectionSet || value === null) {\n storeValue =\n value != null && typeof value === 'object'\n ? // If the scalar value is a JSON blob, we have to \"escape\" it so it can’t pretend to be\n // an id.\n { type: 'json', json: value }\n : // Otherwise, just store the scalar directly in the store.\n value;\n } else if (Array.isArray(value)) {\n const generatedId = `${dataId}.${storeFieldName}`;\n\n storeValue = this.processArrayValue(\n value,\n generatedId,\n field.selectionSet,\n context,\n );\n } else {\n // It's an object\n let valueDataId = `${dataId}.${storeFieldName}`;\n let generated = true;\n\n // We only prepend the '$' if the valueDataId isn't already a generated\n // id.\n if (!isGeneratedId(valueDataId)) {\n valueDataId = '$' + valueDataId;\n }\n\n if (dataIdFromObject) {\n const semanticId = dataIdFromObject(value);\n\n // We throw an error if the first character of the id is '$. This is\n // because we use that character to designate an Apollo-generated id\n // and we use the distinction between user-desiginated and application-provided\n // ids when managing overwrites.\n invariant(\n !semanticId || !isGeneratedId(semanticId),\n 'IDs returned by dataIdFromObject cannot begin with the \"$\" character.',\n );\n\n if (\n semanticId ||\n (typeof semanticId === 'number' && semanticId === 0)\n ) {\n valueDataId = semanticId;\n generated = false;\n }\n }\n\n if (!isDataProcessed(valueDataId, field, context.processedData)) {\n this.writeSelectionSetToStore({\n dataId: valueDataId,\n result: value,\n selectionSet: field.selectionSet,\n context,\n });\n }\n\n // We take the id and escape it (i.e. wrap it with an enclosing object).\n // This allows us to distinguish IDs from normal scalars.\n const typename = value.__typename;\n storeValue = toIdValue({ id: valueDataId, typename }, generated);\n\n // check if there was a generated id at the location where we're\n // about to place this new id. If there was, we have to merge the\n // data from that id with the data we're about to write in the store.\n storeObject = store.get(dataId);\n const escapedId =\n storeObject && (storeObject[storeFieldName] as IdValue | undefined);\n if (escapedId !== storeValue && isIdValue(escapedId)) {\n const hadTypename = escapedId.typename !== undefined;\n const hasTypename = typename !== undefined;\n const typenameChanged =\n hadTypename && hasTypename && escapedId.typename !== typename;\n\n // If there is already a real id in the store and the current id we\n // are dealing with is generated, we throw an error.\n // One exception we allow is when the typename has changed, which occurs\n // when schema defines a union, both with and without an ID in the same place.\n // checks if we \"lost\" the read id\n invariant(\n !generated || escapedId.generated || typenameChanged,\n `Store error: the application attempted to write an object with no provided id but the store already contains an id of ${\n escapedId.id\n } for this object. The selectionSet that was trying to be written is:\\n${\n JSON.stringify(field)\n }`,\n );\n\n // checks if we \"lost\" the typename\n invariant(\n !hadTypename || hasTypename,\n `Store error: the application attempted to write an object with no provided typename but the store already contains an object with typename of ${\n escapedId.typename\n } for the object of id ${escapedId.id}. The selectionSet that was trying to be written is:\\n${\n JSON.stringify(field)\n }`,\n );\n\n if (escapedId.generated) {\n // We should only merge if it's an object of the same type,\n // otherwise we should delete the generated object\n if (typenameChanged) {\n // Only delete the generated object when the old object was\n // inlined, and the new object is not. This is indicated by\n // the old id being generated, and the new id being real.\n if (!generated) {\n store.delete(escapedId.id);\n }\n } else {\n mergeWithGenerated(escapedId.id, (storeValue as IdValue).id, store);\n }\n }\n }\n }\n\n storeObject = store.get(dataId);\n if (!storeObject || !isEqual(storeValue, storeObject[storeFieldName])) {\n store.set(dataId, {\n ...storeObject,\n [storeFieldName]: storeValue,\n });\n }\n }\n\n private processArrayValue(\n value: any[],\n generatedId: string,\n selectionSet: SelectionSetNode,\n context: WriteContext,\n ): any[] {\n return value.map((item: any, index: any) => {\n if (item === null) {\n return null;\n }\n\n let itemDataId = `${generatedId}.${index}`;\n\n if (Array.isArray(item)) {\n return this.processArrayValue(item, itemDataId, selectionSet, context);\n }\n\n let generated = true;\n\n if (context.dataIdFromObject) {\n const semanticId = context.dataIdFromObject(item);\n\n if (semanticId) {\n itemDataId = semanticId;\n generated = false;\n }\n }\n\n if (!isDataProcessed(itemDataId, selectionSet, context.processedData)) {\n this.writeSelectionSetToStore({\n dataId: itemDataId,\n result: item,\n selectionSet,\n context,\n });\n }\n\n return toIdValue(\n { id: itemDataId, typename: item.__typename },\n generated,\n );\n });\n }\n}\n\n// Checks if the id given is an id that was generated by Apollo\n// rather than by dataIdFromObject.\nfunction isGeneratedId(id: string): boolean {\n return id[0] === '$';\n}\n\nfunction mergeWithGenerated(\n generatedKey: string,\n realKey: string,\n cache: NormalizedCache,\n): boolean {\n if (generatedKey === realKey) {\n return false;\n }\n\n const generated = cache.get(generatedKey);\n const real = cache.get(realKey);\n let madeChanges = false;\n\n Object.keys(generated).forEach(key => {\n const value = generated[key];\n const realValue = real[key];\n\n if (\n isIdValue(value) &&\n isGeneratedId(value.id) &&\n isIdValue(realValue) &&\n !isEqual(value, realValue) &&\n mergeWithGenerated(value.id, realValue.id, cache)\n ) {\n madeChanges = true;\n }\n });\n\n cache.delete(generatedKey);\n const newRealValue = { ...generated, ...real };\n\n if (isEqual(newRealValue, real)) {\n return madeChanges;\n }\n\n cache.set(realKey, newRealValue);\n return true;\n}\n\nfunction isDataProcessed(\n dataId: string,\n field: FieldNode | SelectionSetNode,\n processedData?: { [x: string]: (FieldNode | SelectionSetNode)[] },\n): boolean {\n if (!processedData) {\n return false;\n }\n\n if (processedData[dataId]) {\n if (processedData[dataId].indexOf(field) >= 0) {\n return true;\n } else {\n processedData[dataId].push(field);\n }\n } else {\n processedData[dataId] = [field];\n }\n\n return false;\n}\n","// Make builtins like Map and Set safe to use with non-extensible objects.\nimport './fixPolyfills';\n\nimport { DocumentNode } from 'graphql';\n\nimport { Cache, ApolloCache, Transaction } from 'apollo-cache';\n\nimport { addTypenameToDocument, canUseWeakMap } from 'apollo-utilities';\n\nimport { wrap } from 'optimism';\n\nimport { invariant, InvariantError } from 'ts-invariant';\n\nimport { HeuristicFragmentMatcher } from './fragmentMatcher';\nimport {\n ApolloReducerConfig,\n NormalizedCache,\n NormalizedCacheObject,\n} from './types';\n\nimport { StoreReader } from './readFromStore';\nimport { StoreWriter } from './writeToStore';\nimport { DepTrackingCache } from './depTrackingCache';\nimport { KeyTrie } from 'optimism';\nimport { ObjectCache } from './objectCache';\n\nexport interface InMemoryCacheConfig extends ApolloReducerConfig {\n resultCaching?: boolean;\n freezeResults?: boolean;\n}\n\nconst defaultConfig: InMemoryCacheConfig = {\n fragmentMatcher: new HeuristicFragmentMatcher(),\n dataIdFromObject: defaultDataIdFromObject,\n addTypename: true,\n resultCaching: true,\n freezeResults: false,\n};\n\nexport function defaultDataIdFromObject(result: any): string | null {\n if (result.__typename) {\n if (result.id !== undefined) {\n return `${result.__typename}:${result.id}`;\n }\n if (result._id !== undefined) {\n return `${result.__typename}:${result._id}`;\n }\n }\n return null;\n}\n\nconst hasOwn = Object.prototype.hasOwnProperty;\n\nexport class OptimisticCacheLayer extends ObjectCache {\n constructor(\n public readonly optimisticId: string,\n // OptimisticCacheLayer objects always wrap some other parent cache, so\n // this.parent should never be null.\n public readonly parent: NormalizedCache,\n public readonly transaction: Transaction,\n ) {\n super(Object.create(null));\n }\n\n public toObject(): NormalizedCacheObject {\n return {\n ...this.parent.toObject(),\n ...this.data,\n };\n }\n\n // All the other accessor methods of ObjectCache work without knowing about\n // this.parent, but the get method needs to be overridden to implement the\n // fallback this.parent.get(dataId) behavior.\n public get(dataId: string) {\n return hasOwn.call(this.data, dataId)\n ? this.data[dataId]\n : this.parent.get(dataId);\n }\n}\n\nexport class InMemoryCache extends ApolloCache {\n private data: NormalizedCache;\n private optimisticData: NormalizedCache;\n\n protected config: InMemoryCacheConfig;\n private watches = new Set();\n private addTypename: boolean;\n private typenameDocumentCache = new Map();\n private storeReader: StoreReader;\n private storeWriter: StoreWriter;\n private cacheKeyRoot = new KeyTrie(canUseWeakMap);\n\n // Set this while in a transaction to prevent broadcasts...\n // don't forget to turn it back on!\n private silenceBroadcast: boolean = false;\n\n constructor(config: InMemoryCacheConfig = {}) {\n super();\n this.config = { ...defaultConfig, ...config };\n\n // backwards compat\n if ((this.config as any).customResolvers) {\n invariant.warn(\n 'customResolvers have been renamed to cacheRedirects. Please update your config as we will be deprecating customResolvers in the next major version.',\n );\n this.config.cacheRedirects = (this.config as any).customResolvers;\n }\n\n if ((this.config as any).cacheResolvers) {\n invariant.warn(\n 'cacheResolvers have been renamed to cacheRedirects. Please update your config as we will be deprecating cacheResolvers in the next major version.',\n );\n this.config.cacheRedirects = (this.config as any).cacheResolvers;\n }\n\n this.addTypename = !!this.config.addTypename;\n\n // Passing { resultCaching: false } in the InMemoryCache constructor options\n // will completely disable dependency tracking, which will improve memory\n // usage but worsen the performance of repeated reads.\n this.data = this.config.resultCaching\n ? new DepTrackingCache()\n : new ObjectCache();\n\n // When no optimistic writes are currently active, cache.optimisticData ===\n // cache.data, so there are no additional layers on top of the actual data.\n // When an optimistic update happens, this.optimisticData will become a\n // linked list of OptimisticCacheLayer objects that terminates with the\n // original this.data cache object.\n this.optimisticData = this.data;\n\n this.storeWriter = new StoreWriter();\n this.storeReader = new StoreReader({\n cacheKeyRoot: this.cacheKeyRoot,\n freezeResults: config.freezeResults,\n });\n\n const cache = this;\n const { maybeBroadcastWatch } = cache;\n this.maybeBroadcastWatch = wrap((c: Cache.WatchOptions) => {\n return maybeBroadcastWatch.call(this, c);\n }, {\n makeCacheKey(c: Cache.WatchOptions) {\n if (c.optimistic) {\n // If we're reading optimistic data, it doesn't matter if this.data\n // is a DepTrackingCache, since it will be ignored.\n return;\n }\n\n if (c.previousResult) {\n // If a previousResult was provided, assume the caller would prefer\n // to compare the previous data to the new data to determine whether\n // to broadcast, so we should disable caching by returning here, to\n // give maybeBroadcastWatch a chance to do that comparison.\n return;\n }\n\n if (cache.data instanceof DepTrackingCache) {\n // Return a cache key (thus enabling caching) only if we're currently\n // using a data store that can track cache dependencies.\n return cache.cacheKeyRoot.lookup(\n c.query,\n JSON.stringify(c.variables),\n );\n }\n }\n });\n }\n\n public restore(data: NormalizedCacheObject): this {\n if (data) this.data.replace(data);\n return this;\n }\n\n public extract(optimistic: boolean = false): NormalizedCacheObject {\n return (optimistic ? this.optimisticData : this.data).toObject();\n }\n\n public read(options: Cache.ReadOptions): T | null {\n if (typeof options.rootId === 'string' &&\n typeof this.data.get(options.rootId) === 'undefined') {\n return null;\n }\n\n const { fragmentMatcher } = this.config;\n const fragmentMatcherFunction = fragmentMatcher && fragmentMatcher.match;\n\n return this.storeReader.readQueryFromStore({\n store: options.optimistic ? this.optimisticData : this.data,\n query: this.transformDocument(options.query),\n variables: options.variables,\n rootId: options.rootId,\n fragmentMatcherFunction,\n previousResult: options.previousResult,\n config: this.config,\n }) || null;\n }\n\n public write(write: Cache.WriteOptions): void {\n const { fragmentMatcher } = this.config;\n const fragmentMatcherFunction = fragmentMatcher && fragmentMatcher.match;\n\n this.storeWriter.writeResultToStore({\n dataId: write.dataId,\n result: write.result,\n variables: write.variables,\n document: this.transformDocument(write.query),\n store: this.data,\n dataIdFromObject: this.config.dataIdFromObject,\n fragmentMatcherFunction,\n });\n\n this.broadcastWatches();\n }\n\n public diff(query: Cache.DiffOptions): Cache.DiffResult {\n const { fragmentMatcher } = this.config;\n const fragmentMatcherFunction = fragmentMatcher && fragmentMatcher.match;\n\n return this.storeReader.diffQueryAgainstStore({\n store: query.optimistic ? this.optimisticData : this.data,\n query: this.transformDocument(query.query),\n variables: query.variables,\n returnPartialData: query.returnPartialData,\n previousResult: query.previousResult,\n fragmentMatcherFunction,\n config: this.config,\n });\n }\n\n public watch(watch: Cache.WatchOptions): () => void {\n this.watches.add(watch);\n\n return () => {\n this.watches.delete(watch);\n };\n }\n\n public evict(query: Cache.EvictOptions): Cache.EvictionResult {\n throw new InvariantError(`eviction is not implemented on InMemory Cache`);\n }\n\n public reset(): Promise {\n this.data.clear();\n this.broadcastWatches();\n\n return Promise.resolve();\n }\n\n public removeOptimistic(idToRemove: string) {\n const toReapply: OptimisticCacheLayer[] = [];\n let removedCount = 0;\n let layer = this.optimisticData;\n\n while (layer instanceof OptimisticCacheLayer) {\n if (layer.optimisticId === idToRemove) {\n ++removedCount;\n } else {\n toReapply.push(layer);\n }\n layer = layer.parent;\n }\n\n if (removedCount > 0) {\n // Reset this.optimisticData to the first non-OptimisticCacheLayer object,\n // which is almost certainly this.data.\n this.optimisticData = layer;\n\n // Reapply the layers whose optimistic IDs do not match the removed ID.\n while (toReapply.length > 0) {\n const layer = toReapply.pop()!;\n this.performTransaction(layer.transaction, layer.optimisticId);\n }\n\n this.broadcastWatches();\n }\n }\n\n public performTransaction(\n transaction: Transaction,\n // This parameter is not part of the performTransaction signature inherited\n // from the ApolloCache abstract class, but it's useful because it saves us\n // from duplicating this implementation in recordOptimisticTransaction.\n optimisticId?: string,\n ) {\n const { data, silenceBroadcast } = this;\n this.silenceBroadcast = true;\n\n if (typeof optimisticId === 'string') {\n // Add a new optimistic layer and temporarily make this.data refer to\n // that layer for the duration of the transaction.\n this.data = this.optimisticData = new OptimisticCacheLayer(\n // Note that there can be multiple layers with the same optimisticId.\n // When removeOptimistic(id) is called for that id, all matching layers\n // will be removed, and the remaining layers will be reapplied.\n optimisticId,\n this.optimisticData,\n transaction,\n );\n }\n\n try {\n transaction(this);\n } finally {\n this.silenceBroadcast = silenceBroadcast;\n this.data = data;\n }\n\n // This broadcast does nothing if this.silenceBroadcast is true.\n this.broadcastWatches();\n }\n\n public recordOptimisticTransaction(\n transaction: Transaction,\n id: string,\n ) {\n return this.performTransaction(transaction, id);\n }\n\n public transformDocument(document: DocumentNode): DocumentNode {\n if (this.addTypename) {\n let result = this.typenameDocumentCache.get(document);\n if (!result) {\n result = addTypenameToDocument(document);\n this.typenameDocumentCache.set(document, result);\n // If someone calls transformDocument and then mistakenly passes the\n // result back into an API that also calls transformDocument, make sure\n // we don't keep creating new query documents.\n this.typenameDocumentCache.set(result, result);\n }\n return result;\n }\n return document;\n }\n\n protected broadcastWatches() {\n if (!this.silenceBroadcast) {\n this.watches.forEach(c => this.maybeBroadcastWatch(c));\n }\n }\n\n // This method is wrapped in the constructor so that it will be called only\n // if the data that would be broadcast has changed.\n private maybeBroadcastWatch(c: Cache.WatchOptions) {\n c.callback(\n this.diff({\n query: c.query,\n variables: c.variables,\n previousResult: c.previousResult && c.previousResult(),\n optimistic: c.optimistic,\n }),\n );\n }\n}\n","import { visit } from \"./visitor.mjs\";\nimport { printBlockString } from \"./blockString.mjs\";\n/**\n * Converts an AST into a string, using one set of reasonable\n * formatting rules.\n */\n\nexport function print(ast) {\n return visit(ast, {\n leave: printDocASTReducer\n });\n} // TODO: provide better type coverage in future\n\nvar printDocASTReducer = {\n Name: function Name(node) {\n return node.value;\n },\n Variable: function Variable(node) {\n return '$' + node.name;\n },\n // Document\n Document: function Document(node) {\n return join(node.definitions, '\\n\\n') + '\\n';\n },\n OperationDefinition: function OperationDefinition(node) {\n var op = node.operation;\n var name = node.name;\n var varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');\n var directives = join(node.directives, ' ');\n var selectionSet = node.selectionSet; // Anonymous queries with no directives or variable definitions can use\n // the query short form.\n\n return !name && !directives && !varDefs && op === 'query' ? selectionSet : join([op, join([name, varDefs]), directives, selectionSet], ' ');\n },\n VariableDefinition: function VariableDefinition(_ref) {\n var variable = _ref.variable,\n type = _ref.type,\n defaultValue = _ref.defaultValue,\n directives = _ref.directives;\n return variable + ': ' + type + wrap(' = ', defaultValue) + wrap(' ', join(directives, ' '));\n },\n SelectionSet: function SelectionSet(_ref2) {\n var selections = _ref2.selections;\n return block(selections);\n },\n Field: function Field(_ref3) {\n var alias = _ref3.alias,\n name = _ref3.name,\n args = _ref3.arguments,\n directives = _ref3.directives,\n selectionSet = _ref3.selectionSet;\n return join([wrap('', alias, ': ') + name + wrap('(', join(args, ', '), ')'), join(directives, ' '), selectionSet], ' ');\n },\n Argument: function Argument(_ref4) {\n var name = _ref4.name,\n value = _ref4.value;\n return name + ': ' + value;\n },\n // Fragments\n FragmentSpread: function FragmentSpread(_ref5) {\n var name = _ref5.name,\n directives = _ref5.directives;\n return '...' + name + wrap(' ', join(directives, ' '));\n },\n InlineFragment: function InlineFragment(_ref6) {\n var typeCondition = _ref6.typeCondition,\n directives = _ref6.directives,\n selectionSet = _ref6.selectionSet;\n return join(['...', wrap('on ', typeCondition), join(directives, ' '), selectionSet], ' ');\n },\n FragmentDefinition: function FragmentDefinition(_ref7) {\n var name = _ref7.name,\n typeCondition = _ref7.typeCondition,\n variableDefinitions = _ref7.variableDefinitions,\n directives = _ref7.directives,\n selectionSet = _ref7.selectionSet;\n return (// Note: fragment variable definitions are experimental and may be changed\n // or removed in the future.\n \"fragment \".concat(name).concat(wrap('(', join(variableDefinitions, ', '), ')'), \" \") + \"on \".concat(typeCondition, \" \").concat(wrap('', join(directives, ' '), ' ')) + selectionSet\n );\n },\n // Value\n IntValue: function IntValue(_ref8) {\n var value = _ref8.value;\n return value;\n },\n FloatValue: function FloatValue(_ref9) {\n var value = _ref9.value;\n return value;\n },\n StringValue: function StringValue(_ref10, key) {\n var value = _ref10.value,\n isBlockString = _ref10.block;\n return isBlockString ? printBlockString(value, key === 'description' ? '' : ' ') : JSON.stringify(value);\n },\n BooleanValue: function BooleanValue(_ref11) {\n var value = _ref11.value;\n return value ? 'true' : 'false';\n },\n NullValue: function NullValue() {\n return 'null';\n },\n EnumValue: function EnumValue(_ref12) {\n var value = _ref12.value;\n return value;\n },\n ListValue: function ListValue(_ref13) {\n var values = _ref13.values;\n return '[' + join(values, ', ') + ']';\n },\n ObjectValue: function ObjectValue(_ref14) {\n var fields = _ref14.fields;\n return '{' + join(fields, ', ') + '}';\n },\n ObjectField: function ObjectField(_ref15) {\n var name = _ref15.name,\n value = _ref15.value;\n return name + ': ' + value;\n },\n // Directive\n Directive: function Directive(_ref16) {\n var name = _ref16.name,\n args = _ref16.arguments;\n return '@' + name + wrap('(', join(args, ', '), ')');\n },\n // Type\n NamedType: function NamedType(_ref17) {\n var name = _ref17.name;\n return name;\n },\n ListType: function ListType(_ref18) {\n var type = _ref18.type;\n return '[' + type + ']';\n },\n NonNullType: function NonNullType(_ref19) {\n var type = _ref19.type;\n return type + '!';\n },\n // Type System Definitions\n SchemaDefinition: addDescription(function (_ref20) {\n var directives = _ref20.directives,\n operationTypes = _ref20.operationTypes;\n return join(['schema', join(directives, ' '), block(operationTypes)], ' ');\n }),\n OperationTypeDefinition: function OperationTypeDefinition(_ref21) {\n var operation = _ref21.operation,\n type = _ref21.type;\n return operation + ': ' + type;\n },\n ScalarTypeDefinition: addDescription(function (_ref22) {\n var name = _ref22.name,\n directives = _ref22.directives;\n return join(['scalar', name, join(directives, ' ')], ' ');\n }),\n ObjectTypeDefinition: addDescription(function (_ref23) {\n var name = _ref23.name,\n interfaces = _ref23.interfaces,\n directives = _ref23.directives,\n fields = _ref23.fields;\n return join(['type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n }),\n FieldDefinition: addDescription(function (_ref24) {\n var name = _ref24.name,\n args = _ref24.arguments,\n type = _ref24.type,\n directives = _ref24.directives;\n return name + (hasMultilineItems(args) ? wrap('(\\n', indent(join(args, '\\n')), '\\n)') : wrap('(', join(args, ', '), ')')) + ': ' + type + wrap(' ', join(directives, ' '));\n }),\n InputValueDefinition: addDescription(function (_ref25) {\n var name = _ref25.name,\n type = _ref25.type,\n defaultValue = _ref25.defaultValue,\n directives = _ref25.directives;\n return join([name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')], ' ');\n }),\n InterfaceTypeDefinition: addDescription(function (_ref26) {\n var name = _ref26.name,\n interfaces = _ref26.interfaces,\n directives = _ref26.directives,\n fields = _ref26.fields;\n return join(['interface', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n }),\n UnionTypeDefinition: addDescription(function (_ref27) {\n var name = _ref27.name,\n directives = _ref27.directives,\n types = _ref27.types;\n return join(['union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');\n }),\n EnumTypeDefinition: addDescription(function (_ref28) {\n var name = _ref28.name,\n directives = _ref28.directives,\n values = _ref28.values;\n return join(['enum', name, join(directives, ' '), block(values)], ' ');\n }),\n EnumValueDefinition: addDescription(function (_ref29) {\n var name = _ref29.name,\n directives = _ref29.directives;\n return join([name, join(directives, ' ')], ' ');\n }),\n InputObjectTypeDefinition: addDescription(function (_ref30) {\n var name = _ref30.name,\n directives = _ref30.directives,\n fields = _ref30.fields;\n return join(['input', name, join(directives, ' '), block(fields)], ' ');\n }),\n DirectiveDefinition: addDescription(function (_ref31) {\n var name = _ref31.name,\n args = _ref31.arguments,\n repeatable = _ref31.repeatable,\n locations = _ref31.locations;\n return 'directive @' + name + (hasMultilineItems(args) ? wrap('(\\n', indent(join(args, '\\n')), '\\n)') : wrap('(', join(args, ', '), ')')) + (repeatable ? ' repeatable' : '') + ' on ' + join(locations, ' | ');\n }),\n SchemaExtension: function SchemaExtension(_ref32) {\n var directives = _ref32.directives,\n operationTypes = _ref32.operationTypes;\n return join(['extend schema', join(directives, ' '), block(operationTypes)], ' ');\n },\n ScalarTypeExtension: function ScalarTypeExtension(_ref33) {\n var name = _ref33.name,\n directives = _ref33.directives;\n return join(['extend scalar', name, join(directives, ' ')], ' ');\n },\n ObjectTypeExtension: function ObjectTypeExtension(_ref34) {\n var name = _ref34.name,\n interfaces = _ref34.interfaces,\n directives = _ref34.directives,\n fields = _ref34.fields;\n return join(['extend type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n },\n InterfaceTypeExtension: function InterfaceTypeExtension(_ref35) {\n var name = _ref35.name,\n interfaces = _ref35.interfaces,\n directives = _ref35.directives,\n fields = _ref35.fields;\n return join(['extend interface', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n },\n UnionTypeExtension: function UnionTypeExtension(_ref36) {\n var name = _ref36.name,\n directives = _ref36.directives,\n types = _ref36.types;\n return join(['extend union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');\n },\n EnumTypeExtension: function EnumTypeExtension(_ref37) {\n var name = _ref37.name,\n directives = _ref37.directives,\n values = _ref37.values;\n return join(['extend enum', name, join(directives, ' '), block(values)], ' ');\n },\n InputObjectTypeExtension: function InputObjectTypeExtension(_ref38) {\n var name = _ref38.name,\n directives = _ref38.directives,\n fields = _ref38.fields;\n return join(['extend input', name, join(directives, ' '), block(fields)], ' ');\n }\n};\n\nfunction addDescription(cb) {\n return function (node) {\n return join([node.description, cb(node)], '\\n');\n };\n}\n/**\n * Given maybeArray, print an empty string if it is null or empty, otherwise\n * print all items together separated by separator if provided\n */\n\n\nfunction join(maybeArray) {\n var _maybeArray$filter$jo;\n\n var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return (_maybeArray$filter$jo = maybeArray === null || maybeArray === void 0 ? void 0 : maybeArray.filter(function (x) {\n return x;\n }).join(separator)) !== null && _maybeArray$filter$jo !== void 0 ? _maybeArray$filter$jo : '';\n}\n/**\n * Given array, print each item on its own line, wrapped in an\n * indented \"{ }\" block.\n */\n\n\nfunction block(array) {\n return array && array.length !== 0 ? '{\\n' + indent(join(array, '\\n')) + '\\n}' : '';\n}\n/**\n * If maybeString is not null or empty, then wrap with start and end, otherwise\n * print an empty string.\n */\n\n\nfunction wrap(start, maybeString) {\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n return maybeString ? start + maybeString + end : '';\n}\n\nfunction indent(maybeString) {\n return maybeString && ' ' + maybeString.replace(/\\n/g, '\\n ');\n}\n\nfunction isMultiline(string) {\n return string.indexOf('\\n') !== -1;\n}\n\nfunction hasMultilineItems(maybeArray) {\n return maybeArray && maybeArray.some(isMultiline);\n}\n","/* tslint:disable */\n\nimport { ApolloLink, Observable, RequestHandler, fromError } from 'apollo-link';\nimport {\n serializeFetchParameter,\n selectURI,\n parseAndCheckHttpResponse,\n checkFetcher,\n selectHttpOptionsAndBody,\n createSignalIfSupported,\n fallbackHttpConfig,\n Body,\n HttpOptions,\n UriFunction as _UriFunction,\n} from 'apollo-link-http-common';\nimport { DefinitionNode } from 'graphql';\n\nexport namespace HttpLink {\n //TODO Would much rather be able to export directly\n export interface UriFunction extends _UriFunction {}\n export interface Options extends HttpOptions {\n /**\n * If set to true, use the HTTP GET method for query operations. Mutations\n * will still use the method specified in fetchOptions.method (which defaults\n * to POST).\n */\n useGETForQueries?: boolean;\n }\n}\n\n// For backwards compatibility.\nexport import FetchOptions = HttpLink.Options;\nexport import UriFunction = HttpLink.UriFunction;\n\nexport const createHttpLink = (linkOptions: HttpLink.Options = {}) => {\n let {\n uri = '/graphql',\n // use default global fetch if nothing passed in\n fetch: fetcher,\n includeExtensions,\n useGETForQueries,\n ...requestOptions\n } = linkOptions;\n\n // dev warnings to ensure fetch is present\n checkFetcher(fetcher);\n\n //fetcher is set here rather than the destructuring to ensure fetch is\n //declared before referencing it. Reference in the destructuring would cause\n //a ReferenceError\n if (!fetcher) {\n fetcher = fetch;\n }\n\n const linkConfig = {\n http: { includeExtensions },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers,\n };\n\n return new ApolloLink(operation => {\n let chosenURI = selectURI(operation, uri);\n\n const context = operation.getContext();\n\n // `apollographql-client-*` headers are automatically set if a\n // `clientAwareness` object is found in the context. These headers are\n // set first, followed by the rest of the headers pulled from\n // `context.headers`. If desired, `apollographql-client-*` headers set by\n // the `clientAwareness` object can be overridden by\n // `apollographql-client-*` headers set in `context.headers`.\n const clientAwarenessHeaders = {};\n if (context.clientAwareness) {\n const { name, version } = context.clientAwareness;\n if (name) {\n clientAwarenessHeaders['apollographql-client-name'] = name;\n }\n if (version) {\n clientAwarenessHeaders['apollographql-client-version'] = version;\n }\n }\n\n const contextHeaders = { ...clientAwarenessHeaders, ...context.headers };\n\n const contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: contextHeaders,\n };\n\n //uses fallback, link, and then context to build options\n const { options, body } = selectHttpOptionsAndBody(\n operation,\n fallbackHttpConfig,\n linkConfig,\n contextConfig,\n );\n\n let controller;\n if (!(options as any).signal) {\n const { controller: _controller, signal } = createSignalIfSupported();\n controller = _controller;\n if (controller) (options as any).signal = signal;\n }\n\n // If requested, set method to GET if there are no mutations.\n const definitionIsMutation = (d: DefinitionNode) => {\n return d.kind === 'OperationDefinition' && d.operation === 'mutation';\n };\n if (\n useGETForQueries &&\n !operation.query.definitions.some(definitionIsMutation)\n ) {\n options.method = 'GET';\n }\n\n if (options.method === 'GET') {\n const { newURI, parseError } = rewriteURIForGET(chosenURI, body);\n if (parseError) {\n return fromError(parseError);\n }\n chosenURI = newURI;\n } else {\n try {\n (options as any).body = serializeFetchParameter(body, 'Payload');\n } catch (parseError) {\n return fromError(parseError);\n }\n }\n\n return new Observable(observer => {\n fetcher(chosenURI, options)\n .then(response => {\n operation.setContext({ response });\n return response;\n })\n .then(parseAndCheckHttpResponse(operation))\n .then(result => {\n // we have data and can send it to back up the link chain\n observer.next(result);\n observer.complete();\n return result;\n })\n .catch(err => {\n // fetch was cancelled so it's already been cleaned up in the unsubscribe\n if (err.name === 'AbortError') return;\n // if it is a network error, BUT there is graphql result info\n // fire the next observer before calling error\n // this gives apollo-client (and react-apollo) the `graphqlErrors` and `networErrors`\n // to pass to UI\n // this should only happen if we *also* have data as part of the response key per\n // the spec\n if (err.result && err.result.errors && err.result.data) {\n // if we don't call next, the UI can only show networkError because AC didn't\n // get any graphqlErrors\n // this is graphql execution result info (i.e errors and possibly data)\n // this is because there is no formal spec how errors should translate to\n // http status codes. So an auth error (401) could have both data\n // from a public field, errors from a private field, and a status of 401\n // {\n // user { // this will have errors\n // firstName\n // }\n // products { // this is public so will have data\n // cost\n // }\n // }\n //\n // the result of above *could* look like this:\n // {\n // data: { products: [{ cost: \"$10\" }] },\n // errors: [{\n // message: 'your session has timed out',\n // path: []\n // }]\n // }\n // status code of above would be a 401\n // in the UI you want to show data where you can, errors as data where you can\n // and use correct http status codes\n observer.next(err.result);\n }\n observer.error(err);\n });\n\n return () => {\n // XXX support canceling this request\n // https://developers.google.com/web/updates/2017/09/abortable-fetch\n if (controller) controller.abort();\n };\n });\n });\n};\n\n// For GET operations, returns the given URI rewritten with parameters, or a\n// parse error.\nfunction rewriteURIForGET(chosenURI: string, body: Body) {\n // Implement the standard HTTP GET serialization, plus 'extensions'. Note\n // the extra level of JSON serialization!\n const queryParams = [];\n const addQueryParam = (key: string, value: string) => {\n queryParams.push(`${key}=${encodeURIComponent(value)}`);\n };\n\n if ('query' in body) {\n addQueryParam('query', body.query);\n }\n if (body.operationName) {\n addQueryParam('operationName', body.operationName);\n }\n if (body.variables) {\n let serializedVariables;\n try {\n serializedVariables = serializeFetchParameter(\n body.variables,\n 'Variables map',\n );\n } catch (parseError) {\n return { parseError };\n }\n addQueryParam('variables', serializedVariables);\n }\n if (body.extensions) {\n let serializedExtensions;\n try {\n serializedExtensions = serializeFetchParameter(\n body.extensions,\n 'Extensions map',\n );\n } catch (parseError) {\n return { parseError };\n }\n addQueryParam('extensions', serializedExtensions);\n }\n\n // Reconstruct the URI with added query params.\n // XXX This assumes that the URI is well-formed and that it doesn't\n // already contain any of these query params. We could instead use the\n // URL API and take a polyfill (whatwg-url@6) for older browsers that\n // don't support URLSearchParams. Note that some browsers (and\n // versions of whatwg-url) support URL but not URLSearchParams!\n let fragment = '',\n preFragment = chosenURI;\n const fragmentStart = chosenURI.indexOf('#');\n if (fragmentStart !== -1) {\n fragment = chosenURI.substr(fragmentStart);\n preFragment = chosenURI.substr(0, fragmentStart);\n }\n const queryParamsPrefix = preFragment.indexOf('?') === -1 ? '?' : '&';\n const newURI =\n preFragment + queryParamsPrefix + queryParams.join('&') + fragment;\n return { newURI };\n}\n\nexport class HttpLink extends ApolloLink {\n public requester: RequestHandler;\n constructor(opts?: HttpLink.Options) {\n super(createHttpLink(opts).request);\n }\n}\n","/** @license React v16.13.1\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 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) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Observable = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// === Symbol Support ===\nvar hasSymbols = function () {\n return typeof Symbol === 'function';\n};\n\nvar hasSymbol = function (name) {\n return hasSymbols() && Boolean(Symbol[name]);\n};\n\nvar getSymbol = function (name) {\n return hasSymbol(name) ? Symbol[name] : '@@' + name;\n};\n\nif (hasSymbols() && !hasSymbol('observable')) {\n Symbol.observable = Symbol('observable');\n}\n\nvar SymbolIterator = getSymbol('iterator');\nvar SymbolObservable = getSymbol('observable');\nvar SymbolSpecies = getSymbol('species'); // === Abstract Operations ===\n\nfunction getMethod(obj, key) {\n var value = obj[key];\n if (value == null) return undefined;\n if (typeof value !== 'function') throw new TypeError(value + ' is not a function');\n return value;\n}\n\nfunction getSpecies(obj) {\n var ctor = obj.constructor;\n\n if (ctor !== undefined) {\n ctor = ctor[SymbolSpecies];\n\n if (ctor === null) {\n ctor = undefined;\n }\n }\n\n return ctor !== undefined ? ctor : Observable;\n}\n\nfunction isObservable(x) {\n return x instanceof Observable; // SPEC: Brand check\n}\n\nfunction hostReportError(e) {\n if (hostReportError.log) {\n hostReportError.log(e);\n } else {\n setTimeout(function () {\n throw e;\n });\n }\n}\n\nfunction enqueue(fn) {\n Promise.resolve().then(function () {\n try {\n fn();\n } catch (e) {\n hostReportError(e);\n }\n });\n}\n\nfunction cleanupSubscription(subscription) {\n var cleanup = subscription._cleanup;\n if (cleanup === undefined) return;\n subscription._cleanup = undefined;\n\n if (!cleanup) {\n return;\n }\n\n try {\n if (typeof cleanup === 'function') {\n cleanup();\n } else {\n var unsubscribe = getMethod(cleanup, 'unsubscribe');\n\n if (unsubscribe) {\n unsubscribe.call(cleanup);\n }\n }\n } catch (e) {\n hostReportError(e);\n }\n}\n\nfunction closeSubscription(subscription) {\n subscription._observer = undefined;\n subscription._queue = undefined;\n subscription._state = 'closed';\n}\n\nfunction flushSubscription(subscription) {\n var queue = subscription._queue;\n\n if (!queue) {\n return;\n }\n\n subscription._queue = undefined;\n subscription._state = 'ready';\n\n for (var i = 0; i < queue.length; ++i) {\n notifySubscription(subscription, queue[i].type, queue[i].value);\n if (subscription._state === 'closed') break;\n }\n}\n\nfunction notifySubscription(subscription, type, value) {\n subscription._state = 'running';\n var observer = subscription._observer;\n\n try {\n var m = getMethod(observer, type);\n\n switch (type) {\n case 'next':\n if (m) m.call(observer, value);\n break;\n\n case 'error':\n closeSubscription(subscription);\n if (m) m.call(observer, value);else throw value;\n break;\n\n case 'complete':\n closeSubscription(subscription);\n if (m) m.call(observer);\n break;\n }\n } catch (e) {\n hostReportError(e);\n }\n\n if (subscription._state === 'closed') cleanupSubscription(subscription);else if (subscription._state === 'running') subscription._state = 'ready';\n}\n\nfunction onNotify(subscription, type, value) {\n if (subscription._state === 'closed') return;\n\n if (subscription._state === 'buffering') {\n subscription._queue.push({\n type: type,\n value: value\n });\n\n return;\n }\n\n if (subscription._state !== 'ready') {\n subscription._state = 'buffering';\n subscription._queue = [{\n type: type,\n value: value\n }];\n enqueue(function () {\n return flushSubscription(subscription);\n });\n return;\n }\n\n notifySubscription(subscription, type, value);\n}\n\nvar Subscription =\n/*#__PURE__*/\nfunction () {\n function Subscription(observer, subscriber) {\n _classCallCheck(this, Subscription);\n\n // ASSERT: observer is an object\n // ASSERT: subscriber is callable\n this._cleanup = undefined;\n this._observer = observer;\n this._queue = undefined;\n this._state = 'initializing';\n var subscriptionObserver = new SubscriptionObserver(this);\n\n try {\n this._cleanup = subscriber.call(undefined, subscriptionObserver);\n } catch (e) {\n subscriptionObserver.error(e);\n }\n\n if (this._state === 'initializing') this._state = 'ready';\n }\n\n _createClass(Subscription, [{\n key: \"unsubscribe\",\n value: function unsubscribe() {\n if (this._state !== 'closed') {\n closeSubscription(this);\n cleanupSubscription(this);\n }\n }\n }, {\n key: \"closed\",\n get: function () {\n return this._state === 'closed';\n }\n }]);\n\n return Subscription;\n}();\n\nvar SubscriptionObserver =\n/*#__PURE__*/\nfunction () {\n function SubscriptionObserver(subscription) {\n _classCallCheck(this, SubscriptionObserver);\n\n this._subscription = subscription;\n }\n\n _createClass(SubscriptionObserver, [{\n key: \"next\",\n value: function next(value) {\n onNotify(this._subscription, 'next', value);\n }\n }, {\n key: \"error\",\n value: function error(value) {\n onNotify(this._subscription, 'error', value);\n }\n }, {\n key: \"complete\",\n value: function complete() {\n onNotify(this._subscription, 'complete');\n }\n }, {\n key: \"closed\",\n get: function () {\n return this._subscription._state === 'closed';\n }\n }]);\n\n return SubscriptionObserver;\n}();\n\nvar Observable =\n/*#__PURE__*/\nfunction () {\n function Observable(subscriber) {\n _classCallCheck(this, Observable);\n\n if (!(this instanceof Observable)) throw new TypeError('Observable cannot be called as a function');\n if (typeof subscriber !== 'function') throw new TypeError('Observable initializer must be a function');\n this._subscriber = subscriber;\n }\n\n _createClass(Observable, [{\n key: \"subscribe\",\n value: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n observer = {\n next: observer,\n error: arguments[1],\n complete: arguments[2]\n };\n }\n\n return new Subscription(observer, this._subscriber);\n }\n }, {\n key: \"forEach\",\n value: function forEach(fn) {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n if (typeof fn !== 'function') {\n reject(new TypeError(fn + ' is not a function'));\n return;\n }\n\n function done() {\n subscription.unsubscribe();\n resolve();\n }\n\n var subscription = _this.subscribe({\n next: function (value) {\n try {\n fn(value, done);\n } catch (e) {\n reject(e);\n subscription.unsubscribe();\n }\n },\n error: reject,\n complete: resolve\n });\n });\n }\n }, {\n key: \"map\",\n value: function map(fn) {\n var _this2 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this2.subscribe({\n next: function (value) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n }\n });\n });\n }\n }, {\n key: \"filter\",\n value: function filter(fn) {\n var _this3 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this3.subscribe({\n next: function (value) {\n try {\n if (!fn(value)) return;\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n }\n });\n });\n }\n }, {\n key: \"reduce\",\n value: function reduce(fn) {\n var _this4 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n var hasSeed = arguments.length > 1;\n var hasValue = false;\n var seed = arguments[1];\n var acc = seed;\n return new C(function (observer) {\n return _this4.subscribe({\n next: function (value) {\n var first = !hasValue;\n hasValue = true;\n\n if (!first || hasSeed) {\n try {\n acc = fn(acc, value);\n } catch (e) {\n return observer.error(e);\n }\n } else {\n acc = value;\n }\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n if (!hasValue && !hasSeed) return observer.error(new TypeError('Cannot reduce an empty sequence'));\n observer.next(acc);\n observer.complete();\n }\n });\n });\n }\n }, {\n key: \"concat\",\n value: function concat() {\n var _this5 = this;\n\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscription;\n var index = 0;\n\n function startNext(next) {\n subscription = next.subscribe({\n next: function (v) {\n observer.next(v);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n if (index === sources.length) {\n subscription = undefined;\n observer.complete();\n } else {\n startNext(C.from(sources[index++]));\n }\n }\n });\n }\n\n startNext(_this5);\n return function () {\n if (subscription) {\n subscription.unsubscribe();\n subscription = undefined;\n }\n };\n });\n }\n }, {\n key: \"flatMap\",\n value: function flatMap(fn) {\n var _this6 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscriptions = [];\n\n var outer = _this6.subscribe({\n next: function (value) {\n if (fn) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n }\n\n var inner = C.from(value).subscribe({\n next: function (value) {\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n var i = subscriptions.indexOf(inner);\n if (i >= 0) subscriptions.splice(i, 1);\n completeIfDone();\n }\n });\n subscriptions.push(inner);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n completeIfDone();\n }\n });\n\n function completeIfDone() {\n if (outer.closed && subscriptions.length === 0) observer.complete();\n }\n\n return function () {\n subscriptions.forEach(function (s) {\n return s.unsubscribe();\n });\n outer.unsubscribe();\n };\n });\n }\n }, {\n key: SymbolObservable,\n value: function () {\n return this;\n }\n }], [{\n key: \"from\",\n value: function from(x) {\n var C = typeof this === 'function' ? this : Observable;\n if (x == null) throw new TypeError(x + ' is not an object');\n var method = getMethod(x, SymbolObservable);\n\n if (method) {\n var observable = method.call(x);\n if (Object(observable) !== observable) throw new TypeError(observable + ' is not an object');\n if (isObservable(observable) && observable.constructor === C) return observable;\n return new C(function (observer) {\n return observable.subscribe(observer);\n });\n }\n\n if (hasSymbol('iterator')) {\n method = getMethod(x, SymbolIterator);\n\n if (method) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = method.call(x)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _item = _step.value;\n observer.next(_item);\n if (observer.closed) return;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n observer.complete();\n });\n });\n }\n }\n\n if (Array.isArray(x)) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < x.length; ++i) {\n observer.next(x[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n\n throw new TypeError(x + ' is not observable');\n }\n }, {\n key: \"of\",\n value: function of() {\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n\n var C = typeof this === 'function' ? this : Observable;\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < items.length; ++i) {\n observer.next(items[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n }, {\n key: SymbolSpecies,\n get: function () {\n return this;\n }\n }]);\n\n return Observable;\n}();\n\nexports.Observable = Observable;\n\nif (hasSymbols()) {\n Object.defineProperty(Observable, Symbol('extensions'), {\n value: {\n symbol: SymbolObservable,\n hostReportError: hostReportError\n },\n configurable: true\n });\n}","/** @license React v16.13.1\n * react-dom-test-utils.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 g=require(\"object-assign\"),k=require(\"react\"),m=require(\"react-dom\"),n=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cthis.eventPool.length&&this.eventPool.push(a)}function y(a){a.eventPool=[];a.getPooled=z;a.release=A}var B=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement);function C(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}\nvar D={animationend:C(\"Animation\",\"AnimationEnd\"),animationiteration:C(\"Animation\",\"AnimationIteration\"),animationstart:C(\"Animation\",\"AnimationStart\"),transitionend:C(\"Transition\",\"TransitionEnd\")},E={},F={};B&&(F=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete D.animationend.animation,delete D.animationiteration.animation,delete D.animationstart.animation),\"TransitionEvent\"in window||delete D.transitionend.transition);\nfunction G(a){if(E[a])return E[a];if(!D[a])return a;var b=D[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in F)return E[a]=b[c];return a}var H=G(\"animationend\"),I=G(\"animationiteration\"),J=G(\"animationstart\"),aa=G(\"transitionend\"),K=null;function ba(a){if(null===K)try{var b=(\"require\"+Math.random()).slice(0,7);K=(module&&module[b])(\"timers\").setImmediate}catch(c){K=function(a){var b=new MessageChannel;b.port1.onmessage=a;b.port2.postMessage(void 0)}}return K(a)}\nvar L=m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.Events,ca=L[11],M=L[12],da=m.unstable_batchedUpdates,N=q.IsSomeRendererActing,O=\"function\"===typeof n.unstable_flushAllWithoutAsserting,P=n.unstable_flushAllWithoutAsserting||function(){for(var a=!1;ca();)a=!0;return a};function Q(a){try{P(),ba(function(){P()?Q(a):a()})}catch(b){a(b)}}var R=0,S=!1,ea=m.findDOMNode,T=m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.Events,fa=T[0],U=T[4],ha=T[5],ia=T[6],ja=T[7],ka=T[8],V=T[9],la=T[10];\nfunction W(){}function ma(a,b){if(!a)return[];a=u(a);if(!a)return[];for(var c=a,e=[];;){if(5===c.tag||6===c.tag||1===c.tag||0===c.tag){var d=c.stateNode;b(d)&&e.push(d)}if(c.child)c.child.return=c,c=c.child;else{if(c===a)return e;for(;!c.sibling;){if(!c.return||c.return===a)return e;c=c.return}c.sibling.return=c.return;c=c.sibling}}}\nfunction X(a,b){if(a&&!a._reactInternalFiber){var c=\"\"+a;a=Array.isArray(a)?\"an array\":a&&1===a.nodeType&&a.tagName?\"a DOM node\":\"[object Object]\"===c?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":c;throw Error(p(286,b,a));}}\nvar Y={renderIntoDocument:function(a){var b=document.createElement(\"div\");return m.render(a,b)},isElement:function(a){return k.isValidElement(a)},isElementOfType:function(a,b){return k.isValidElement(a)&&a.type===b},isDOMComponent:function(a){return!(!a||1!==a.nodeType||!a.tagName)},isDOMComponentElement:function(a){return!!(a&&k.isValidElement(a)&&a.tagName)},isCompositeComponent:function(a){return Y.isDOMComponent(a)?!1:null!=a&&\"function\"===typeof a.render&&\"function\"===typeof a.setState},isCompositeComponentWithType:function(a,\nb){return Y.isCompositeComponent(a)?a._reactInternalFiber.type===b:!1},findAllInRenderedTree:function(a,b){X(a,\"findAllInRenderedTree\");return a?ma(a._reactInternalFiber,b):[]},scryRenderedDOMComponentsWithClass:function(a,b){X(a,\"scryRenderedDOMComponentsWithClass\");return Y.findAllInRenderedTree(a,function(a){if(Y.isDOMComponent(a)){var c=a.className;\"string\"!==typeof c&&(c=a.getAttribute(\"class\")||\"\");var d=c.split(/\\s+/);if(!Array.isArray(b)){if(void 0===b)throw Error(p(11));b=b.split(/\\s+/)}return b.every(function(a){return-1!==\nd.indexOf(a)})}return!1})},findRenderedDOMComponentWithClass:function(a,b){X(a,\"findRenderedDOMComponentWithClass\");a=Y.scryRenderedDOMComponentsWithClass(a,b);if(1!==a.length)throw Error(\"Did not find exactly one match (found: \"+a.length+\") for class:\"+b);return a[0]},scryRenderedDOMComponentsWithTag:function(a,b){X(a,\"scryRenderedDOMComponentsWithTag\");return Y.findAllInRenderedTree(a,function(a){return Y.isDOMComponent(a)&&a.tagName.toUpperCase()===b.toUpperCase()})},findRenderedDOMComponentWithTag:function(a,\nb){X(a,\"findRenderedDOMComponentWithTag\");a=Y.scryRenderedDOMComponentsWithTag(a,b);if(1!==a.length)throw Error(\"Did not find exactly one match (found: \"+a.length+\") for tag:\"+b);return a[0]},scryRenderedComponentsWithType:function(a,b){X(a,\"scryRenderedComponentsWithType\");return Y.findAllInRenderedTree(a,function(a){return Y.isCompositeComponentWithType(a,b)})},findRenderedComponentWithType:function(a,b){X(a,\"findRenderedComponentWithType\");a=Y.scryRenderedComponentsWithType(a,b);if(1!==a.length)throw Error(\"Did not find exactly one match (found: \"+\na.length+\") for componentType:\"+b);return a[0]},mockComponent:function(a,b){b=b||a.mockTagName||\"div\";a.prototype.render.mockImplementation(function(){return k.createElement(b,null,this.props.children)});return this},nativeTouchData:function(a,b){return{touches:[{pageX:a,pageY:b}]}},Simulate:null,SimulateNative:{},act:function(a){function b(){R--;N.current=c;M.current=e}!1===S&&(S=!0,console.error(\"act(...) is not supported in production builds of React, and might not behave as expected.\"));R++;var c=\nN.current;var e=M.current;N.current=!0;M.current=!0;try{var d=da(a)}catch(f){throw b(),f;}if(null!==d&&\"object\"===typeof d&&\"function\"===typeof d.then)return{then:function(a,e){d.then(function(){1 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj; // eslint-disable-line no-param-reassign\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(require(\"./interfaces\"));\n__export(require(\"./factories\"));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DragDropManagerImpl_1 = require(\"./DragDropManagerImpl\");\nfunction createDragDropManager(backend, context, debugMode) {\n return new DragDropManagerImpl_1.default(backend, context, debugMode);\n}\nexports.createDragDropManager = createDragDropManager;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar redux_1 = require(\"redux\");\nvar reducers_1 = require(\"./reducers\");\nvar dragDrop_1 = require(\"./actions/dragDrop\");\nvar DragDropMonitorImpl_1 = require(\"./DragDropMonitorImpl\");\nvar HandlerRegistryImpl_1 = require(\"./HandlerRegistryImpl\");\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' &&\n window.__REDUX_DEVTOOLS_EXTENSION__;\n return redux_1.createStore(reducers_1.default, debugMode &&\n reduxDevTools &&\n reduxDevTools({\n name: 'dnd-core',\n instanceId: 'dnd-core',\n }));\n}\nvar DragDropManagerImpl = /** @class */ (function () {\n function DragDropManagerImpl(createBackend, context, debugMode) {\n var _this = this;\n if (context === void 0) { context = {}; }\n if (debugMode === void 0) { debugMode = false; }\n this.context = context;\n this.isSetUp = false;\n this.handleRefCountChange = function () {\n var shouldSetUp = _this.store.getState().refCount > 0;\n if (shouldSetUp && !_this.isSetUp) {\n _this.backend.setup();\n _this.isSetUp = true;\n }\n else if (!shouldSetUp && _this.isSetUp) {\n _this.backend.teardown();\n _this.isSetUp = false;\n }\n };\n var store = makeStoreInstance(debugMode);\n this.store = store;\n this.monitor = new DragDropMonitorImpl_1.default(store, new HandlerRegistryImpl_1.default(store));\n this.backend = createBackend(this);\n store.subscribe(this.handleRefCountChange);\n }\n DragDropManagerImpl.prototype.getContext = function () {\n return this.context;\n };\n DragDropManagerImpl.prototype.getMonitor = function () {\n return this.monitor;\n };\n DragDropManagerImpl.prototype.getBackend = function () {\n return this.backend;\n };\n DragDropManagerImpl.prototype.getRegistry = function () {\n return this.monitor.registry;\n };\n DragDropManagerImpl.prototype.getActions = function () {\n var manager = this;\n var dispatch = this.store.dispatch;\n function bindActionCreator(actionCreator) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var action = actionCreator.apply(manager, args);\n if (typeof action !== 'undefined') {\n dispatch(action);\n }\n };\n }\n var actions = dragDrop_1.default(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 DragDropManagerImpl.prototype.dispatch = function (action) {\n this.store.dispatch(action);\n };\n return DragDropManagerImpl;\n}());\nexports.default = DragDropManagerImpl;\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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar dragOffset_1 = require(\"./dragOffset\");\nvar dragOperation_1 = require(\"./dragOperation\");\nvar refCount_1 = require(\"./refCount\");\nvar dirtyHandlerIds_1 = require(\"./dirtyHandlerIds\");\nvar stateId_1 = require(\"./stateId\");\nvar discount_lodash_1 = require(\"../utils/discount_lodash\");\nfunction reduce(state, action) {\n if (state === void 0) { state = {}; }\n return {\n dirtyHandlerIds: dirtyHandlerIds_1.default(state.dirtyHandlerIds, {\n type: action.type,\n payload: __assign({}, action.payload, { prevTargetIds: discount_lodash_1.get(state, 'dragOperation.targetIds', []) }),\n }),\n dragOffset: dragOffset_1.default(state.dragOffset, action),\n refCount: refCount_1.default(state.refCount, action),\n dragOperation: dragOperation_1.default(state.dragOperation, action),\n stateId: stateId_1.default(state.stateId),\n };\n}\nexports.default = reduce;\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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar dragDrop_1 = require(\"../actions/dragDrop\");\nvar equality_1 = require(\"../utils/equality\");\nvar initialState = {\n initialSourceClientOffset: null,\n initialClientOffset: null,\n clientOffset: null,\n};\nfunction dragOffset(state, action) {\n if (state === void 0) { state = initialState; }\n var payload = action.payload;\n switch (action.type) {\n case dragDrop_1.INIT_COORDS:\n case dragDrop_1.BEGIN_DRAG:\n return {\n initialSourceClientOffset: payload.sourceClientOffset,\n initialClientOffset: payload.clientOffset,\n clientOffset: payload.clientOffset,\n };\n case dragDrop_1.HOVER:\n if (equality_1.areCoordsEqual(state.clientOffset, payload.clientOffset)) {\n return state;\n }\n return __assign({}, state, { clientOffset: payload.clientOffset });\n case dragDrop_1.END_DRAG:\n case dragDrop_1.DROP:\n return initialState;\n default:\n return state;\n }\n}\nexports.default = dragOffset;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar setClientOffset_1 = require(\"./local/setClientOffset\");\nvar discount_lodash_1 = require(\"../../utils/discount_lodash\");\nvar invariant = require('invariant');\nvar types_1 = require(\"./types\");\nvar ResetCoordinatesAction = {\n type: types_1.INIT_COORDS,\n payload: {\n clientOffset: null,\n sourceClientOffset: null,\n },\n};\nfunction createBeginDrag(manager) {\n return function beginDrag(sourceIds, options) {\n if (sourceIds === void 0) { sourceIds = []; }\n if (options === void 0) { options = {\n publishSource: true,\n }; }\n var _a = options.publishSource, publishSource = _a === void 0 ? true : _a, clientOffset = options.clientOffset, getSourceClientOffset = options.getSourceClientOffset;\n var monitor = manager.getMonitor();\n var registry = manager.getRegistry();\n // Initialize the coordinates using the client offset\n manager.dispatch(setClientOffset_1.setClientOffset(clientOffset));\n verifyInvariants(sourceIds, monitor, registry);\n // Get the draggable source\n var sourceId = getDraggableSource(sourceIds, monitor);\n if (sourceId === null) {\n manager.dispatch(ResetCoordinatesAction);\n return;\n }\n // Get the source client offset\n var sourceClientOffset = null;\n if (clientOffset) {\n verifyGetSourceClientOffsetIsFunction(getSourceClientOffset);\n sourceClientOffset = getSourceClientOffset(sourceId);\n }\n // Initialize the full coordinates\n manager.dispatch(setClientOffset_1.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: types_1.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}\nexports.default = createBeginDrag;\nfunction verifyInvariants(sourceIds, monitor, registry) {\n invariant(!monitor.isDragging(), 'Cannot call beginDrag while dragging.');\n for (var _i = 0, sourceIds_1 = sourceIds; _i < sourceIds_1.length; _i++) {\n var s = sourceIds_1[_i];\n invariant(registry.getSource(s), 'Expected sourceIds to be registered.');\n }\n}\nfunction verifyGetSourceClientOffsetIsFunction(getSourceClientOffset) {\n invariant(typeof getSourceClientOffset === 'function', 'When clientOffset is provided, getSourceClientOffset must be a function.');\n}\nfunction verifyItemIsObject(item) {\n invariant(discount_lodash_1.isObject(item), 'Item must be an object.');\n}\nfunction getDraggableSource(sourceIds, monitor) {\n var sourceId = null;\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 return sourceId;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar types_1 = require(\"../types\");\nfunction setClientOffset(clientOffset, sourceClientOffset) {\n return {\n type: types_1.INIT_COORDS,\n payload: {\n sourceClientOffset: sourceClientOffset || null,\n clientOffset: clientOffset || null,\n },\n };\n}\nexports.setClientOffset = setClientOffset;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar types_1 = require(\"./types\");\nfunction createPublishDragSource(manager) {\n return function publishDragSource() {\n var monitor = manager.getMonitor();\n if (monitor.isDragging()) {\n return { type: types_1.PUBLISH_DRAG_SOURCE };\n }\n };\n}\nexports.default = createPublishDragSource;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar matchesType_1 = require(\"../../utils/matchesType\");\nvar types_1 = require(\"./types\");\nvar invariant = require('invariant');\nfunction createHover(manager) {\n return function hover(targetIdsArg, _a) {\n var clientOffset = (_a === void 0 ? {} : _a).clientOffset;\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: types_1.HOVER,\n payload: {\n targetIds: targetIds,\n clientOffset: clientOffset || null,\n },\n };\n };\n}\nexports.default = createHover;\nfunction verifyTargetIdsIsArray(targetIdsArg) {\n invariant(Array.isArray(targetIdsArg), 'Expected targetIds to be an array.');\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 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}\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 if (!matchesType_1.default(targetType, draggedItemType)) {\n targetIds.splice(i, 1);\n }\n }\n}\nfunction hoverAllTargets(targetIds, monitor, registry) {\n // Finally call hover on all matching targets.\n for (var _i = 0, targetIds_1 = targetIds; _i < targetIds_1.length; _i++) {\n var targetId = targetIds_1[_i];\n var target = registry.getTarget(targetId);\n target.hover(monitor, targetId);\n }\n}\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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar types_1 = require(\"./types\");\nvar discount_lodash_1 = require(\"../../utils/discount_lodash\");\nvar invariant = require('invariant');\nfunction createDrop(manager) {\n return function drop(options) {\n if (options === void 0) { options = {}; }\n var monitor = manager.getMonitor();\n var registry = manager.getRegistry();\n verifyInvariants(monitor);\n var targetIds = getDroppableTargets(monitor);\n // Multiple actions are dispatched here, which is why this doesn't return an action\n targetIds.forEach(function (targetId, index) {\n var dropResult = determineDropResult(targetId, index, registry, monitor);\n var action = {\n type: types_1.DROP,\n payload: {\n dropResult: __assign({}, options, dropResult),\n },\n };\n manager.dispatch(action);\n });\n };\n}\nexports.default = createDrop;\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}\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 if (typeof dropResult === 'undefined') {\n dropResult = index === 0 ? {} : monitor.getDropResult();\n }\n return dropResult;\n}\nfunction verifyDropResultType(dropResult) {\n invariant(typeof dropResult === 'undefined' || discount_lodash_1.isObject(dropResult), 'Drop result must either be an object or undefined.');\n}\nfunction getDroppableTargets(monitor) {\n var targetIds = monitor\n .getTargetIds()\n .filter(monitor.canDropOnTarget, monitor);\n targetIds.reverse();\n return targetIds;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar types_1 = require(\"./types\");\nvar invariant = require('invariant');\nfunction 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 { type: types_1.END_DRAG };\n };\n}\nexports.default = createEndDrag;\nfunction verifyIsDragging(monitor) {\n invariant(monitor.isDragging(), 'Cannot call endDrag while not dragging.');\n}\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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar dragDrop_1 = require(\"../actions/dragDrop\");\nvar registry_1 = require(\"../actions/registry\");\nvar discount_lodash_1 = require(\"../utils/discount_lodash\");\nvar initialState = {\n itemType: null,\n item: null,\n sourceId: null,\n targetIds: [],\n dropResult: null,\n didDrop: false,\n isSourcePublic: null,\n};\nfunction dragOperation(state, action) {\n if (state === void 0) { state = initialState; }\n var payload = action.payload;\n switch (action.type) {\n case dragDrop_1.BEGIN_DRAG:\n return __assign({}, state, { itemType: payload.itemType, item: payload.item, sourceId: payload.sourceId, isSourcePublic: payload.isSourcePublic, dropResult: null, didDrop: false });\n case dragDrop_1.PUBLISH_DRAG_SOURCE:\n return __assign({}, state, { isSourcePublic: true });\n case dragDrop_1.HOVER:\n return __assign({}, state, { targetIds: payload.targetIds });\n case registry_1.REMOVE_TARGET:\n if (state.targetIds.indexOf(payload.targetId) === -1) {\n return state;\n }\n return __assign({}, state, { targetIds: discount_lodash_1.without(state.targetIds, payload.targetId) });\n case dragDrop_1.DROP:\n return __assign({}, state, { dropResult: payload.dropResult, didDrop: true, targetIds: [] });\n case dragDrop_1.END_DRAG:\n return __assign({}, state, { itemType: null, item: null, sourceId: null, dropResult: null, didDrop: false, isSourcePublic: null, targetIds: [] });\n default:\n return state;\n }\n}\nexports.default = dragOperation;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar registry_1 = require(\"../actions/registry\");\nfunction refCount(state, action) {\n if (state === void 0) { state = 0; }\n switch (action.type) {\n case registry_1.ADD_SOURCE:\n case registry_1.ADD_TARGET:\n return state + 1;\n case registry_1.REMOVE_SOURCE:\n case registry_1.REMOVE_TARGET:\n return state - 1;\n default:\n return state;\n }\n}\nexports.default = refCount;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar dragDrop_1 = require(\"../actions/dragDrop\");\nvar registry_1 = require(\"../actions/registry\");\nvar equality_1 = require(\"../utils/equality\");\nvar dirtiness_1 = require(\"../utils/dirtiness\");\nvar discount_lodash_1 = require(\"../utils/discount_lodash\");\nfunction dirtyHandlerIds(state, action) {\n if (state === void 0) { state = dirtiness_1.NONE; }\n switch (action.type) {\n case dragDrop_1.HOVER:\n break;\n case registry_1.ADD_SOURCE:\n case registry_1.ADD_TARGET:\n case registry_1.REMOVE_TARGET:\n case registry_1.REMOVE_SOURCE:\n return dirtiness_1.NONE;\n case dragDrop_1.BEGIN_DRAG:\n case dragDrop_1.PUBLISH_DRAG_SOURCE:\n case dragDrop_1.END_DRAG:\n case dragDrop_1.DROP:\n default:\n return dirtiness_1.ALL;\n }\n var _a = action.payload, _b = _a.targetIds, targetIds = _b === void 0 ? [] : _b, _c = _a.prevTargetIds, prevTargetIds = _c === void 0 ? [] : _c;\n var result = discount_lodash_1.xor(targetIds, prevTargetIds);\n var didChange = result.length > 0 || !equality_1.areArraysEqual(targetIds, prevTargetIds);\n if (!didChange) {\n return dirtiness_1.NONE;\n }\n // Check the target ids at the innermost position. If they are valid, add them\n // to the result\n var prevInnermostTargetId = prevTargetIds[prevTargetIds.length - 1];\n var innermostTargetId = targetIds[targetIds.length - 1];\n if (prevInnermostTargetId !== innermostTargetId) {\n if (prevInnermostTargetId) {\n result.push(prevInnermostTargetId);\n }\n if (innermostTargetId) {\n result.push(innermostTargetId);\n }\n }\n return result;\n}\nexports.default = dirtyHandlerIds;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction stateId(state) {\n if (state === void 0) { state = 0; }\n return state + 1;\n}\nexports.default = stateId;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar matchesType_1 = require(\"./utils/matchesType\");\nvar coords_1 = require(\"./utils/coords\");\nvar dirtiness_1 = require(\"./utils/dirtiness\");\nvar invariant = require('invariant');\nvar DragDropMonitorImpl = /** @class */ (function () {\n function DragDropMonitorImpl(store, registry) {\n this.store = store;\n this.registry = registry;\n }\n DragDropMonitorImpl.prototype.subscribeToStateChange = function (listener, options) {\n var _this = this;\n if (options === void 0) { options = { handlerIds: undefined }; }\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 var handleChange = function () {\n var state = _this.store.getState();\n var currentStateId = state.stateId;\n try {\n var canSkipListener = currentStateId === prevStateId ||\n (currentStateId === prevStateId + 1 &&\n !dirtiness_1.areDirty(state.dirtyHandlerIds, handlerIds));\n if (!canSkipListener) {\n listener();\n }\n }\n finally {\n prevStateId = currentStateId;\n }\n };\n return this.store.subscribe(handleChange);\n };\n DragDropMonitorImpl.prototype.subscribeToOffsetChange = function (listener) {\n var _this = this;\n invariant(typeof listener === 'function', 'listener must be a function.');\n var previousState = this.store.getState().dragOffset;\n var handleChange = function () {\n var nextState = _this.store.getState().dragOffset;\n if (nextState === previousState) {\n return;\n }\n previousState = nextState;\n listener();\n };\n return this.store.subscribe(handleChange);\n };\n DragDropMonitorImpl.prototype.canDragSource = function (sourceId) {\n if (!sourceId) {\n return false;\n }\n var source = this.registry.getSource(sourceId);\n invariant(source, 'Expected to find a valid source.');\n if (this.isDragging()) {\n return false;\n }\n return source.canDrag(this, sourceId);\n };\n DragDropMonitorImpl.prototype.canDropOnTarget = function (targetId) {\n // undefined on initial render\n if (!targetId) {\n return false;\n }\n var target = this.registry.getTarget(targetId);\n invariant(target, 'Expected to find a valid target.');\n if (!this.isDragging() || this.didDrop()) {\n return false;\n }\n var targetType = this.registry.getTargetType(targetId);\n var draggedItemType = this.getItemType();\n return (matchesType_1.default(targetType, draggedItemType) && target.canDrop(this, targetId));\n };\n DragDropMonitorImpl.prototype.isDragging = function () {\n return Boolean(this.getItemType());\n };\n DragDropMonitorImpl.prototype.isDraggingSource = function (sourceId) {\n // undefined on initial render\n if (!sourceId) {\n return false;\n }\n var source = this.registry.getSource(sourceId, true);\n invariant(source, 'Expected to find a valid source.');\n if (!this.isDragging() || !this.isSourcePublic()) {\n return false;\n }\n var sourceType = this.registry.getSourceType(sourceId);\n var draggedItemType = this.getItemType();\n if (sourceType !== draggedItemType) {\n return false;\n }\n return source.isDragging(this, sourceId);\n };\n DragDropMonitorImpl.prototype.isOverTarget = function (targetId, options) {\n if (options === void 0) { options = { shallow: false }; }\n // undefined on initial render\n if (!targetId) {\n return false;\n }\n var shallow = options.shallow;\n if (!this.isDragging()) {\n return false;\n }\n var targetType = this.registry.getTargetType(targetId);\n var draggedItemType = this.getItemType();\n if (draggedItemType && !matchesType_1.default(targetType, draggedItemType)) {\n return false;\n }\n var targetIds = this.getTargetIds();\n if (!targetIds.length) {\n return false;\n }\n var index = targetIds.indexOf(targetId);\n if (shallow) {\n return index === targetIds.length - 1;\n }\n else {\n return index > -1;\n }\n };\n DragDropMonitorImpl.prototype.getItemType = function () {\n return this.store.getState().dragOperation.itemType;\n };\n DragDropMonitorImpl.prototype.getItem = function () {\n return this.store.getState().dragOperation.item;\n };\n DragDropMonitorImpl.prototype.getSourceId = function () {\n return this.store.getState().dragOperation.sourceId;\n };\n DragDropMonitorImpl.prototype.getTargetIds = function () {\n return this.store.getState().dragOperation.targetIds;\n };\n DragDropMonitorImpl.prototype.getDropResult = function () {\n return this.store.getState().dragOperation.dropResult;\n };\n DragDropMonitorImpl.prototype.didDrop = function () {\n return this.store.getState().dragOperation.didDrop;\n };\n DragDropMonitorImpl.prototype.isSourcePublic = function () {\n return this.store.getState().dragOperation.isSourcePublic;\n };\n DragDropMonitorImpl.prototype.getInitialClientOffset = function () {\n return this.store.getState().dragOffset.initialClientOffset;\n };\n DragDropMonitorImpl.prototype.getInitialSourceClientOffset = function () {\n return this.store.getState().dragOffset.initialSourceClientOffset;\n };\n DragDropMonitorImpl.prototype.getClientOffset = function () {\n return this.store.getState().dragOffset.clientOffset;\n };\n DragDropMonitorImpl.prototype.getSourceClientOffset = function () {\n return coords_1.getSourceClientOffset(this.store.getState().dragOffset);\n };\n DragDropMonitorImpl.prototype.getDifferenceFromInitialOffset = function () {\n return coords_1.getDifferenceFromInitialOffset(this.store.getState().dragOffset);\n };\n return DragDropMonitorImpl;\n}());\nexports.default = DragDropMonitorImpl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Coordinate addition\n * @param a The first coordinate\n * @param b The second coordinate\n */\nfunction add(a, b) {\n return {\n x: a.x + b.x,\n y: a.y + b.y,\n };\n}\nexports.add = add;\n/**\n * Coordinate subtraction\n * @param a The first coordinate\n * @param b The second coordinate\n */\nfunction subtract(a, b) {\n return {\n x: a.x - b.x,\n y: a.y - b.y,\n };\n}\nexports.subtract = subtract;\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 */\nfunction getSourceClientOffset(state) {\n var clientOffset = state.clientOffset, initialClientOffset = state.initialClientOffset, initialSourceClientOffset = state.initialSourceClientOffset;\n if (!clientOffset || !initialClientOffset || !initialSourceClientOffset) {\n return null;\n }\n return subtract(add(clientOffset, initialSourceClientOffset), initialClientOffset);\n}\nexports.getSourceClientOffset = getSourceClientOffset;\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 */\nfunction getDifferenceFromInitialOffset(state) {\n var clientOffset = state.clientOffset, initialClientOffset = state.initialClientOffset;\n if (!clientOffset || !initialClientOffset) {\n return null;\n }\n return subtract(clientOffset, initialClientOffset);\n}\nexports.getDifferenceFromInitialOffset = getDifferenceFromInitialOffset;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar registry_1 = require(\"./actions/registry\");\nvar getNextUniqueId_1 = require(\"./utils/getNextUniqueId\");\nvar interfaces_1 = require(\"./interfaces\");\nvar contracts_1 = require(\"./contracts\");\nvar invariant = require('invariant');\nvar asap = require('asap');\nfunction getNextHandlerId(role) {\n var id = getNextUniqueId_1.default().toString();\n switch (role) {\n case interfaces_1.HandlerRole.SOURCE:\n return \"S\" + id;\n case interfaces_1.HandlerRole.TARGET:\n return \"T\" + id;\n default:\n throw new Error(\"Unknown Handler Role: \" + role);\n }\n}\nfunction parseRoleFromHandlerId(handlerId) {\n switch (handlerId[0]) {\n case 'S':\n return interfaces_1.HandlerRole.SOURCE;\n case 'T':\n return interfaces_1.HandlerRole.TARGET;\n default:\n invariant(false, \"Cannot parse handler ID: \" + handlerId);\n }\n}\nfunction mapContainsValue(map, searchValue) {\n var entries = map.entries();\n var isDone = false;\n do {\n var _a = entries.next(), done = _a.done, _b = _a.value, value = _b[1];\n if (value === searchValue) {\n return true;\n }\n isDone = done;\n } while (!isDone);\n return false;\n}\nvar HandlerRegistryImpl = /** @class */ (function () {\n function HandlerRegistryImpl(store) {\n this.store = store;\n this.types = new Map();\n this.dragSources = new Map();\n this.dropTargets = new Map();\n this.pinnedSourceId = null;\n this.pinnedSource = null;\n }\n HandlerRegistryImpl.prototype.addSource = function (type, source) {\n contracts_1.validateType(type);\n contracts_1.validateSourceContract(source);\n var sourceId = this.addHandler(interfaces_1.HandlerRole.SOURCE, type, source);\n this.store.dispatch(registry_1.addSource(sourceId));\n return sourceId;\n };\n HandlerRegistryImpl.prototype.addTarget = function (type, target) {\n contracts_1.validateType(type, true);\n contracts_1.validateTargetContract(target);\n var targetId = this.addHandler(interfaces_1.HandlerRole.TARGET, type, target);\n this.store.dispatch(registry_1.addTarget(targetId));\n return targetId;\n };\n HandlerRegistryImpl.prototype.containsHandler = function (handler) {\n return (mapContainsValue(this.dragSources, handler) ||\n mapContainsValue(this.dropTargets, handler));\n };\n HandlerRegistryImpl.prototype.getSource = function (sourceId, includePinned) {\n if (includePinned === void 0) { includePinned = 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 HandlerRegistryImpl.prototype.getTarget = function (targetId) {\n invariant(this.isTargetId(targetId), 'Expected a valid target ID.');\n return this.dropTargets.get(targetId);\n };\n HandlerRegistryImpl.prototype.getSourceType = function (sourceId) {\n invariant(this.isSourceId(sourceId), 'Expected a valid source ID.');\n return this.types.get(sourceId);\n };\n HandlerRegistryImpl.prototype.getTargetType = function (targetId) {\n invariant(this.isTargetId(targetId), 'Expected a valid target ID.');\n return this.types.get(targetId);\n };\n HandlerRegistryImpl.prototype.isSourceId = function (handlerId) {\n var role = parseRoleFromHandlerId(handlerId);\n return role === interfaces_1.HandlerRole.SOURCE;\n };\n HandlerRegistryImpl.prototype.isTargetId = function (handlerId) {\n var role = parseRoleFromHandlerId(handlerId);\n return role === interfaces_1.HandlerRole.TARGET;\n };\n HandlerRegistryImpl.prototype.removeSource = function (sourceId) {\n var _this = this;\n invariant(this.getSource(sourceId), 'Expected an existing source.');\n this.store.dispatch(registry_1.removeSource(sourceId));\n asap(function () {\n _this.dragSources.delete(sourceId);\n _this.types.delete(sourceId);\n });\n };\n HandlerRegistryImpl.prototype.removeTarget = function (targetId) {\n invariant(this.getTarget(targetId), 'Expected an existing target.');\n this.store.dispatch(registry_1.removeTarget(targetId));\n this.dropTargets.delete(targetId);\n this.types.delete(targetId);\n };\n HandlerRegistryImpl.prototype.pinSource = function (sourceId) {\n var source = this.getSource(sourceId);\n invariant(source, 'Expected an existing source.');\n this.pinnedSourceId = sourceId;\n this.pinnedSource = source;\n };\n HandlerRegistryImpl.prototype.unpinSource = function () {\n invariant(this.pinnedSource, 'No source is pinned at the time.');\n this.pinnedSourceId = null;\n this.pinnedSource = null;\n };\n HandlerRegistryImpl.prototype.addHandler = function (role, type, handler) {\n var id = getNextHandlerId(role);\n this.types.set(id, type);\n if (role === interfaces_1.HandlerRole.SOURCE) {\n this.dragSources.set(id, handler);\n }\n else if (role === interfaces_1.HandlerRole.TARGET) {\n this.dropTargets.set(id, handler);\n }\n return id;\n };\n return HandlerRegistryImpl;\n}());\nexports.default = HandlerRegistryImpl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar nextUniqueId = 0;\nfunction getNextUniqueId() {\n return nextUniqueId++;\n}\nexports.default = getNextUniqueId;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar invariant = require('invariant');\nfunction 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}\nexports.validateSourceContract = validateSourceContract;\nfunction 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}\nexports.validateTargetContract = validateTargetContract;\nfunction validateType(type, allowArray) {\n if (allowArray && Array.isArray(type)) {\n type.forEach(function (t) { return validateType(t, false); });\n return;\n }\n invariant(typeof type === 'string' || typeof type === 'symbol', allowArray\n ? 'Type can only be a string, a symbol, or an array of either.'\n : 'Type can only be a string or a symbol.');\n}\nexports.validateType = validateType;\n","\"use strict\";\n\n// rawAsap provides everything we need except exception management.\nvar rawAsap = require(\"./raw\");\n// RawTasks are recycled to reduce GC churn.\nvar freeTasks = [];\n// We queue errors to ensure they are thrown in right order (FIFO).\n// Array-as-queue is good enough here, since we are just dealing with exceptions.\nvar pendingErrors = [];\nvar requestErrorThrow = rawAsap.makeRequestCallFromTimer(throwFirstError);\n\nfunction throwFirstError() {\n if (pendingErrors.length) {\n throw pendingErrors.shift();\n }\n}\n\n/**\n * Calls a task as soon as possible after returning, in its own event, with priority\n * over other events like animation, reflow, and repaint. An error thrown from an\n * event will not interrupt, nor even substantially slow down the processing of\n * other events, but will be rather postponed to a lower priority event.\n * @param {{call}} task A callable object, typically a function that takes no\n * arguments.\n */\nmodule.exports = asap;\nfunction asap(task) {\n var rawTask;\n if (freeTasks.length) {\n rawTask = freeTasks.pop();\n } else {\n rawTask = new RawTask();\n }\n rawTask.task = task;\n rawAsap(rawTask);\n}\n\n// We wrap tasks with recyclable task objects. A task object implements\n// `call`, just like a function.\nfunction RawTask() {\n this.task = null;\n}\n\n// The sole purpose of wrapping the task is to catch the exception and recycle\n// the task object after its single use.\nRawTask.prototype.call = function () {\n try {\n this.task.call();\n } catch (error) {\n if (asap.onerror) {\n // This hook exists purely for testing purposes.\n // Its name will be periodically randomized to break any code that\n // depends on its existence.\n asap.onerror(error);\n } else {\n // In a web browser, exceptions are not fatal. However, to avoid\n // slowing down the queue of pending tasks, we rethrow the error in a\n // lower priority turn.\n pendingErrors.push(error);\n requestErrorThrow();\n }\n } finally {\n this.task = null;\n freeTasks[freeTasks.length] = this;\n }\n};\n","\"use strict\";\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n if (!queue.length) {\n requestFlush();\n flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n while (index < queue.length) {\n var currentIndex = index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n index = index + 1;\n queue[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (index > capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n queue.length -= index;\n index = 0;\n }\n }\n queue.length = 0;\n index = 0;\n flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n var toggle = 1;\n var observer = new BrowserMutationObserver(callback);\n var node = document.createTextNode(\"\");\n observer.observe(node, {characterData: true});\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\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\nfunction makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n var timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n var intervalHandle = setInterval(handleTimer, 50);\n\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\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.\nrawAsap.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","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nvar checkDecoratorArguments_1 = require(\"./utils/checkDecoratorArguments\");\nvar DragDropContext_1 = require(\"./DragDropContext\");\nvar isRefable_1 = require(\"./utils/isRefable\");\nvar discount_lodash_1 = require(\"./utils/discount_lodash\");\nvar hoistStatics = require('hoist-non-react-statics');\nvar invariant = require('invariant');\nvar shallowEqual = require('shallowequal');\nfunction DragLayer(collect, options) {\n if (options === void 0) { options = {}; }\n checkDecoratorArguments_1.default('DragLayer', 'collect[, options]', collect, options);\n invariant(typeof collect === 'function', 'Expected \"collect\" provided as the first argument to DragLayer to be a function that collects props to inject into the component. ', 'Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-layer', collect);\n invariant(discount_lodash_1.isPlainObject(options), 'Expected \"options\" provided as the second argument to DragLayer to be a plain object when specified. ' +\n 'Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-layer', options);\n return function decorateLayer(DecoratedComponent) {\n var Decorated = DecoratedComponent;\n var _a = options.arePropsEqual, arePropsEqual = _a === void 0 ? shallowEqual : _a;\n var displayName = Decorated.displayName || Decorated.name || 'Component';\n var DragLayerContainer = /** @class */ (function (_super) {\n __extends(DragLayerContainer, _super);\n function DragLayerContainer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.isCurrentlyMounted = false;\n _this.ref = React.createRef();\n _this.handleChange = function () {\n if (!_this.isCurrentlyMounted) {\n return;\n }\n var nextState = _this.getCurrentState();\n if (!shallowEqual(nextState, _this.state)) {\n _this.setState(nextState);\n }\n };\n return _this;\n }\n DragLayerContainer.prototype.getDecoratedComponentInstance = function () {\n invariant(this.ref.current, 'In order to access an instance of the decorated component, it must either be a class component or use React.forwardRef()');\n return this.ref.current;\n };\n DragLayerContainer.prototype.shouldComponentUpdate = function (nextProps, nextState) {\n return (!arePropsEqual(nextProps, this.props) ||\n !shallowEqual(nextState, this.state));\n };\n DragLayerContainer.prototype.componentDidMount = function () {\n this.isCurrentlyMounted = true;\n this.handleChange();\n };\n DragLayerContainer.prototype.componentWillUnmount = function () {\n this.isCurrentlyMounted = false;\n if (this.unsubscribeFromOffsetChange) {\n this.unsubscribeFromOffsetChange();\n this.unsubscribeFromOffsetChange = undefined;\n }\n if (this.unsubscribeFromStateChange) {\n this.unsubscribeFromStateChange();\n this.unsubscribeFromStateChange = undefined;\n }\n };\n DragLayerContainer.prototype.render = function () {\n var _this = this;\n return (React.createElement(DragDropContext_1.Consumer, null, function (_a) {\n var dragDropManager = _a.dragDropManager;\n if (dragDropManager === undefined) {\n return null;\n }\n _this.receiveDragDropManager(dragDropManager);\n // Let componentDidMount fire to initialize the collected state\n if (!_this.isCurrentlyMounted) {\n return null;\n }\n return (React.createElement(Decorated, __assign({}, _this.props, _this.state, { ref: isRefable_1.isRefable(Decorated) ? _this.ref : null })));\n }));\n };\n DragLayerContainer.prototype.receiveDragDropManager = function (dragDropManager) {\n if (this.manager !== undefined) {\n return;\n }\n this.manager = dragDropManager;\n invariant(typeof dragDropManager === 'object', 'Could not find the drag and drop manager in the context of %s. ' +\n 'Make sure to wrap the top-level component of your app with DragDropContext. ' +\n 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#could-not-find-the-drag-and-drop-manager-in-the-context', displayName, displayName);\n var monitor = this.manager.getMonitor();\n this.unsubscribeFromOffsetChange = monitor.subscribeToOffsetChange(this.handleChange);\n this.unsubscribeFromStateChange = monitor.subscribeToStateChange(this.handleChange);\n };\n DragLayerContainer.prototype.getCurrentState = function () {\n if (!this.manager) {\n return {};\n }\n var monitor = this.manager.getMonitor();\n return collect(monitor, this.props);\n };\n DragLayerContainer.displayName = \"DragLayer(\" + displayName + \")\";\n DragLayerContainer.DecoratedComponent = DecoratedComponent;\n return DragLayerContainer;\n }(React.Component));\n return hoistStatics(DragLayerContainer, DecoratedComponent);\n };\n}\nexports.default = DragLayer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar checkDecoratorArguments_1 = require(\"./utils/checkDecoratorArguments\");\nvar decorateHandler_1 = require(\"./decorateHandler\");\nvar registerSource_1 = require(\"./registerSource\");\nvar createSourceFactory_1 = require(\"./createSourceFactory\");\nvar DragSourceMonitorImpl_1 = require(\"./DragSourceMonitorImpl\");\nvar SourceConnector_1 = require(\"./SourceConnector\");\nvar isValidType_1 = require(\"./utils/isValidType\");\nvar discount_lodash_1 = require(\"./utils/discount_lodash\");\nvar invariant = require('invariant');\n/**\n * Decorates a component as a dragsource\n * @param type The dragsource type\n * @param spec The drag source specification\n * @param collect The props collector function\n * @param options DnD options\n */\nfunction DragSource(type, spec, collect, options) {\n if (options === void 0) { options = {}; }\n checkDecoratorArguments_1.default('DragSource', 'type, spec, collect[, options]', type, spec, collect, options);\n var getType = type;\n if (typeof type !== 'function') {\n invariant(isValidType_1.default(type), 'Expected \"type\" provided as the first argument to DragSource to be ' +\n 'a string, or a function that returns a string given the current props. ' +\n 'Instead, received %s. ' +\n 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', type);\n getType = function () { return type; };\n }\n invariant(discount_lodash_1.isPlainObject(spec), 'Expected \"spec\" provided as the second argument to DragSource to be ' +\n 'a plain object. Instead, received %s. ' +\n 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', spec);\n var createSource = createSourceFactory_1.default(spec);\n invariant(typeof collect === 'function', 'Expected \"collect\" provided as the third argument to DragSource to be ' +\n 'a function that returns a plain object of props to inject. ' +\n 'Instead, received %s. ' +\n 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', collect);\n invariant(discount_lodash_1.isPlainObject(options), 'Expected \"options\" provided as the fourth argument to DragSource to be ' +\n 'a plain object when specified. ' +\n 'Instead, received %s. ' +\n 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', collect);\n return function decorateSource(DecoratedComponent) {\n return decorateHandler_1.default({\n containerDisplayName: 'DragSource',\n createHandler: createSource,\n registerHandler: registerSource_1.default,\n createConnector: function (backend) { return new SourceConnector_1.default(backend); },\n createMonitor: function (manager) {\n return new DragSourceMonitorImpl_1.default(manager);\n },\n DecoratedComponent: DecoratedComponent,\n getType: getType,\n collect: collect,\n options: options,\n });\n };\n}\nexports.default = DragSource;\n","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(require(\"./Disposable\"));\n__export(require(\"./SerialDisposable\"));\n__export(require(\"./CompositeDisposable\"));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar discount_lodash_1 = require(\"../discount_lodash\");\n/**\n * Provides a set of static methods for creating Disposables.\n * @param {Function} action Action to run during the first call to dispose.\n * The action is guaranteed to be run at most once.\n */\nvar Disposable = /** @class */ (function () {\n function Disposable(action) {\n this.isDisposed = false;\n this.action = discount_lodash_1.isFunction(action) ? action : discount_lodash_1.noop;\n }\n /**\n * Validates whether the given object is a disposable\n * @param {Object} Object to test whether it has a dispose method\n * @returns {Boolean} true if a disposable object, else false.\n */\n Disposable.isDisposable = function (d) {\n return d && discount_lodash_1.isFunction(d.dispose);\n };\n Disposable._fixup = function (result) {\n return Disposable.isDisposable(result) ? result : Disposable.empty;\n };\n /**\n * Creates a disposable object that invokes the specified action when disposed.\n * @param {Function} dispose Action to run during the first call to dispose.\n * The action is guaranteed to be run at most once.\n * @return {Disposable} The disposable object that runs the given action upon disposal.\n */\n Disposable.create = function (action) {\n return new Disposable(action);\n };\n /** Performs the task of cleaning up resources. */\n Disposable.prototype.dispose = function () {\n if (!this.isDisposed) {\n this.action();\n this.isDisposed = true;\n }\n };\n /**\n * Gets the disposable that does nothing when disposed.\n */\n Disposable.empty = { dispose: discount_lodash_1.noop };\n return Disposable;\n}());\nexports.Disposable = Disposable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Represents a disposable resource whose underlying disposable resource can\n * be replaced by another disposable resource, causing automatic disposal of\n * the previous underlying disposable resource.\n */\nvar SerialDisposable = /** @class */ (function () {\n function SerialDisposable() {\n this.isDisposed = false;\n }\n /**\n * Gets the underlying disposable.\n * @returns {Any} the underlying disposable.\n */\n SerialDisposable.prototype.getDisposable = function () {\n return this.current;\n };\n SerialDisposable.prototype.setDisposable = function (value) {\n var shouldDispose = this.isDisposed;\n if (!shouldDispose) {\n var old = this.current;\n this.current = value;\n if (old) {\n old.dispose();\n }\n }\n if (shouldDispose && value) {\n value.dispose();\n }\n };\n /** Performs the task of cleaning up resources. */\n SerialDisposable.prototype.dispose = function () {\n if (!this.isDisposed) {\n this.isDisposed = true;\n var old = this.current;\n this.current = undefined;\n if (old) {\n old.dispose();\n }\n }\n };\n return SerialDisposable;\n}());\nexports.SerialDisposable = SerialDisposable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Represents a group of disposable resources that are disposed together.\n * @constructor\n */\nvar CompositeDisposable = /** @class */ (function () {\n function CompositeDisposable() {\n var disposables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n disposables[_i] = arguments[_i];\n }\n this.isDisposed = false;\n this.disposables = disposables;\n }\n /**\n * Adds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed.\n * @param {Any} item Disposable to add.\n */\n CompositeDisposable.prototype.add = function (item) {\n if (this.isDisposed) {\n item.dispose();\n }\n else {\n this.disposables.push(item);\n }\n };\n /**\n * Removes and disposes the first occurrence of a disposable from the CompositeDisposable.\n * @param {Any} item Disposable to remove.\n * @returns {Boolean} true if found; false otherwise.\n */\n CompositeDisposable.prototype.remove = function (item) {\n var shouldDispose = false;\n if (!this.isDisposed) {\n var idx = this.disposables.indexOf(item);\n if (idx !== -1) {\n shouldDispose = true;\n this.disposables.splice(idx, 1);\n item.dispose();\n }\n }\n return shouldDispose;\n };\n /**\n * Disposes all disposables in the group and removes them from the group but\n * does not dispose the CompositeDisposable.\n */\n CompositeDisposable.prototype.clear = function () {\n if (!this.isDisposed) {\n var len = this.disposables.length;\n var currentDisposables = new Array(len);\n for (var i = 0; i < len; i++) {\n currentDisposables[i] = this.disposables[i];\n }\n this.disposables = [];\n for (var i = 0; i < len; i++) {\n currentDisposables[i].dispose();\n }\n }\n };\n /**\n * Disposes all disposables in the group and removes them from the group.\n */\n CompositeDisposable.prototype.dispose = function () {\n if (!this.isDisposed) {\n this.isDisposed = true;\n var len = this.disposables.length;\n var currentDisposables = new Array(len);\n for (var i = 0; i < len; i++) {\n currentDisposables[i] = this.disposables[i];\n }\n this.disposables = [];\n for (var i = 0; i < len; i++) {\n currentDisposables[i].dispose();\n }\n }\n };\n return CompositeDisposable;\n}());\nexports.CompositeDisposable = CompositeDisposable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar getDecoratedComponent_1 = require(\"./utils/getDecoratedComponent\");\nvar discount_lodash_1 = require(\"./utils/discount_lodash\");\nvar invariant = require('invariant');\nvar ALLOWED_SPEC_METHODS = ['canDrag', 'beginDrag', 'isDragging', 'endDrag'];\nvar REQUIRED_SPEC_METHODS = ['beginDrag'];\nvar SourceImpl = /** @class */ (function () {\n function SourceImpl(spec, monitor, ref) {\n var _this = this;\n this.spec = spec;\n this.monitor = monitor;\n this.ref = ref;\n this.props = null;\n this.beginDrag = function () {\n if (!_this.props) {\n return;\n }\n var item = _this.spec.beginDrag(_this.props, _this.monitor, _this.ref.current);\n if (process.env.NODE_ENV !== 'production') {\n invariant(discount_lodash_1.isPlainObject(item), 'beginDrag() must return a plain object that represents the dragged item. ' +\n 'Instead received %s. ' +\n 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', item);\n }\n return item;\n };\n }\n SourceImpl.prototype.receiveProps = function (props) {\n this.props = props;\n };\n SourceImpl.prototype.canDrag = function () {\n if (!this.props) {\n return false;\n }\n if (!this.spec.canDrag) {\n return true;\n }\n return this.spec.canDrag(this.props, this.monitor);\n };\n SourceImpl.prototype.isDragging = function (globalMonitor, sourceId) {\n if (!this.props) {\n return false;\n }\n if (!this.spec.isDragging) {\n return sourceId === globalMonitor.getSourceId();\n }\n return this.spec.isDragging(this.props, this.monitor);\n };\n SourceImpl.prototype.endDrag = function () {\n if (!this.props) {\n return;\n }\n if (!this.spec.endDrag) {\n return;\n }\n this.spec.endDrag(this.props, this.monitor, getDecoratedComponent_1.getDecoratedComponent(this.ref));\n };\n return SourceImpl;\n}());\nfunction createSourceFactory(spec) {\n Object.keys(spec).forEach(function (key) {\n invariant(ALLOWED_SPEC_METHODS.indexOf(key) > -1, 'Expected the drag source specification to only have ' +\n 'some of the following keys: %s. ' +\n 'Instead received a specification with an unexpected \"%s\" key. ' +\n 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', ALLOWED_SPEC_METHODS.join(', '), key);\n invariant(typeof spec[key] === 'function', 'Expected %s in the drag source specification to be a function. ' +\n 'Instead received a specification with %s: %s. ' +\n 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', key, key, spec[key]);\n });\n REQUIRED_SPEC_METHODS.forEach(function (key) {\n invariant(typeof spec[key] === 'function', 'Expected %s in the drag source specification to be a function. ' +\n 'Instead received a specification with %s: %s. ' +\n 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', key, key, spec[key]);\n });\n return function createSource(monitor, ref) {\n return new SourceImpl(spec, monitor, ref);\n };\n}\nexports.default = createSourceFactory;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\nvar invariant = require('invariant');\nfunction setRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n }\n else {\n ref.current = node;\n }\n}\nfunction 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. ' +\n 'Please convert it to use a callback ref instead, or wrap it into a or
. ' +\n 'Read more: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute');\n if (!previousRef) {\n // When there is no ref on the element, use the new ref directly\n return react_1.cloneElement(element, {\n ref: newRef,\n });\n }\n return react_1.cloneElement(element, {\n ref: function (node) {\n setRef(newRef, node);\n if (previousRef) {\n setRef(previousRef, node);\n }\n },\n });\n}\nexports.default = cloneWithRef;\n","\"use strict\";\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function (search, thisLen) {\n if (thisLen === undefined || thisLen > this.length) {\n thisLen = this.length;\n }\n return this.substring(thisLen - search.length, thisLen) === search;\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar checkDecoratorArguments_1 = require(\"./utils/checkDecoratorArguments\");\nvar decorateHandler_1 = require(\"./decorateHandler\");\nvar registerTarget_1 = require(\"./registerTarget\");\nvar createTargetFactory_1 = require(\"./createTargetFactory\");\nvar isValidType_1 = require(\"./utils/isValidType\");\nvar DropTargetMonitorImpl_1 = require(\"./DropTargetMonitorImpl\");\nvar TargetConnector_1 = require(\"./TargetConnector\");\nvar discount_lodash_1 = require(\"./utils/discount_lodash\");\nvar invariant = require('invariant');\nfunction DropTarget(type, spec, collect, options) {\n if (options === void 0) { options = {}; }\n checkDecoratorArguments_1.default('DropTarget', 'type, spec, collect[, options]', type, spec, collect, options);\n var getType = type;\n if (typeof type !== 'function') {\n invariant(isValidType_1.default(type, true), 'Expected \"type\" provided as the first argument to DropTarget to be ' +\n 'a string, an array of strings, or a function that returns either given ' +\n 'the current props. Instead, received %s. ' +\n 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', type);\n getType = function () { return type; };\n }\n invariant(discount_lodash_1.isPlainObject(spec), 'Expected \"spec\" provided as the second argument to DropTarget to be ' +\n 'a plain object. Instead, received %s. ' +\n 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', spec);\n var createTarget = createTargetFactory_1.default(spec);\n invariant(typeof collect === 'function', 'Expected \"collect\" provided as the third argument to DropTarget to be ' +\n 'a function that returns a plain object of props to inject. ' +\n 'Instead, received %s. ' +\n 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', collect);\n invariant(discount_lodash_1.isPlainObject(options), 'Expected \"options\" provided as the fourth argument to DropTarget to be ' +\n 'a plain object when specified. ' +\n 'Instead, received %s. ' +\n 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', collect);\n return function decorateTarget(DecoratedComponent) {\n return decorateHandler_1.default({\n containerDisplayName: 'DropTarget',\n createHandler: createTarget,\n registerHandler: registerTarget_1.default,\n createMonitor: function (manager) {\n return new DropTargetMonitorImpl_1.default(manager);\n },\n createConnector: function (backend) { return new TargetConnector_1.default(backend); },\n DecoratedComponent: DecoratedComponent,\n getType: getType,\n collect: collect,\n options: options,\n });\n };\n}\nexports.default = DropTarget;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar getDecoratedComponent_1 = require(\"./utils/getDecoratedComponent\");\nvar discount_lodash_1 = require(\"./utils/discount_lodash\");\nvar invariant = require('invariant');\nvar ALLOWED_SPEC_METHODS = ['canDrop', 'hover', 'drop'];\nvar TargetImpl = /** @class */ (function () {\n function TargetImpl(spec, monitor, ref) {\n this.spec = spec;\n this.monitor = monitor;\n this.ref = ref;\n this.props = null;\n }\n TargetImpl.prototype.receiveProps = function (props) {\n this.props = props;\n };\n TargetImpl.prototype.receiveMonitor = function (monitor) {\n this.monitor = monitor;\n };\n TargetImpl.prototype.canDrop = function () {\n if (!this.spec.canDrop) {\n return true;\n }\n return this.spec.canDrop(this.props, this.monitor);\n };\n TargetImpl.prototype.hover = function () {\n if (!this.spec.hover) {\n return;\n }\n this.spec.hover(this.props, this.monitor, getDecoratedComponent_1.getDecoratedComponent(this.ref));\n };\n TargetImpl.prototype.drop = function () {\n if (!this.spec.drop) {\n return undefined;\n }\n var dropResult = this.spec.drop(this.props, this.monitor, this.ref.current);\n if (process.env.NODE_ENV !== 'production') {\n invariant(typeof dropResult === 'undefined' || discount_lodash_1.isPlainObject(dropResult), 'drop() must either return undefined, or an object that represents the drop result. ' +\n 'Instead received %s. ' +\n 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', dropResult);\n }\n return dropResult;\n };\n return TargetImpl;\n}());\nfunction createTargetFactory(spec) {\n Object.keys(spec).forEach(function (key) {\n invariant(ALLOWED_SPEC_METHODS.indexOf(key) > -1, 'Expected the drop target specification to only have ' +\n 'some of the following keys: %s. ' +\n 'Instead received a specification with an unexpected \"%s\" key. ' +\n 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', ALLOWED_SPEC_METHODS.join(', '), key);\n invariant(typeof spec[key] === 'function', 'Expected %s in the drop target specification to be a function. ' +\n 'Instead received a specification with %s: %s. ' +\n 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', key, key, spec[key]);\n });\n return function createTarget(monitor, ref) {\n return new TargetImpl(spec, monitor, ref);\n };\n}\nexports.default = createTargetFactory;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\n/*\n * A utility for rendering a drag preview image\n */\nvar DragPreviewImage = React.memo(function (_a) {\n var connect = _a.connect, src = _a.src;\n if (typeof Image !== 'undefined') {\n var img_1 = new Image();\n img_1.src = src;\n img_1.onload = function () { return connect(img_1); };\n }\n return null;\n});\nDragPreviewImage.displayName = 'DragPreviewImage';\nexports.default = DragPreviewImage;\n","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(require(\"./useDrag\"));\n__export(require(\"./useDrop\"));\n__export(require(\"./useDragLayer\"));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar useMonitorOutput_1 = require(\"./internal/useMonitorOutput\");\nvar drag_1 = require(\"./internal/drag\");\nvar react_1 = require(\"react\");\nvar invariant = require('invariant');\n/**\n * useDragSource hook\n * @param sourceSpec The drag source specification *\n */\nfunction useDrag(spec) {\n var specRef = react_1.useRef(spec);\n specRef.current = spec;\n // TODO: wire options into createSourceConnector\n invariant(spec.item != null, 'item must be defined');\n invariant(spec.item.type != null, 'item type must be defined');\n var _a = drag_1.useDragSourceMonitor(), monitor = _a[0], connector = _a[1];\n drag_1.useDragHandler(specRef, monitor, connector);\n var result = useMonitorOutput_1.useMonitorOutput(monitor, specRef.current.collect || (function () { return ({}); }), function () { return connector.reconnect(); });\n var connectDragSource = react_1.useMemo(function () { return connector.hooks.dragSource(); }, [\n connector,\n ]);\n var connectDragPreview = react_1.useMemo(function () { return connector.hooks.dragPreview(); }, [\n connector,\n ]);\n react_1.useEffect(function () {\n connector.dragSourceOptions = specRef.current.options || null;\n connector.reconnect();\n }, [connector]);\n react_1.useEffect(function () {\n connector.dragPreviewOptions = specRef.current.previewOptions || null;\n connector.reconnect();\n }, [connector]);\n return [result, connectDragSource, connectDragPreview];\n}\nexports.useDrag = useDrag;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\nvar registerSource_1 = require(\"../../registerSource\");\nvar useDragDropManager_1 = require(\"./useDragDropManager\");\nvar DragSourceMonitorImpl_1 = require(\"../../DragSourceMonitorImpl\");\nvar SourceConnector_1 = require(\"../../SourceConnector\");\nvar invariant = require('invariant');\nfunction useDragSourceMonitor() {\n var manager = useDragDropManager_1.useDragDropManager();\n var monitor = react_1.useMemo(function () { return new DragSourceMonitorImpl_1.default(manager); }, [manager]);\n var connector = react_1.useMemo(function () { return new SourceConnector_1.default(manager.getBackend()); }, [\n manager,\n ]);\n return [monitor, connector];\n}\nexports.useDragSourceMonitor = useDragSourceMonitor;\nfunction useDragHandler(spec, monitor, connector) {\n var manager = useDragDropManager_1.useDragDropManager();\n // Can't use createSourceFactory, as semantics are different\n var handler = react_1.useMemo(function () {\n return {\n beginDrag: function () {\n var _a = spec.current, begin = _a.begin, item = _a.item;\n if (begin) {\n var beginResult = begin(monitor);\n invariant(beginResult == null || typeof beginResult === 'object', 'dragSpec.begin() must either return an object, undefined, or null');\n return beginResult || item || {};\n }\n return item || {};\n },\n canDrag: function () {\n if (typeof spec.current.canDrag === 'boolean') {\n return spec.current.canDrag;\n }\n else if (typeof spec.current.canDrag === 'function') {\n return spec.current.canDrag(monitor);\n }\n else {\n return true;\n }\n },\n isDragging: function (globalMonitor, target) {\n var isDragging = spec.current.isDragging;\n return isDragging\n ? isDragging(monitor)\n : target === globalMonitor.getSourceId();\n },\n endDrag: function () {\n var end = spec.current.end;\n if (end) {\n end(monitor.getItem(), monitor);\n }\n connector.reconnect();\n },\n };\n }, []);\n react_1.useEffect(function registerHandler() {\n var _a = registerSource_1.default(spec.current.item.type, handler, manager), handlerId = _a[0], unregister = _a[1];\n monitor.receiveHandlerId(handlerId);\n connector.receiveHandlerId(handlerId);\n return unregister;\n }, []);\n}\nexports.useDragHandler = useDragHandler;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar useMonitorOutput_1 = require(\"./internal/useMonitorOutput\");\nvar drop_1 = require(\"./internal/drop\");\nvar react_1 = require(\"react\");\nvar invariant = require('invariant');\n/**\n * useDropTarget Hook\n * @param spec The drop target specification\n */\nfunction useDrop(spec) {\n var specRef = react_1.useRef(spec);\n specRef.current = spec;\n invariant(spec.accept != null, 'accept must be defined');\n var _a = drop_1.useDropTargetMonitor(), monitor = _a[0], connector = _a[1];\n drop_1.useDropHandler(specRef, monitor, connector);\n var result = useMonitorOutput_1.useMonitorOutput(monitor, specRef.current.collect || (function () { return ({}); }), function () { return connector.reconnect(); });\n var connectDropTarget = react_1.useMemo(function () { return connector.hooks.dropTarget(); }, [\n connector,\n ]);\n react_1.useEffect(function () {\n connector.dropTargetOptions = spec.options || null;\n connector.reconnect();\n }, [spec.options]);\n return [result, connectDropTarget];\n}\nexports.useDrop = useDrop;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\nvar registerTarget_1 = require(\"../../registerTarget\");\nvar useDragDropManager_1 = require(\"./useDragDropManager\");\nvar TargetConnector_1 = require(\"../../TargetConnector\");\nvar DropTargetMonitorImpl_1 = require(\"../../DropTargetMonitorImpl\");\nfunction useDropTargetMonitor() {\n var manager = useDragDropManager_1.useDragDropManager();\n var monitor = react_1.useMemo(function () { return new DropTargetMonitorImpl_1.default(manager); }, [manager]);\n var connector = react_1.useMemo(function () { return new TargetConnector_1.default(manager.getBackend()); }, [\n manager,\n ]);\n return [monitor, connector];\n}\nexports.useDropTargetMonitor = useDropTargetMonitor;\nfunction useDropHandler(spec, monitor, connector) {\n var manager = useDragDropManager_1.useDragDropManager();\n // Can't use createSourceFactory, as semantics are different\n var handler = react_1.useMemo(function () {\n return {\n canDrop: function () {\n var canDrop = spec.current.canDrop;\n return canDrop ? canDrop(monitor.getItem(), monitor) : true;\n },\n hover: function () {\n var hover = spec.current.hover;\n if (hover) {\n hover(monitor.getItem(), monitor);\n }\n },\n drop: function () {\n var drop = spec.current.drop;\n if (drop) {\n return drop(monitor.getItem(), monitor);\n }\n },\n };\n }, [monitor]);\n react_1.useEffect(function registerHandler() {\n var _a = registerTarget_1.default(spec.current.accept, handler, manager), handlerId = _a[0], unregister = _a[1];\n monitor.receiveHandlerId(handlerId);\n connector.receiveHandlerId(handlerId);\n return unregister;\n }, [monitor, connector]);\n}\nexports.useDropHandler = useDropHandler;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\nvar useDragDropManager_1 = require(\"./internal/useDragDropManager\");\nvar useCollector_1 = require(\"./internal/useCollector\");\n/**\n * useDragLayer Hook\n * @param collector The property collector\n */\nfunction useDragLayer(collect) {\n var dragDropManager = useDragDropManager_1.useDragDropManager();\n var monitor = dragDropManager.getMonitor();\n var _a = useCollector_1.useCollector(monitor, collect), collected = _a[0], updateCollected = _a[1];\n react_1.useEffect(function () { return monitor.subscribeToOffsetChange(updateCollected); });\n react_1.useEffect(function () { return monitor.subscribeToStateChange(updateCollected); });\n return collected;\n}\nexports.useDragLayer = useDragLayer;\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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EnterLeaveCounter_1 = require(\"./EnterLeaveCounter\");\nvar BrowserDetector_1 = require(\"./BrowserDetector\");\nvar OffsetUtils_1 = require(\"./OffsetUtils\");\nvar NativeDragSources_1 = require(\"./NativeDragSources\");\nvar NativeTypes = require(\"./NativeTypes\");\nvar HTML5Backend = /** @class */ (function () {\n function HTML5Backend(manager) {\n var _this = this;\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 this.getSourceClientOffset = function (sourceId) {\n return OffsetUtils_1.getNodeClientOffset(_this.sourceNodes.get(sourceId));\n };\n this.endDragNativeItem = function () {\n if (!_this.isDraggingNativeItem()) {\n return;\n }\n _this.actions.endDrag();\n _this.registry.removeSource(_this.currentNativeHandle);\n _this.currentNativeHandle = null;\n _this.currentNativeSource = null;\n };\n this.isNodeInDocument = function (node) {\n // Check the node either in the main document or in the current context\n return ((!!document && document.body.contains(node)) ||\n (!!_this.window && _this.window.document.body.contains(node)));\n };\n this.endDragIfSourceWasRemovedFromDOM = function () {\n var node = _this.currentDragSourceNode;\n if (_this.isNodeInDocument(node)) {\n return;\n }\n if (_this.clearCurrentDragSourceNode()) {\n _this.actions.endDrag();\n }\n };\n this.handleTopDragStartCapture = function () {\n _this.clearCurrentDragSourceNode();\n _this.dragStartSourceIds = [];\n };\n this.handleTopDragStart = function (e) {\n var dragStartSourceIds = _this.dragStartSourceIds;\n _this.dragStartSourceIds = null;\n var clientOffset = OffsetUtils_1.getEventClientOffset(e);\n // Avoid crashing if we missed a drop event or our previous drag died\n if (_this.monitor.isDragging()) {\n _this.actions.endDrag();\n }\n // Don't publish the source just yet (see why below)\n _this.actions.beginDrag(dragStartSourceIds || [], {\n publishSource: false,\n getSourceClientOffset: _this.getSourceClientOffset,\n clientOffset: clientOffset,\n });\n var dataTransfer = e.dataTransfer;\n var nativeType = NativeDragSources_1.matchNativeItemType(dataTransfer);\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 var sourceNode = _this.sourceNodes.get(sourceId);\n var dragPreview = _this.sourcePreviewNodes.get(sourceId) || sourceNode;\n if (dragPreview) {\n var _a = _this.getCurrentSourcePreviewNodeOptions(), anchorX = _a.anchorX, anchorY = _a.anchorY, offsetX = _a.offsetX, offsetY = _a.offsetY;\n var anchorPoint = { anchorX: anchorX, anchorY: anchorY };\n var offsetPoint = { offsetX: offsetX, offsetY: offsetY };\n var dragPreviewOffset = OffsetUtils_1.getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint);\n dataTransfer.setDragImage(dragPreview, dragPreviewOffset.x, dragPreviewOffset.y);\n }\n }\n try {\n // Firefox won't drag without setting data\n dataTransfer.setData('application/json', {});\n }\n catch (err) {\n // IE doesn't support MIME types in setData\n }\n // Store drag source node so we can check whether\n // it is removed from DOM and trigger endDrag manually.\n _this.setCurrentDragSourceNode(e.target);\n // Now we are ready to publish the drag source.. or are we not?\n var captureDraggingState = _this.getCurrentSourcePreviewNodeOptions().captureDraggingState;\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 () { return _this.actions.publishDragSource(); }, 0);\n }\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 }\n else if (nativeType) {\n // A native item (such as URL) dragged from inside the document\n _this.beginDragNativeItem(nativeType);\n }\n else if (dataTransfer &&\n !dataTransfer.types &&\n ((e.target && !e.target.hasAttribute) ||\n !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 }\n else {\n // If by this time no drag source reacted, tell browser not to drag.\n e.preventDefault();\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 this.handleTopDragEnterCapture = function (e) {\n _this.dragEnterTargetIds = [];\n var isFirstEnter = _this.enterLeaveCounter.enter(e.target);\n if (!isFirstEnter || _this.monitor.isDragging()) {\n return;\n }\n var dataTransfer = e.dataTransfer;\n var nativeType = NativeDragSources_1.matchNativeItemType(dataTransfer);\n if (nativeType) {\n // A native item (such as file or URL) dragged from outside the document\n _this.beginDragNativeItem(nativeType);\n }\n };\n this.handleTopDragEnter = function (e) {\n var dragEnterTargetIds = _this.dragEnterTargetIds;\n _this.dragEnterTargetIds = [];\n if (!_this.monitor.isDragging()) {\n // This is probably a native item type we don't understand.\n return;\n }\n _this.altKeyPressed = e.altKey;\n if (!BrowserDetector_1.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: OffsetUtils_1.getEventClientOffset(e),\n });\n }\n var canDrop = dragEnterTargetIds.some(function (targetId) {\n return _this.monitor.canDropOnTarget(targetId);\n });\n if (canDrop) {\n // IE requires this to fire dragover events\n e.preventDefault();\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = _this.getCurrentDropEffect();\n }\n }\n };\n this.handleTopDragOverCapture = function () {\n _this.dragOverTargetIds = [];\n };\n this.handleTopDragOver = function (e) {\n var dragOverTargetIds = _this.dragOverTargetIds;\n _this.dragOverTargetIds = [];\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 if (e.dataTransfer) {\n e.dataTransfer.dropEffect = 'none';\n }\n return;\n }\n _this.altKeyPressed = e.altKey;\n _this.actions.hover(dragOverTargetIds || [], {\n clientOffset: OffsetUtils_1.getEventClientOffset(e),\n });\n var canDrop = (dragOverTargetIds || []).some(function (targetId) {\n return _this.monitor.canDropOnTarget(targetId);\n });\n if (canDrop) {\n // Show user-specified drop effect.\n e.preventDefault();\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = _this.getCurrentDropEffect();\n }\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 }\n else {\n e.preventDefault();\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = 'none';\n }\n }\n };\n this.handleTopDragLeaveCapture = function (e) {\n if (_this.isDraggingNativeItem()) {\n e.preventDefault();\n }\n var isLastLeave = _this.enterLeaveCounter.leave(e.target);\n if (!isLastLeave) {\n return;\n }\n if (_this.isDraggingNativeItem()) {\n _this.endDragNativeItem();\n }\n };\n this.handleTopDropCapture = function (e) {\n _this.dropTargetIds = [];\n e.preventDefault();\n if (_this.isDraggingNativeItem()) {\n _this.currentNativeSource.mutateItemByReadingDataTransfer(e.dataTransfer);\n }\n _this.enterLeaveCounter.reset();\n };\n this.handleTopDrop = function (e) {\n var dropTargetIds = _this.dropTargetIds;\n _this.dropTargetIds = [];\n _this.actions.hover(dropTargetIds, {\n clientOffset: OffsetUtils_1.getEventClientOffset(e),\n });\n _this.actions.drop({ dropEffect: _this.getCurrentDropEffect() });\n if (_this.isDraggingNativeItem()) {\n _this.endDragNativeItem();\n }\n else {\n _this.endDragIfSourceWasRemovedFromDOM();\n }\n };\n this.handleSelectStart = function (e) {\n var target = e.target;\n // Only IE requires us to explicitly say\n // we want drag drop operation to start\n if (typeof target.dragDrop !== 'function') {\n return;\n }\n // Inputs and textareas should be selectable\n if (target.tagName === 'INPUT' ||\n target.tagName === 'SELECT' ||\n target.tagName === 'TEXTAREA' ||\n target.isContentEditable) {\n return;\n }\n // For other targets, ask IE\n // to enable drag and drop\n e.preventDefault();\n target.dragDrop();\n };\n this.actions = manager.getActions();\n this.monitor = manager.getMonitor();\n this.registry = manager.getRegistry();\n this.context = manager.getContext();\n this.enterLeaveCounter = new EnterLeaveCounter_1.default(this.isNodeInDocument);\n }\n Object.defineProperty(HTML5Backend.prototype, \"window\", {\n // public for test\n get: function () {\n if (this.context && this.context.window) {\n return this.context.window;\n }\n else if (typeof window !== 'undefined') {\n return window;\n }\n return undefined;\n },\n enumerable: true,\n configurable: true\n });\n HTML5Backend.prototype.setup = function () {\n if (this.window === undefined) {\n return;\n }\n if (this.window.__isReactDndBackendSetUp) {\n throw new Error('Cannot have two HTML5 backends at the same time.');\n }\n this.window.__isReactDndBackendSetUp = true;\n this.addEventListeners(this.window);\n };\n HTML5Backend.prototype.teardown = function () {\n if (this.window === undefined) {\n return;\n }\n this.window.__isReactDndBackendSetUp = false;\n this.removeEventListeners(this.window);\n this.clearCurrentDragSourceNode();\n if (this.asyncEndDragFrameId) {\n this.window.cancelAnimationFrame(this.asyncEndDragFrameId);\n }\n };\n HTML5Backend.prototype.connectDragPreview = function (sourceId, node, options) {\n var _this = this;\n this.sourcePreviewNodeOptions.set(sourceId, options);\n this.sourcePreviewNodes.set(sourceId, node);\n return function () {\n _this.sourcePreviewNodes.delete(sourceId);\n _this.sourcePreviewNodeOptions.delete(sourceId);\n };\n };\n HTML5Backend.prototype.connectDragSource = function (sourceId, node, options) {\n var _this = this;\n this.sourceNodes.set(sourceId, node);\n this.sourceNodeOptions.set(sourceId, options);\n var handleDragStart = function (e) { return _this.handleDragStart(e, sourceId); };\n var handleSelectStart = function (e) { return _this.handleSelectStart(e); };\n node.setAttribute('draggable', 'true');\n node.addEventListener('dragstart', handleDragStart);\n node.addEventListener('selectstart', handleSelectStart);\n return function () {\n _this.sourceNodes.delete(sourceId);\n _this.sourceNodeOptions.delete(sourceId);\n node.removeEventListener('dragstart', handleDragStart);\n node.removeEventListener('selectstart', handleSelectStart);\n node.setAttribute('draggable', 'false');\n };\n };\n HTML5Backend.prototype.connectDropTarget = function (targetId, node) {\n var _this = this;\n var handleDragEnter = function (e) { return _this.handleDragEnter(e, targetId); };\n var handleDragOver = function (e) { return _this.handleDragOver(e, targetId); };\n var handleDrop = function (e) { return _this.handleDrop(e, targetId); };\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 HTML5Backend.prototype.addEventListeners = function (target) {\n // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n if (!target.addEventListener) {\n return;\n }\n target.addEventListener('dragstart', this\n .handleTopDragStart);\n target.addEventListener('dragstart', this.handleTopDragStartCapture, true);\n target.addEventListener('dragend', this.handleTopDragEndCapture, true);\n target.addEventListener('dragenter', this\n .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 HTML5Backend.prototype.removeEventListeners = function (target) {\n // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n if (!target.removeEventListener) {\n return;\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\n .handleTopDragEnter);\n target.removeEventListener('dragenter', this.handleTopDragEnterCapture, true);\n target.removeEventListener('dragleave', this.handleTopDragLeaveCapture, true);\n target.removeEventListener('dragover', this\n .handleTopDragOver);\n target.removeEventListener('dragover', this.handleTopDragOverCapture, true);\n target.removeEventListener('drop', this.handleTopDrop);\n target.removeEventListener('drop', this.handleTopDropCapture, true);\n };\n HTML5Backend.prototype.getCurrentSourceNodeOptions = function () {\n var sourceId = this.monitor.getSourceId();\n var sourceNodeOptions = this.sourceNodeOptions.get(sourceId);\n return __assign({ dropEffect: this.altKeyPressed ? 'copy' : 'move' }, (sourceNodeOptions || {}));\n };\n HTML5Backend.prototype.getCurrentDropEffect = function () {\n if (this.isDraggingNativeItem()) {\n // It makes more sense to default to 'copy' for native resources\n return 'copy';\n }\n return this.getCurrentSourceNodeOptions().dropEffect;\n };\n HTML5Backend.prototype.getCurrentSourcePreviewNodeOptions = function () {\n var sourceId = this.monitor.getSourceId();\n var sourcePreviewNodeOptions = this.sourcePreviewNodeOptions.get(sourceId);\n return __assign({ anchorX: 0.5, anchorY: 0.5, captureDraggingState: false }, (sourcePreviewNodeOptions || {}));\n };\n HTML5Backend.prototype.isDraggingNativeItem = function () {\n var itemType = this.monitor.getItemType();\n return Object.keys(NativeTypes).some(function (key) { return NativeTypes[key] === itemType; });\n };\n HTML5Backend.prototype.beginDragNativeItem = function (type) {\n this.clearCurrentDragSourceNode();\n this.currentNativeSource = NativeDragSources_1.createNativeDragSource(type);\n this.currentNativeHandle = this.registry.addSource(type, this.currentNativeSource);\n this.actions.beginDrag([this.currentNativeHandle]);\n };\n HTML5Backend.prototype.setCurrentDragSourceNode = function (node) {\n var _this = this;\n this.clearCurrentDragSourceNode();\n this.currentDragSourceNode = node;\n // 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 var MOUSE_MOVE_TIMEOUT = 1000;\n // 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 this.mouseMoveTimeoutTimer = setTimeout(function () {\n return (_this.window &&\n _this.window.addEventListener('mousemove', _this.endDragIfSourceWasRemovedFromDOM, true));\n }, MOUSE_MOVE_TIMEOUT);\n };\n HTML5Backend.prototype.clearCurrentDragSourceNode = function () {\n if (this.currentDragSourceNode) {\n this.currentDragSourceNode = null;\n if (this.window) {\n this.window.clearTimeout(this.mouseMoveTimeoutTimer || undefined);\n this.window.removeEventListener('mousemove', this.endDragIfSourceWasRemovedFromDOM, true);\n }\n this.mouseMoveTimeoutTimer = null;\n return true;\n }\n return false;\n };\n HTML5Backend.prototype.handleDragStart = function (e, sourceId) {\n if (!this.dragStartSourceIds) {\n this.dragStartSourceIds = [];\n }\n this.dragStartSourceIds.unshift(sourceId);\n };\n HTML5Backend.prototype.handleDragEnter = function (e, targetId) {\n this.dragEnterTargetIds.unshift(targetId);\n };\n HTML5Backend.prototype.handleDragOver = function (e, targetId) {\n if (this.dragOverTargetIds === null) {\n this.dragOverTargetIds = [];\n }\n this.dragOverTargetIds.unshift(targetId);\n };\n HTML5Backend.prototype.handleDrop = function (e, targetId) {\n this.dropTargetIds.unshift(targetId);\n };\n return HTML5Backend;\n}());\nexports.default = HTML5Backend;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar discount_lodash_1 = require(\"./utils/discount_lodash\");\nvar EnterLeaveCounter = /** @class */ (function () {\n function EnterLeaveCounter(isNodeInDocument) {\n this.entered = [];\n this.isNodeInDocument = isNodeInDocument;\n }\n EnterLeaveCounter.prototype.enter = function (enteringNode) {\n var _this = this;\n var previousLength = this.entered.length;\n var isNodeEntered = function (node) {\n return _this.isNodeInDocument(node) &&\n (!node.contains || node.contains(enteringNode));\n };\n this.entered = discount_lodash_1.union(this.entered.filter(isNodeEntered), [enteringNode]);\n return previousLength === 0 && this.entered.length > 0;\n };\n EnterLeaveCounter.prototype.leave = function (leavingNode) {\n var previousLength = this.entered.length;\n this.entered = discount_lodash_1.without(this.entered.filter(this.isNodeInDocument), leavingNode);\n return previousLength > 0 && this.entered.length === 0;\n };\n EnterLeaveCounter.prototype.reset = function () {\n this.entered = [];\n };\n return EnterLeaveCounter;\n}());\nexports.default = EnterLeaveCounter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BrowserDetector_1 = require(\"./BrowserDetector\");\nvar MonotonicInterpolant_1 = require(\"./MonotonicInterpolant\");\nvar ELEMENT_NODE = 1;\nfunction getNodeClientOffset(node) {\n var el = node.nodeType === ELEMENT_NODE ? node : node.parentElement;\n if (!el) {\n return null;\n }\n var _a = el.getBoundingClientRect(), top = _a.top, left = _a.left;\n return { x: left, y: top };\n}\nexports.getNodeClientOffset = getNodeClientOffset;\nfunction getEventClientOffset(e) {\n return {\n x: e.clientX,\n y: e.clientY,\n };\n}\nexports.getEventClientOffset = getEventClientOffset;\nfunction isImageNode(node) {\n return (node.nodeName === 'IMG' &&\n (BrowserDetector_1.isFirefox() || !document.documentElement.contains(node)));\n}\nfunction getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight) {\n var dragPreviewWidth = isImage ? dragPreview.width : sourceWidth;\n var dragPreviewHeight = isImage ? dragPreview.height : sourceHeight;\n // Work around @2x coordinate discrepancies in browsers\n if (BrowserDetector_1.isSafari() && isImage) {\n dragPreviewHeight /= window.devicePixelRatio;\n dragPreviewWidth /= window.devicePixelRatio;\n }\n return { dragPreviewWidth: dragPreviewWidth, dragPreviewHeight: dragPreviewHeight };\n}\nfunction 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, sourceHeight = sourceNode.offsetHeight;\n var anchorX = anchorPoint.anchorX, anchorY = anchorPoint.anchorY;\n var _a = getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight), dragPreviewWidth = _a.dragPreviewWidth, dragPreviewHeight = _a.dragPreviewHeight;\n var calculateYOffset = function () {\n var interpolantY = new MonotonicInterpolant_1.default([0, 0.5, 1], [\n // Dock to the top\n offsetFromDragPreview.y,\n // Align at the center\n (offsetFromDragPreview.y / sourceHeight) * dragPreviewHeight,\n // Dock to the bottom\n offsetFromDragPreview.y + dragPreviewHeight - sourceHeight,\n ]);\n var y = interpolantY.interpolate(anchorY);\n // Work around Safari 8 positioning bug\n if (BrowserDetector_1.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 return y;\n };\n var calculateXOffset = function () {\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_1.default([0, 0.5, 1], [\n // Dock to the left\n offsetFromDragPreview.x,\n // Align at the center\n (offsetFromDragPreview.x / sourceWidth) * dragPreviewWidth,\n // Dock to the right\n offsetFromDragPreview.x + dragPreviewWidth - sourceWidth,\n ]);\n return interpolantX.interpolate(anchorX);\n };\n // Force offsets if specified in the options.\n var offsetX = offsetPoint.offsetX, 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}\nexports.getDragPreviewOffset = getDragPreviewOffset;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar MonotonicInterpolant = /** @class */ (function () {\n function MonotonicInterpolant(xs, ys) {\n var length = xs.length;\n // Rearrange xs and ys so that xs is sorted\n var indexes = [];\n for (var i = 0; i < length; i++) {\n indexes.push(i);\n }\n indexes.sort(function (a, b) { return (xs[a] < xs[b] ? -1 : 1); });\n // Get consecutive differences and slopes\n var dys = [];\n var dxs = [];\n var ms = [];\n var dx;\n var dy;\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 }\n // Get degree-1 coefficients\n var c1s = [ms[0]];\n for (var i = 0; i < dxs.length - 1; i++) {\n var m2 = ms[i];\n var mNext = ms[i + 1];\n if (m2 * mNext <= 0) {\n c1s.push(0);\n }\n else {\n dx = dxs[i];\n var dxNext = dxs[i + 1];\n var common = dx + dxNext;\n c1s.push(3 * common / ((common + dxNext) / m2 + (common + dx) / mNext));\n }\n }\n c1s.push(ms[ms.length - 1]);\n // Get degree-2 and degree-3 coefficients\n var c2s = [];\n var c3s = [];\n var m;\n for (var i = 0; i < c1s.length - 1; i++) {\n m = ms[i];\n var c1 = c1s[i];\n var invDx = 1 / dxs[i];\n var common = c1 + c1s[i + 1] - m - m;\n c2s.push((m - c1 - common) * invDx);\n c3s.push(common * invDx * invDx);\n }\n this.xs = xs;\n this.ys = ys;\n this.c1s = c1s;\n this.c2s = c2s;\n this.c3s = c3s;\n }\n MonotonicInterpolant.prototype.interpolate = function (x) {\n var _a = this, xs = _a.xs, ys = _a.ys, c1s = _a.c1s, c2s = _a.c2s, c3s = _a.c3s;\n // The rightmost point in the dataset should give an exact result\n var i = xs.length - 1;\n if (x === xs[i]) {\n return ys[i];\n }\n // Search for the interval x is in, returning the corresponding y if x is one of the original xs\n var low = 0;\n var high = c3s.length - 1;\n var mid;\n while (low <= high) {\n mid = Math.floor(0.5 * (low + high));\n var xHere = xs[mid];\n if (xHere < x) {\n low = mid + 1;\n }\n else if (xHere > x) {\n high = mid - 1;\n }\n else {\n return ys[mid];\n }\n }\n i = Math.max(0, high);\n // Interpolate\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 return MonotonicInterpolant;\n}());\nexports.default = MonotonicInterpolant;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar nativeTypesConfig_1 = require(\"./nativeTypesConfig\");\nvar NativeDragSource_1 = require(\"./NativeDragSource\");\nfunction createNativeDragSource(type) {\n return new NativeDragSource_1.NativeDragSource(nativeTypesConfig_1.nativeTypesConfig[type]);\n}\nexports.createNativeDragSource = createNativeDragSource;\nfunction matchNativeItemType(dataTransfer) {\n if (!dataTransfer) {\n return null;\n }\n var dataTransferTypes = Array.prototype.slice.call(dataTransfer.types || []);\n return (Object.keys(nativeTypesConfig_1.nativeTypesConfig).filter(function (nativeItemType) {\n var matchesTypes = nativeTypesConfig_1.nativeTypesConfig[nativeItemType].matchesTypes;\n return matchesTypes.some(function (t) { return dataTransferTypes.indexOf(t) > -1; });\n })[0] || null);\n}\nexports.matchNativeItemType = matchNativeItemType;\n","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar NativeTypes = require(\"../NativeTypes\");\nvar getDataFromDataTransfer_1 = require(\"./getDataFromDataTransfer\");\nexports.nativeTypesConfig = (_a = {},\n _a[NativeTypes.FILE] = {\n exposeProperties: {\n files: function (dataTransfer) {\n return Array.prototype.slice.call(dataTransfer.files);\n },\n items: function (dataTransfer) { return dataTransfer.items; },\n },\n matchesTypes: ['Files'],\n },\n _a[NativeTypes.URL] = {\n exposeProperties: {\n urls: function (dataTransfer, matchesTypes) {\n return getDataFromDataTransfer_1.getDataFromDataTransfer(dataTransfer, matchesTypes, '').split('\\n');\n },\n },\n matchesTypes: ['Url', 'text/uri-list'],\n },\n _a[NativeTypes.TEXT] = {\n exposeProperties: {\n text: function (dataTransfer, matchesTypes) {\n return getDataFromDataTransfer_1.getDataFromDataTransfer(dataTransfer, matchesTypes, '');\n },\n },\n matchesTypes: ['Text', 'text/plain'],\n },\n _a);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction getDataFromDataTransfer(dataTransfer, typesToTry, defaultValue) {\n var result = typesToTry.reduce(function (resultSoFar, typeToTry) { return resultSoFar || dataTransfer.getData(typeToTry); }, '');\n return result != null ? result : defaultValue;\n}\nexports.getDataFromDataTransfer = getDataFromDataTransfer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar NativeDragSource = /** @class */ (function () {\n function NativeDragSource(config) {\n var _this = this;\n this.config = config;\n this.item = {};\n Object.keys(this.config.exposeProperties).forEach(function (property) {\n Object.defineProperty(_this.item, property, {\n configurable: true,\n enumerable: true,\n get: function () {\n // eslint-disable-next-line no-console\n console.warn(\"Browser doesn't allow reading \\\"\" + property + \"\\\" until the drop event.\");\n return null;\n },\n });\n });\n }\n NativeDragSource.prototype.mutateItemByReadingDataTransfer = function (dataTransfer) {\n var _this = this;\n var newProperties = {};\n if (dataTransfer) {\n Object.keys(this.config.exposeProperties).forEach(function (property) {\n newProperties[property] = {\n value: _this.config.exposeProperties[property](dataTransfer, _this.config.matchesTypes),\n };\n });\n }\n Object.defineProperties(this.item, newProperties);\n };\n NativeDragSource.prototype.canDrag = function () {\n return true;\n };\n NativeDragSource.prototype.beginDrag = function () {\n return this.item;\n };\n NativeDragSource.prototype.isDragging = function (monitor, handle) {\n return handle === monitor.getSourceId();\n };\n NativeDragSource.prototype.endDrag = function () {\n // empty\n };\n return NativeDragSource;\n}());\nexports.NativeDragSource = NativeDragSource;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar emptyImage;\nfunction getEmptyImage() {\n if (!emptyImage) {\n emptyImage = new Image();\n emptyImage.src =\n 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\n }\n return emptyImage;\n}\nexports.default = getEmptyImage;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n'use strict';\n\nvar validateFormat = process.env.NODE_ENV !== \"production\" ? function (format) {\n if (format === undefined) {\n throw new Error('invariant(...): Second argument must be a string.');\n }\n} : function (format) {};\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments to provide\n * information about what broke and what you were expecting.\n *\n * The invariant message will be stripped in production, but the invariant will\n * remain to ensure logic does not differ in production.\n */\n\nfunction invariant(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n validateFormat(format);\n\n if (!condition) {\n var error;\n\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return String(args[argIndex++]);\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // Skip invariant's own stack frame.\n\n throw error;\n }\n}\n\nmodule.exports = invariant;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixProperty;\n\nvar _capitalizeString = require('./capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction prefixProperty(prefixProperties, property, style) {\n if (prefixProperties.hasOwnProperty(property)) {\n var newStyle = {};\n var requiredPrefixes = prefixProperties[property];\n var capitalizedProperty = (0, _capitalizeString2.default)(property);\n var keys = Object.keys(style);\n for (var i = 0; i < keys.length; i++) {\n var styleProperty = keys[i];\n if (styleProperty === property) {\n for (var j = 0; j < requiredPrefixes.length; j++) {\n newStyle[requiredPrefixes[j] + capitalizedProperty] = style[property];\n }\n }\n newStyle[styleProperty] = style[styleProperty];\n }\n return newStyle;\n }\n return style;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixValue;\nfunction prefixValue(plugins, property, value, style, metaData) {\n for (var i = 0, len = plugins.length; i < len; ++i) {\n var processedValue = plugins[i](property, value, style, metaData);\n\n // we can stop processing if a value is returned\n // as all plugin criteria are unique\n if (processedValue) {\n return processedValue;\n }\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = addNewValuesOnly;\nfunction addIfNew(list, value) {\n if (list.indexOf(value) === -1) {\n list.push(value);\n }\n}\n\nfunction addNewValuesOnly(list, values) {\n if (Array.isArray(values)) {\n for (var i = 0, len = values.length; i < len; ++i) {\n addIfNew(list, values[i]);\n }\n } else {\n addIfNew(list, values);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isObject;\nfunction isObject(value) {\n return value instanceof Object && !Array.isArray(value);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = hyphenateProperty;\n\nvar _hyphenateStyleName = require('hyphenate-style-name');\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction hyphenateProperty(property) {\n return (0, _hyphenateStyleName2.default)(property);\n}\nmodule.exports = exports['default'];","export default function devAssert(condition, message) {\n var booleanCondition = Boolean(condition);\n /* istanbul ignore else (see transformation done in './resources/inlineInvariant.js') */\n\n if (!booleanCondition) {\n throw new Error(message);\n }\n}\n","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\n/**\n * Return true if `value` is object-like. A value is object-like if it's not\n * `null` and has a `typeof` result of \"object\".\n */\nexport default function isObjectLike(value) {\n return _typeof(value) == 'object' && value !== null;\n}\n","// In ES2015 (or a polyfilled) environment, this will be Symbol.iterator\n\n/* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */\nexport var SYMBOL_ITERATOR = typeof Symbol === 'function' ? Symbol.iterator : '@@iterator'; // In ES2017 (or a polyfilled) environment, this will be Symbol.asyncIterator\n\n/* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */\n\nexport var SYMBOL_ASYNC_ITERATOR = // $FlowFixMe Flow doesn't define `Symbol.asyncIterator` yet\ntypeof Symbol === 'function' ? Symbol.asyncIterator : '@@asyncIterator';\n/* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */\n\nexport var SYMBOL_TO_STRING_TAG = // $FlowFixMe Flow doesn't define `Symbol.toStringTag` yet\ntypeof Symbol === 'function' ? Symbol.toStringTag : '@@toStringTag';\n","/**\n * Represents a location in a Source.\n */\n\n/**\n * Takes a Source and a UTF-8 character offset, and returns the corresponding\n * line and column as a SourceLocation.\n */\nexport function getLocation(source, position) {\n var lineRegexp = /\\r\\n|[\\n\\r]/g;\n var line = 1;\n var column = position + 1;\n var match;\n\n while ((match = lineRegexp.exec(source.body)) && match.index < position) {\n line += 1;\n column = position + 1 - (match.index + match[0].length);\n }\n\n return {\n line: line,\n column: column\n };\n}\n","import { getLocation } from \"./location.mjs\";\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printLocation(location) {\n return printSourceLocation(location.source, getLocation(location.source, location.start));\n}\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printSourceLocation(source, sourceLocation) {\n var firstLineColumnOffset = source.locationOffset.column - 1;\n var body = whitespace(firstLineColumnOffset) + source.body;\n var lineIndex = sourceLocation.line - 1;\n var lineOffset = source.locationOffset.line - 1;\n var lineNum = sourceLocation.line + lineOffset;\n var columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0;\n var columnNum = sourceLocation.column + columnOffset;\n var locationStr = \"\".concat(source.name, \":\").concat(lineNum, \":\").concat(columnNum, \"\\n\");\n var lines = body.split(/\\r\\n|[\\n\\r]/g);\n var locationLine = lines[lineIndex]; // Special case for minified documents\n\n if (locationLine.length > 120) {\n var subLineIndex = Math.floor(columnNum / 80);\n var subLineColumnNum = columnNum % 80;\n var subLines = [];\n\n for (var i = 0; i < locationLine.length; i += 80) {\n subLines.push(locationLine.slice(i, i + 80));\n }\n\n return locationStr + printPrefixedLines([[\"\".concat(lineNum), subLines[0]]].concat(subLines.slice(1, subLineIndex + 1).map(function (subLine) {\n return ['', subLine];\n }), [[' ', whitespace(subLineColumnNum - 1) + '^'], ['', subLines[subLineIndex + 1]]]));\n }\n\n return locationStr + printPrefixedLines([// Lines specified like this: [\"prefix\", \"string\"],\n [\"\".concat(lineNum - 1), lines[lineIndex - 1]], [\"\".concat(lineNum), locationLine], ['', whitespace(columnNum - 1) + '^'], [\"\".concat(lineNum + 1), lines[lineIndex + 1]]]);\n}\n\nfunction printPrefixedLines(lines) {\n var existingLines = lines.filter(function (_ref) {\n var _ = _ref[0],\n line = _ref[1];\n return line !== undefined;\n });\n var padLen = Math.max.apply(Math, existingLines.map(function (_ref2) {\n var prefix = _ref2[0];\n return prefix.length;\n }));\n return existingLines.map(function (_ref3) {\n var prefix = _ref3[0],\n line = _ref3[1];\n return leftPad(padLen, prefix) + (line ? ' | ' + line : ' |');\n }).join('\\n');\n}\n\nfunction whitespace(len) {\n return Array(len + 1).join(' ');\n}\n\nfunction leftPad(len, str) {\n return whitespace(len - str.length) + str;\n}\n","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\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 _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { 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 _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 _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\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 _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n// FIXME:\n// flowlint uninitialized-instance-property:off\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport { getLocation } from \"../language/location.mjs\";\nimport { printLocation, printSourceLocation } from \"../language/printLocation.mjs\";\n/**\n * A GraphQLError describes an Error found during the parse, validate, or\n * execute phases of performing a GraphQL operation. In addition to a message\n * and stack trace, it also includes information about the locations in a\n * GraphQL document and/or execution result that correspond to the Error.\n */\n\nexport var GraphQLError = /*#__PURE__*/function (_Error) {\n _inherits(GraphQLError, _Error);\n\n var _super = _createSuper(GraphQLError);\n\n /**\n * A message describing the Error for debugging purposes.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n *\n * Note: should be treated as readonly, despite invariant usage.\n */\n\n /**\n * An array of { line, column } locations within the source GraphQL document\n * which correspond to this error.\n *\n * Errors during validation often contain multiple locations, for example to\n * point out two things with the same name. Errors during execution include a\n * single location, the field which produced the error.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array describing the JSON-path into the execution response which\n * corresponds to this error. Only included for errors during execution.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array of GraphQL AST Nodes corresponding to this error.\n */\n\n /**\n * The source GraphQL document for the first location of this error.\n *\n * Note that if this Error represents more than one node, the source may not\n * represent nodes after the first node.\n */\n\n /**\n * An array of character offsets within the source GraphQL document\n * which correspond to this error.\n */\n\n /**\n * The original error thrown from a field resolver during execution.\n */\n\n /**\n * Extension fields to add to the formatted error.\n */\n function GraphQLError(message, nodes, source, positions, path, originalError, extensions) {\n var _locations2, _source2, _positions2, _extensions2;\n\n var _this;\n\n _classCallCheck(this, GraphQLError);\n\n _this = _super.call(this, message); // Compute list of blame nodes.\n\n var _nodes = Array.isArray(nodes) ? nodes.length !== 0 ? nodes : undefined : nodes ? [nodes] : undefined; // Compute locations in the source for the given nodes/positions.\n\n\n var _source = source;\n\n if (!_source && _nodes) {\n var _nodes$0$loc;\n\n _source = (_nodes$0$loc = _nodes[0].loc) === null || _nodes$0$loc === void 0 ? void 0 : _nodes$0$loc.source;\n }\n\n var _positions = positions;\n\n if (!_positions && _nodes) {\n _positions = _nodes.reduce(function (list, node) {\n if (node.loc) {\n list.push(node.loc.start);\n }\n\n return list;\n }, []);\n }\n\n if (_positions && _positions.length === 0) {\n _positions = undefined;\n }\n\n var _locations;\n\n if (positions && source) {\n _locations = positions.map(function (pos) {\n return getLocation(source, pos);\n });\n } else if (_nodes) {\n _locations = _nodes.reduce(function (list, node) {\n if (node.loc) {\n list.push(getLocation(node.loc.source, node.loc.start));\n }\n\n return list;\n }, []);\n }\n\n var _extensions = extensions;\n\n if (_extensions == null && originalError != null) {\n var originalExtensions = originalError.extensions;\n\n if (isObjectLike(originalExtensions)) {\n _extensions = originalExtensions;\n }\n }\n\n Object.defineProperties(_assertThisInitialized(_this), {\n name: {\n value: 'GraphQLError'\n },\n message: {\n value: message,\n // By being enumerable, JSON.stringify will include `message` in the\n // resulting output. This ensures that the simplest possible GraphQL\n // service adheres to the spec.\n enumerable: true,\n writable: true\n },\n locations: {\n // Coercing falsy values to undefined ensures they will not be included\n // in JSON.stringify() when not provided.\n value: (_locations2 = _locations) !== null && _locations2 !== void 0 ? _locations2 : undefined,\n // By being enumerable, JSON.stringify will include `locations` in the\n // resulting output. This ensures that the simplest possible GraphQL\n // service adheres to the spec.\n enumerable: _locations != null\n },\n path: {\n // Coercing falsy values to undefined ensures they will not be included\n // in JSON.stringify() when not provided.\n value: path !== null && path !== void 0 ? path : undefined,\n // By being enumerable, JSON.stringify will include `path` in the\n // resulting output. This ensures that the simplest possible GraphQL\n // service adheres to the spec.\n enumerable: path != null\n },\n nodes: {\n value: _nodes !== null && _nodes !== void 0 ? _nodes : undefined\n },\n source: {\n value: (_source2 = _source) !== null && _source2 !== void 0 ? _source2 : undefined\n },\n positions: {\n value: (_positions2 = _positions) !== null && _positions2 !== void 0 ? _positions2 : undefined\n },\n originalError: {\n value: originalError\n },\n extensions: {\n // Coercing falsy values to undefined ensures they will not be included\n // in JSON.stringify() when not provided.\n value: (_extensions2 = _extensions) !== null && _extensions2 !== void 0 ? _extensions2 : undefined,\n // By being enumerable, JSON.stringify will include `path` in the\n // resulting output. This ensures that the simplest possible GraphQL\n // service adheres to the spec.\n enumerable: _extensions != null\n }\n }); // Include (non-enumerable) stack trace.\n\n if (originalError === null || originalError === void 0 ? void 0 : originalError.stack) {\n Object.defineProperty(_assertThisInitialized(_this), 'stack', {\n value: originalError.stack,\n writable: true,\n configurable: true\n });\n return _possibleConstructorReturn(_this);\n }\n /* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */\n\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(_assertThisInitialized(_this), GraphQLError);\n } else {\n Object.defineProperty(_assertThisInitialized(_this), 'stack', {\n value: Error().stack,\n writable: true,\n configurable: true\n });\n }\n\n return _this;\n }\n\n _createClass(GraphQLError, [{\n key: \"toString\",\n value: function toString() {\n return printError(this);\n } // FIXME: workaround to not break chai comparisons, should be remove in v16\n // $FlowFixMe Flow doesn't support computed properties yet\n\n }, {\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'Object';\n }\n }]);\n\n return GraphQLError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n/**\n * Prints a GraphQLError to a string, representing useful location information\n * about the error's position in the source.\n */\n\nexport function printError(error) {\n var output = error.message;\n\n if (error.nodes) {\n for (var _i2 = 0, _error$nodes2 = error.nodes; _i2 < _error$nodes2.length; _i2++) {\n var node = _error$nodes2[_i2];\n\n if (node.loc) {\n output += '\\n\\n' + printLocation(node.loc);\n }\n }\n } else if (error.source && error.locations) {\n for (var _i4 = 0, _error$locations2 = error.locations; _i4 < _error$locations2.length; _i4++) {\n var location = _error$locations2[_i4];\n output += '\\n\\n' + printSourceLocation(error.source, location);\n }\n }\n\n return output;\n}\n","import { GraphQLError } from \"./GraphQLError.mjs\";\n/**\n * Produces a GraphQLError representing a syntax error, containing useful\n * descriptive information about the syntax error's position in the source.\n */\n\nexport function syntaxError(source, position, description) {\n return new GraphQLError(\"Syntax Error: \".concat(description), undefined, source, [position]);\n}\n","/**\n * The set of allowed kind values for AST nodes.\n */\nexport var Kind = Object.freeze({\n // Name\n NAME: 'Name',\n // Document\n DOCUMENT: 'Document',\n OPERATION_DEFINITION: 'OperationDefinition',\n VARIABLE_DEFINITION: 'VariableDefinition',\n SELECTION_SET: 'SelectionSet',\n FIELD: 'Field',\n ARGUMENT: 'Argument',\n // Fragments\n FRAGMENT_SPREAD: 'FragmentSpread',\n INLINE_FRAGMENT: 'InlineFragment',\n FRAGMENT_DEFINITION: 'FragmentDefinition',\n // Values\n VARIABLE: 'Variable',\n INT: 'IntValue',\n FLOAT: 'FloatValue',\n STRING: 'StringValue',\n BOOLEAN: 'BooleanValue',\n NULL: 'NullValue',\n ENUM: 'EnumValue',\n LIST: 'ListValue',\n OBJECT: 'ObjectValue',\n OBJECT_FIELD: 'ObjectField',\n // Directives\n DIRECTIVE: 'Directive',\n // Types\n NAMED_TYPE: 'NamedType',\n LIST_TYPE: 'ListType',\n NON_NULL_TYPE: 'NonNullType',\n // Type System Definitions\n SCHEMA_DEFINITION: 'SchemaDefinition',\n OPERATION_TYPE_DEFINITION: 'OperationTypeDefinition',\n // Type Definitions\n SCALAR_TYPE_DEFINITION: 'ScalarTypeDefinition',\n OBJECT_TYPE_DEFINITION: 'ObjectTypeDefinition',\n FIELD_DEFINITION: 'FieldDefinition',\n INPUT_VALUE_DEFINITION: 'InputValueDefinition',\n INTERFACE_TYPE_DEFINITION: 'InterfaceTypeDefinition',\n UNION_TYPE_DEFINITION: 'UnionTypeDefinition',\n ENUM_TYPE_DEFINITION: 'EnumTypeDefinition',\n ENUM_VALUE_DEFINITION: 'EnumValueDefinition',\n INPUT_OBJECT_TYPE_DEFINITION: 'InputObjectTypeDefinition',\n // Directive Definitions\n DIRECTIVE_DEFINITION: 'DirectiveDefinition',\n // Type System Extensions\n SCHEMA_EXTENSION: 'SchemaExtension',\n // Type Extensions\n SCALAR_TYPE_EXTENSION: 'ScalarTypeExtension',\n OBJECT_TYPE_EXTENSION: 'ObjectTypeExtension',\n INTERFACE_TYPE_EXTENSION: 'InterfaceTypeExtension',\n UNION_TYPE_EXTENSION: 'UnionTypeExtension',\n ENUM_TYPE_EXTENSION: 'EnumTypeExtension',\n INPUT_OBJECT_TYPE_EXTENSION: 'InputObjectTypeExtension'\n});\n/**\n * The enum type representing the possible kind values of AST nodes.\n */\n","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport devAssert from \"../jsutils/devAssert.mjs\";\n\n/**\n * A representation of source input to GraphQL.\n * `name` and `locationOffset` are optional. They are useful for clients who\n * store GraphQL documents in source files; for example, if the GraphQL input\n * starts at line 40 in a file named Foo.graphql, it might be useful for name to\n * be \"Foo.graphql\" and location to be `{ line: 40, column: 0 }`.\n * line and column in locationOffset are 1-indexed\n */\nexport var Source = /*#__PURE__*/function () {\n function Source(body) {\n var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'GraphQL request';\n var locationOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n line: 1,\n column: 1\n };\n this.body = body;\n this.name = name;\n this.locationOffset = locationOffset;\n this.locationOffset.line > 0 || devAssert(0, 'line in locationOffset is 1-indexed and must be positive.');\n this.locationOffset.column > 0 || devAssert(0, 'column in locationOffset is 1-indexed and must be positive.');\n } // $FlowFixMe Flow doesn't support computed properties yet\n\n\n _createClass(Source, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'Source';\n }\n }]);\n\n return Source;\n}();\n","/**\n * The set of allowed directive location values.\n */\nexport var DirectiveLocation = Object.freeze({\n // Request Definitions\n QUERY: 'QUERY',\n MUTATION: 'MUTATION',\n SUBSCRIPTION: 'SUBSCRIPTION',\n FIELD: 'FIELD',\n FRAGMENT_DEFINITION: 'FRAGMENT_DEFINITION',\n FRAGMENT_SPREAD: 'FRAGMENT_SPREAD',\n INLINE_FRAGMENT: 'INLINE_FRAGMENT',\n VARIABLE_DEFINITION: 'VARIABLE_DEFINITION',\n // Type System Definitions\n SCHEMA: 'SCHEMA',\n SCALAR: 'SCALAR',\n OBJECT: 'OBJECT',\n FIELD_DEFINITION: 'FIELD_DEFINITION',\n ARGUMENT_DEFINITION: 'ARGUMENT_DEFINITION',\n INTERFACE: 'INTERFACE',\n UNION: 'UNION',\n ENUM: 'ENUM',\n ENUM_VALUE: 'ENUM_VALUE',\n INPUT_OBJECT: 'INPUT_OBJECT',\n INPUT_FIELD_DEFINITION: 'INPUT_FIELD_DEFINITION'\n});\n/**\n * The enum type representing the directive location values.\n */\n","/**\n * An exported enum describing the different kinds of tokens that the\n * lexer emits.\n */\nexport var TokenKind = Object.freeze({\n SOF: '',\n EOF: '',\n BANG: '!',\n DOLLAR: '$',\n AMP: '&',\n PAREN_L: '(',\n PAREN_R: ')',\n SPREAD: '...',\n COLON: ':',\n EQUALS: '=',\n AT: '@',\n BRACKET_L: '[',\n BRACKET_R: ']',\n BRACE_L: '{',\n PIPE: '|',\n BRACE_R: '}',\n NAME: 'Name',\n INT: 'Int',\n FLOAT: 'Float',\n STRING: 'String',\n BLOCK_STRING: 'BlockString',\n COMMENT: 'Comment'\n});\n/**\n * The enum type representing the token kinds values.\n */\n","import { syntaxError } from \"../error/syntaxError.mjs\";\nimport { Token } from \"./ast.mjs\";\nimport { dedentBlockStringValue } from \"./blockString.mjs\";\nimport { TokenKind } from \"./tokenKind.mjs\";\n/**\n * Given a Source object, creates a Lexer for that source.\n * A Lexer is a stateful stream generator in that every time\n * it is advanced, it returns the next token in the Source. Assuming the\n * source lexes, the final Token emitted by the lexer will be of kind\n * EOF, after which the lexer will repeatedly return the same EOF token\n * whenever called.\n */\n\nexport var Lexer = /*#__PURE__*/function () {\n /**\n * The previously focused non-ignored token.\n */\n\n /**\n * The currently focused non-ignored token.\n */\n\n /**\n * The (1-indexed) line containing the current token.\n */\n\n /**\n * The character offset at which the current line begins.\n */\n function Lexer(source) {\n var startOfFileToken = new Token(TokenKind.SOF, 0, 0, 0, 0, null);\n this.source = source;\n this.lastToken = startOfFileToken;\n this.token = startOfFileToken;\n this.line = 1;\n this.lineStart = 0;\n }\n /**\n * Advances the token stream to the next non-ignored token.\n */\n\n\n var _proto = Lexer.prototype;\n\n _proto.advance = function advance() {\n this.lastToken = this.token;\n var token = this.token = this.lookahead();\n return token;\n }\n /**\n * Looks ahead and returns the next non-ignored token, but does not change\n * the state of Lexer.\n */\n ;\n\n _proto.lookahead = function lookahead() {\n var token = this.token;\n\n if (token.kind !== TokenKind.EOF) {\n do {\n var _token$next;\n\n // Note: next is only mutable during parsing, so we cast to allow this.\n token = (_token$next = token.next) !== null && _token$next !== void 0 ? _token$next : token.next = readToken(this, token);\n } while (token.kind === TokenKind.COMMENT);\n }\n\n return token;\n };\n\n return Lexer;\n}();\n/**\n * @internal\n */\n\nexport function isPunctuatorTokenKind(kind) {\n return kind === TokenKind.BANG || kind === TokenKind.DOLLAR || kind === TokenKind.AMP || kind === TokenKind.PAREN_L || kind === TokenKind.PAREN_R || kind === TokenKind.SPREAD || kind === TokenKind.COLON || kind === TokenKind.EQUALS || kind === TokenKind.AT || kind === TokenKind.BRACKET_L || kind === TokenKind.BRACKET_R || kind === TokenKind.BRACE_L || kind === TokenKind.PIPE || kind === TokenKind.BRACE_R;\n}\n\nfunction printCharCode(code) {\n return (// NaN/undefined represents access beyond the end of the file.\n isNaN(code) ? TokenKind.EOF : // Trust JSON for ASCII.\n code < 0x007f ? JSON.stringify(String.fromCharCode(code)) : // Otherwise print the escaped form.\n \"\\\"\\\\u\".concat(('00' + code.toString(16).toUpperCase()).slice(-4), \"\\\"\")\n );\n}\n/**\n * Gets the next token from the source starting at the given position.\n *\n * This skips over whitespace until it finds the next lexable token, then lexes\n * punctuators immediately or calls the appropriate helper function for more\n * complicated tokens.\n */\n\n\nfunction readToken(lexer, prev) {\n var source = lexer.source;\n var body = source.body;\n var bodyLength = body.length;\n var pos = positionAfterWhitespace(body, prev.end, lexer);\n var line = lexer.line;\n var col = 1 + pos - lexer.lineStart;\n\n if (pos >= bodyLength) {\n return new Token(TokenKind.EOF, bodyLength, bodyLength, line, col, prev);\n }\n\n var code = body.charCodeAt(pos); // SourceCharacter\n\n switch (code) {\n // !\n case 33:\n return new Token(TokenKind.BANG, pos, pos + 1, line, col, prev);\n // #\n\n case 35:\n return readComment(source, pos, line, col, prev);\n // $\n\n case 36:\n return new Token(TokenKind.DOLLAR, pos, pos + 1, line, col, prev);\n // &\n\n case 38:\n return new Token(TokenKind.AMP, pos, pos + 1, line, col, prev);\n // (\n\n case 40:\n return new Token(TokenKind.PAREN_L, pos, pos + 1, line, col, prev);\n // )\n\n case 41:\n return new Token(TokenKind.PAREN_R, pos, pos + 1, line, col, prev);\n // .\n\n case 46:\n if (body.charCodeAt(pos + 1) === 46 && body.charCodeAt(pos + 2) === 46) {\n return new Token(TokenKind.SPREAD, pos, pos + 3, line, col, prev);\n }\n\n break;\n // :\n\n case 58:\n return new Token(TokenKind.COLON, pos, pos + 1, line, col, prev);\n // =\n\n case 61:\n return new Token(TokenKind.EQUALS, pos, pos + 1, line, col, prev);\n // @\n\n case 64:\n return new Token(TokenKind.AT, pos, pos + 1, line, col, prev);\n // [\n\n case 91:\n return new Token(TokenKind.BRACKET_L, pos, pos + 1, line, col, prev);\n // ]\n\n case 93:\n return new Token(TokenKind.BRACKET_R, pos, pos + 1, line, col, prev);\n // {\n\n case 123:\n return new Token(TokenKind.BRACE_L, pos, pos + 1, line, col, prev);\n // |\n\n case 124:\n return new Token(TokenKind.PIPE, pos, pos + 1, line, col, prev);\n // }\n\n case 125:\n return new Token(TokenKind.BRACE_R, pos, pos + 1, line, col, prev);\n // A-Z _ a-z\n\n case 65:\n case 66:\n case 67:\n case 68:\n case 69:\n case 70:\n case 71:\n case 72:\n case 73:\n case 74:\n case 75:\n case 76:\n case 77:\n case 78:\n case 79:\n case 80:\n case 81:\n case 82:\n case 83:\n case 84:\n case 85:\n case 86:\n case 87:\n case 88:\n case 89:\n case 90:\n case 95:\n case 97:\n case 98:\n case 99:\n case 100:\n case 101:\n case 102:\n case 103:\n case 104:\n case 105:\n case 106:\n case 107:\n case 108:\n case 109:\n case 110:\n case 111:\n case 112:\n case 113:\n case 114:\n case 115:\n case 116:\n case 117:\n case 118:\n case 119:\n case 120:\n case 121:\n case 122:\n return readName(source, pos, line, col, prev);\n // - 0-9\n\n case 45:\n case 48:\n case 49:\n case 50:\n case 51:\n case 52:\n case 53:\n case 54:\n case 55:\n case 56:\n case 57:\n return readNumber(source, pos, code, line, col, prev);\n // \"\n\n case 34:\n if (body.charCodeAt(pos + 1) === 34 && body.charCodeAt(pos + 2) === 34) {\n return readBlockString(source, pos, line, col, prev, lexer);\n }\n\n return readString(source, pos, line, col, prev);\n }\n\n throw syntaxError(source, pos, unexpectedCharacterMessage(code));\n}\n/**\n * Report a message that an unexpected character was encountered.\n */\n\n\nfunction unexpectedCharacterMessage(code) {\n if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {\n return \"Cannot contain the invalid character \".concat(printCharCode(code), \".\");\n }\n\n if (code === 39) {\n // '\n return 'Unexpected single quote character (\\'), did you mean to use a double quote (\")?';\n }\n\n return \"Cannot parse the unexpected character \".concat(printCharCode(code), \".\");\n}\n/**\n * Reads from body starting at startPosition until it finds a non-whitespace\n * character, then returns the position of that character for lexing.\n */\n\n\nfunction positionAfterWhitespace(body, startPosition, lexer) {\n var bodyLength = body.length;\n var position = startPosition;\n\n while (position < bodyLength) {\n var code = body.charCodeAt(position); // tab | space | comma | BOM\n\n if (code === 9 || code === 32 || code === 44 || code === 0xfeff) {\n ++position;\n } else if (code === 10) {\n // new line\n ++position;\n ++lexer.line;\n lexer.lineStart = position;\n } else if (code === 13) {\n // carriage return\n if (body.charCodeAt(position + 1) === 10) {\n position += 2;\n } else {\n ++position;\n }\n\n ++lexer.line;\n lexer.lineStart = position;\n } else {\n break;\n }\n }\n\n return position;\n}\n/**\n * Reads a comment token from the source file.\n *\n * #[\\u0009\\u0020-\\uFFFF]*\n */\n\n\nfunction readComment(source, start, line, col, prev) {\n var body = source.body;\n var code;\n var position = start;\n\n do {\n code = body.charCodeAt(++position);\n } while (!isNaN(code) && ( // SourceCharacter but not LineTerminator\n code > 0x001f || code === 0x0009));\n\n return new Token(TokenKind.COMMENT, start, position, line, col, prev, body.slice(start + 1, position));\n}\n/**\n * Reads a number token from the source file, either a float\n * or an int depending on whether a decimal point appears.\n *\n * Int: -?(0|[1-9][0-9]*)\n * Float: -?(0|[1-9][0-9]*)(\\.[0-9]+)?((E|e)(+|-)?[0-9]+)?\n */\n\n\nfunction readNumber(source, start, firstCode, line, col, prev) {\n var body = source.body;\n var code = firstCode;\n var position = start;\n var isFloat = false;\n\n if (code === 45) {\n // -\n code = body.charCodeAt(++position);\n }\n\n if (code === 48) {\n // 0\n code = body.charCodeAt(++position);\n\n if (code >= 48 && code <= 57) {\n throw syntaxError(source, position, \"Invalid number, unexpected digit after 0: \".concat(printCharCode(code), \".\"));\n }\n } else {\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n }\n\n if (code === 46) {\n // .\n isFloat = true;\n code = body.charCodeAt(++position);\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n }\n\n if (code === 69 || code === 101) {\n // E e\n isFloat = true;\n code = body.charCodeAt(++position);\n\n if (code === 43 || code === 45) {\n // + -\n code = body.charCodeAt(++position);\n }\n\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n } // Numbers cannot be followed by . or NameStart\n\n\n if (code === 46 || isNameStart(code)) {\n throw syntaxError(source, position, \"Invalid number, expected digit but got: \".concat(printCharCode(code), \".\"));\n }\n\n return new Token(isFloat ? TokenKind.FLOAT : TokenKind.INT, start, position, line, col, prev, body.slice(start, position));\n}\n/**\n * Returns the new position in the source after reading digits.\n */\n\n\nfunction readDigits(source, start, firstCode) {\n var body = source.body;\n var position = start;\n var code = firstCode;\n\n if (code >= 48 && code <= 57) {\n // 0 - 9\n do {\n code = body.charCodeAt(++position);\n } while (code >= 48 && code <= 57); // 0 - 9\n\n\n return position;\n }\n\n throw syntaxError(source, position, \"Invalid number, expected digit but got: \".concat(printCharCode(code), \".\"));\n}\n/**\n * Reads a string token from the source file.\n *\n * \"([^\"\\\\\\u000A\\u000D]|(\\\\(u[0-9a-fA-F]{4}|[\"\\\\/bfnrt])))*\"\n */\n\n\nfunction readString(source, start, line, col, prev) {\n var body = source.body;\n var position = start + 1;\n var chunkStart = position;\n var code = 0;\n var value = '';\n\n while (position < body.length && !isNaN(code = body.charCodeAt(position)) && // not LineTerminator\n code !== 0x000a && code !== 0x000d) {\n // Closing Quote (\")\n if (code === 34) {\n value += body.slice(chunkStart, position);\n return new Token(TokenKind.STRING, start, position + 1, line, col, prev, value);\n } // SourceCharacter\n\n\n if (code < 0x0020 && code !== 0x0009) {\n throw syntaxError(source, position, \"Invalid character within String: \".concat(printCharCode(code), \".\"));\n }\n\n ++position;\n\n if (code === 92) {\n // \\\n value += body.slice(chunkStart, position - 1);\n code = body.charCodeAt(position);\n\n switch (code) {\n case 34:\n value += '\"';\n break;\n\n case 47:\n value += '/';\n break;\n\n case 92:\n value += '\\\\';\n break;\n\n case 98:\n value += '\\b';\n break;\n\n case 102:\n value += '\\f';\n break;\n\n case 110:\n value += '\\n';\n break;\n\n case 114:\n value += '\\r';\n break;\n\n case 116:\n value += '\\t';\n break;\n\n case 117:\n {\n // uXXXX\n var charCode = uniCharCode(body.charCodeAt(position + 1), body.charCodeAt(position + 2), body.charCodeAt(position + 3), body.charCodeAt(position + 4));\n\n if (charCode < 0) {\n var invalidSequence = body.slice(position + 1, position + 5);\n throw syntaxError(source, position, \"Invalid character escape sequence: \\\\u\".concat(invalidSequence, \".\"));\n }\n\n value += String.fromCharCode(charCode);\n position += 4;\n break;\n }\n\n default:\n throw syntaxError(source, position, \"Invalid character escape sequence: \\\\\".concat(String.fromCharCode(code), \".\"));\n }\n\n ++position;\n chunkStart = position;\n }\n }\n\n throw syntaxError(source, position, 'Unterminated string.');\n}\n/**\n * Reads a block string token from the source file.\n *\n * \"\"\"(\"?\"?(\\\\\"\"\"|\\\\(?!=\"\"\")|[^\"\\\\]))*\"\"\"\n */\n\n\nfunction readBlockString(source, start, line, col, prev, lexer) {\n var body = source.body;\n var position = start + 3;\n var chunkStart = position;\n var code = 0;\n var rawValue = '';\n\n while (position < body.length && !isNaN(code = body.charCodeAt(position))) {\n // Closing Triple-Quote (\"\"\")\n if (code === 34 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34) {\n rawValue += body.slice(chunkStart, position);\n return new Token(TokenKind.BLOCK_STRING, start, position + 3, line, col, prev, dedentBlockStringValue(rawValue));\n } // SourceCharacter\n\n\n if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {\n throw syntaxError(source, position, \"Invalid character within String: \".concat(printCharCode(code), \".\"));\n }\n\n if (code === 10) {\n // new line\n ++position;\n ++lexer.line;\n lexer.lineStart = position;\n } else if (code === 13) {\n // carriage return\n if (body.charCodeAt(position + 1) === 10) {\n position += 2;\n } else {\n ++position;\n }\n\n ++lexer.line;\n lexer.lineStart = position;\n } else if ( // Escape Triple-Quote (\\\"\"\")\n code === 92 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34 && body.charCodeAt(position + 3) === 34) {\n rawValue += body.slice(chunkStart, position) + '\"\"\"';\n position += 4;\n chunkStart = position;\n } else {\n ++position;\n }\n }\n\n throw syntaxError(source, position, 'Unterminated string.');\n}\n/**\n * Converts four hexadecimal chars to the integer that the\n * string represents. For example, uniCharCode('0','0','0','f')\n * will return 15, and uniCharCode('0','0','f','f') returns 255.\n *\n * Returns a negative number on error, if a char was invalid.\n *\n * This is implemented by noting that char2hex() returns -1 on error,\n * which means the result of ORing the char2hex() will also be negative.\n */\n\n\nfunction uniCharCode(a, b, c, d) {\n return char2hex(a) << 12 | char2hex(b) << 8 | char2hex(c) << 4 | char2hex(d);\n}\n/**\n * Converts a hex character to its integer value.\n * '0' becomes 0, '9' becomes 9\n * 'A' becomes 10, 'F' becomes 15\n * 'a' becomes 10, 'f' becomes 15\n *\n * Returns -1 on error.\n */\n\n\nfunction char2hex(a) {\n return a >= 48 && a <= 57 ? a - 48 // 0-9\n : a >= 65 && a <= 70 ? a - 55 // A-F\n : a >= 97 && a <= 102 ? a - 87 // a-f\n : -1;\n}\n/**\n * Reads an alphanumeric + underscore name from the source.\n *\n * [_A-Za-z][_0-9A-Za-z]*\n */\n\n\nfunction readName(source, start, line, col, prev) {\n var body = source.body;\n var bodyLength = body.length;\n var position = start + 1;\n var code = 0;\n\n while (position !== bodyLength && !isNaN(code = body.charCodeAt(position)) && (code === 95 || // _\n code >= 48 && code <= 57 || // 0-9\n code >= 65 && code <= 90 || // A-Z\n code >= 97 && code <= 122) // a-z\n ) {\n ++position;\n }\n\n return new Token(TokenKind.NAME, start, position, line, col, prev, body.slice(start, position));\n} // _ A-Z a-z\n\n\nfunction isNameStart(code) {\n return code === 95 || code >= 65 && code <= 90 || code >= 97 && code <= 122;\n}\n","import inspect from \"../jsutils/inspect.mjs\";\nimport devAssert from \"../jsutils/devAssert.mjs\";\nimport { syntaxError } from \"../error/syntaxError.mjs\";\nimport { Kind } from \"./kinds.mjs\";\nimport { Source } from \"./source.mjs\";\nimport { DirectiveLocation } from \"./directiveLocation.mjs\";\nimport { TokenKind } from \"./tokenKind.mjs\";\nimport { Lexer, isPunctuatorTokenKind } from \"./lexer.mjs\";\nimport { Location } from \"./ast.mjs\";\n/**\n * Configuration options to control parser behavior\n */\n\n/**\n * Given a GraphQL source, parses it into a Document.\n * Throws GraphQLError if a syntax error is encountered.\n */\nexport function parse(source, options) {\n var parser = new Parser(source, options);\n return parser.parseDocument();\n}\n/**\n * Given a string containing a GraphQL value (ex. `[42]`), parse the AST for\n * that value.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Values directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: valueFromAST().\n */\n\nexport function parseValue(source, options) {\n var parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n var value = parser.parseValueLiteral(false);\n parser.expectToken(TokenKind.EOF);\n return value;\n}\n/**\n * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for\n * that type.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Types directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: typeFromAST().\n */\n\nexport function parseType(source, options) {\n var parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n var type = parser.parseTypeReference();\n parser.expectToken(TokenKind.EOF);\n return type;\n}\n\nvar Parser = /*#__PURE__*/function () {\n function Parser(source, options) {\n var sourceObj = typeof source === 'string' ? new Source(source) : source;\n sourceObj instanceof Source || devAssert(0, \"Must provide Source. Received: \".concat(inspect(sourceObj), \".\"));\n this._lexer = new Lexer(sourceObj);\n this._options = options;\n }\n /**\n * Converts a name lex token into a name parse node.\n */\n\n\n var _proto = Parser.prototype;\n\n _proto.parseName = function parseName() {\n var token = this.expectToken(TokenKind.NAME);\n return {\n kind: Kind.NAME,\n value: token.value,\n loc: this.loc(token)\n };\n } // Implements the parsing rules in the Document section.\n\n /**\n * Document : Definition+\n */\n ;\n\n _proto.parseDocument = function parseDocument() {\n var start = this._lexer.token;\n return {\n kind: Kind.DOCUMENT,\n definitions: this.many(TokenKind.SOF, this.parseDefinition, TokenKind.EOF),\n loc: this.loc(start)\n };\n }\n /**\n * Definition :\n * - ExecutableDefinition\n * - TypeSystemDefinition\n * - TypeSystemExtension\n *\n * ExecutableDefinition :\n * - OperationDefinition\n * - FragmentDefinition\n */\n ;\n\n _proto.parseDefinition = function parseDefinition() {\n if (this.peek(TokenKind.NAME)) {\n switch (this._lexer.token.value) {\n case 'query':\n case 'mutation':\n case 'subscription':\n return this.parseOperationDefinition();\n\n case 'fragment':\n return this.parseFragmentDefinition();\n\n case 'schema':\n case 'scalar':\n case 'type':\n case 'interface':\n case 'union':\n case 'enum':\n case 'input':\n case 'directive':\n return this.parseTypeSystemDefinition();\n\n case 'extend':\n return this.parseTypeSystemExtension();\n }\n } else if (this.peek(TokenKind.BRACE_L)) {\n return this.parseOperationDefinition();\n } else if (this.peekDescription()) {\n return this.parseTypeSystemDefinition();\n }\n\n throw this.unexpected();\n } // Implements the parsing rules in the Operations section.\n\n /**\n * OperationDefinition :\n * - SelectionSet\n * - OperationType Name? VariableDefinitions? Directives? SelectionSet\n */\n ;\n\n _proto.parseOperationDefinition = function parseOperationDefinition() {\n var start = this._lexer.token;\n\n if (this.peek(TokenKind.BRACE_L)) {\n return {\n kind: Kind.OPERATION_DEFINITION,\n operation: 'query',\n name: undefined,\n variableDefinitions: [],\n directives: [],\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n\n var operation = this.parseOperationType();\n var name;\n\n if (this.peek(TokenKind.NAME)) {\n name = this.parseName();\n }\n\n return {\n kind: Kind.OPERATION_DEFINITION,\n operation: operation,\n name: name,\n variableDefinitions: this.parseVariableDefinitions(),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * OperationType : one of query mutation subscription\n */\n ;\n\n _proto.parseOperationType = function parseOperationType() {\n var operationToken = this.expectToken(TokenKind.NAME);\n\n switch (operationToken.value) {\n case 'query':\n return 'query';\n\n case 'mutation':\n return 'mutation';\n\n case 'subscription':\n return 'subscription';\n }\n\n throw this.unexpected(operationToken);\n }\n /**\n * VariableDefinitions : ( VariableDefinition+ )\n */\n ;\n\n _proto.parseVariableDefinitions = function parseVariableDefinitions() {\n return this.optionalMany(TokenKind.PAREN_L, this.parseVariableDefinition, TokenKind.PAREN_R);\n }\n /**\n * VariableDefinition : Variable : Type DefaultValue? Directives[Const]?\n */\n ;\n\n _proto.parseVariableDefinition = function parseVariableDefinition() {\n var start = this._lexer.token;\n return {\n kind: Kind.VARIABLE_DEFINITION,\n variable: this.parseVariable(),\n type: (this.expectToken(TokenKind.COLON), this.parseTypeReference()),\n defaultValue: this.expectOptionalToken(TokenKind.EQUALS) ? this.parseValueLiteral(true) : undefined,\n directives: this.parseDirectives(true),\n loc: this.loc(start)\n };\n }\n /**\n * Variable : $ Name\n */\n ;\n\n _proto.parseVariable = function parseVariable() {\n var start = this._lexer.token;\n this.expectToken(TokenKind.DOLLAR);\n return {\n kind: Kind.VARIABLE,\n name: this.parseName(),\n loc: this.loc(start)\n };\n }\n /**\n * SelectionSet : { Selection+ }\n */\n ;\n\n _proto.parseSelectionSet = function parseSelectionSet() {\n var start = this._lexer.token;\n return {\n kind: Kind.SELECTION_SET,\n selections: this.many(TokenKind.BRACE_L, this.parseSelection, TokenKind.BRACE_R),\n loc: this.loc(start)\n };\n }\n /**\n * Selection :\n * - Field\n * - FragmentSpread\n * - InlineFragment\n */\n ;\n\n _proto.parseSelection = function parseSelection() {\n return this.peek(TokenKind.SPREAD) ? this.parseFragment() : this.parseField();\n }\n /**\n * Field : Alias? Name Arguments? Directives? SelectionSet?\n *\n * Alias : Name :\n */\n ;\n\n _proto.parseField = function parseField() {\n var start = this._lexer.token;\n var nameOrAlias = this.parseName();\n var alias;\n var name;\n\n if (this.expectOptionalToken(TokenKind.COLON)) {\n alias = nameOrAlias;\n name = this.parseName();\n } else {\n name = nameOrAlias;\n }\n\n return {\n kind: Kind.FIELD,\n alias: alias,\n name: name,\n arguments: this.parseArguments(false),\n directives: this.parseDirectives(false),\n selectionSet: this.peek(TokenKind.BRACE_L) ? this.parseSelectionSet() : undefined,\n loc: this.loc(start)\n };\n }\n /**\n * Arguments[Const] : ( Argument[?Const]+ )\n */\n ;\n\n _proto.parseArguments = function parseArguments(isConst) {\n var item = isConst ? this.parseConstArgument : this.parseArgument;\n return this.optionalMany(TokenKind.PAREN_L, item, TokenKind.PAREN_R);\n }\n /**\n * Argument[Const] : Name : Value[?Const]\n */\n ;\n\n _proto.parseArgument = function parseArgument() {\n var start = this._lexer.token;\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return {\n kind: Kind.ARGUMENT,\n name: name,\n value: this.parseValueLiteral(false),\n loc: this.loc(start)\n };\n };\n\n _proto.parseConstArgument = function parseConstArgument() {\n var start = this._lexer.token;\n return {\n kind: Kind.ARGUMENT,\n name: this.parseName(),\n value: (this.expectToken(TokenKind.COLON), this.parseValueLiteral(true)),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Fragments section.\n\n /**\n * Corresponds to both FragmentSpread and InlineFragment in the spec.\n *\n * FragmentSpread : ... FragmentName Directives?\n *\n * InlineFragment : ... TypeCondition? Directives? SelectionSet\n */\n ;\n\n _proto.parseFragment = function parseFragment() {\n var start = this._lexer.token;\n this.expectToken(TokenKind.SPREAD);\n var hasTypeCondition = this.expectOptionalKeyword('on');\n\n if (!hasTypeCondition && this.peek(TokenKind.NAME)) {\n return {\n kind: Kind.FRAGMENT_SPREAD,\n name: this.parseFragmentName(),\n directives: this.parseDirectives(false),\n loc: this.loc(start)\n };\n }\n\n return {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: hasTypeCondition ? this.parseNamedType() : undefined,\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * FragmentDefinition :\n * - fragment FragmentName on TypeCondition Directives? SelectionSet\n *\n * TypeCondition : NamedType\n */\n ;\n\n _proto.parseFragmentDefinition = function parseFragmentDefinition() {\n var _this$_options;\n\n var start = this._lexer.token;\n this.expectKeyword('fragment'); // Experimental support for defining variables within fragments changes\n // the grammar of FragmentDefinition:\n // - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet\n\n if (((_this$_options = this._options) === null || _this$_options === void 0 ? void 0 : _this$_options.experimentalFragmentVariables) === true) {\n return {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n variableDefinitions: this.parseVariableDefinitions(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n\n return {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * FragmentName : Name but not `on`\n */\n ;\n\n _proto.parseFragmentName = function parseFragmentName() {\n if (this._lexer.token.value === 'on') {\n throw this.unexpected();\n }\n\n return this.parseName();\n } // Implements the parsing rules in the Values section.\n\n /**\n * Value[Const] :\n * - [~Const] Variable\n * - IntValue\n * - FloatValue\n * - StringValue\n * - BooleanValue\n * - NullValue\n * - EnumValue\n * - ListValue[?Const]\n * - ObjectValue[?Const]\n *\n * BooleanValue : one of `true` `false`\n *\n * NullValue : `null`\n *\n * EnumValue : Name but not `true`, `false` or `null`\n */\n ;\n\n _proto.parseValueLiteral = function parseValueLiteral(isConst) {\n var token = this._lexer.token;\n\n switch (token.kind) {\n case TokenKind.BRACKET_L:\n return this.parseList(isConst);\n\n case TokenKind.BRACE_L:\n return this.parseObject(isConst);\n\n case TokenKind.INT:\n this._lexer.advance();\n\n return {\n kind: Kind.INT,\n value: token.value,\n loc: this.loc(token)\n };\n\n case TokenKind.FLOAT:\n this._lexer.advance();\n\n return {\n kind: Kind.FLOAT,\n value: token.value,\n loc: this.loc(token)\n };\n\n case TokenKind.STRING:\n case TokenKind.BLOCK_STRING:\n return this.parseStringLiteral();\n\n case TokenKind.NAME:\n this._lexer.advance();\n\n switch (token.value) {\n case 'true':\n return {\n kind: Kind.BOOLEAN,\n value: true,\n loc: this.loc(token)\n };\n\n case 'false':\n return {\n kind: Kind.BOOLEAN,\n value: false,\n loc: this.loc(token)\n };\n\n case 'null':\n return {\n kind: Kind.NULL,\n loc: this.loc(token)\n };\n\n default:\n return {\n kind: Kind.ENUM,\n value: token.value,\n loc: this.loc(token)\n };\n }\n\n case TokenKind.DOLLAR:\n if (!isConst) {\n return this.parseVariable();\n }\n\n break;\n }\n\n throw this.unexpected();\n };\n\n _proto.parseStringLiteral = function parseStringLiteral() {\n var token = this._lexer.token;\n\n this._lexer.advance();\n\n return {\n kind: Kind.STRING,\n value: token.value,\n block: token.kind === TokenKind.BLOCK_STRING,\n loc: this.loc(token)\n };\n }\n /**\n * ListValue[Const] :\n * - [ ]\n * - [ Value[?Const]+ ]\n */\n ;\n\n _proto.parseList = function parseList(isConst) {\n var _this = this;\n\n var start = this._lexer.token;\n\n var item = function item() {\n return _this.parseValueLiteral(isConst);\n };\n\n return {\n kind: Kind.LIST,\n values: this.any(TokenKind.BRACKET_L, item, TokenKind.BRACKET_R),\n loc: this.loc(start)\n };\n }\n /**\n * ObjectValue[Const] :\n * - { }\n * - { ObjectField[?Const]+ }\n */\n ;\n\n _proto.parseObject = function parseObject(isConst) {\n var _this2 = this;\n\n var start = this._lexer.token;\n\n var item = function item() {\n return _this2.parseObjectField(isConst);\n };\n\n return {\n kind: Kind.OBJECT,\n fields: this.any(TokenKind.BRACE_L, item, TokenKind.BRACE_R),\n loc: this.loc(start)\n };\n }\n /**\n * ObjectField[Const] : Name : Value[?Const]\n */\n ;\n\n _proto.parseObjectField = function parseObjectField(isConst) {\n var start = this._lexer.token;\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return {\n kind: Kind.OBJECT_FIELD,\n name: name,\n value: this.parseValueLiteral(isConst),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Directives section.\n\n /**\n * Directives[Const] : Directive[?Const]+\n */\n ;\n\n _proto.parseDirectives = function parseDirectives(isConst) {\n var directives = [];\n\n while (this.peek(TokenKind.AT)) {\n directives.push(this.parseDirective(isConst));\n }\n\n return directives;\n }\n /**\n * Directive[Const] : @ Name Arguments[?Const]?\n */\n ;\n\n _proto.parseDirective = function parseDirective(isConst) {\n var start = this._lexer.token;\n this.expectToken(TokenKind.AT);\n return {\n kind: Kind.DIRECTIVE,\n name: this.parseName(),\n arguments: this.parseArguments(isConst),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Types section.\n\n /**\n * Type :\n * - NamedType\n * - ListType\n * - NonNullType\n */\n ;\n\n _proto.parseTypeReference = function parseTypeReference() {\n var start = this._lexer.token;\n var type;\n\n if (this.expectOptionalToken(TokenKind.BRACKET_L)) {\n type = this.parseTypeReference();\n this.expectToken(TokenKind.BRACKET_R);\n type = {\n kind: Kind.LIST_TYPE,\n type: type,\n loc: this.loc(start)\n };\n } else {\n type = this.parseNamedType();\n }\n\n if (this.expectOptionalToken(TokenKind.BANG)) {\n return {\n kind: Kind.NON_NULL_TYPE,\n type: type,\n loc: this.loc(start)\n };\n }\n\n return type;\n }\n /**\n * NamedType : Name\n */\n ;\n\n _proto.parseNamedType = function parseNamedType() {\n var start = this._lexer.token;\n return {\n kind: Kind.NAMED_TYPE,\n name: this.parseName(),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Type Definition section.\n\n /**\n * TypeSystemDefinition :\n * - SchemaDefinition\n * - TypeDefinition\n * - DirectiveDefinition\n *\n * TypeDefinition :\n * - ScalarTypeDefinition\n * - ObjectTypeDefinition\n * - InterfaceTypeDefinition\n * - UnionTypeDefinition\n * - EnumTypeDefinition\n * - InputObjectTypeDefinition\n */\n ;\n\n _proto.parseTypeSystemDefinition = function parseTypeSystemDefinition() {\n // Many definitions begin with a description and require a lookahead.\n var keywordToken = this.peekDescription() ? this._lexer.lookahead() : this._lexer.token;\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaDefinition();\n\n case 'scalar':\n return this.parseScalarTypeDefinition();\n\n case 'type':\n return this.parseObjectTypeDefinition();\n\n case 'interface':\n return this.parseInterfaceTypeDefinition();\n\n case 'union':\n return this.parseUnionTypeDefinition();\n\n case 'enum':\n return this.parseEnumTypeDefinition();\n\n case 'input':\n return this.parseInputObjectTypeDefinition();\n\n case 'directive':\n return this.parseDirectiveDefinition();\n }\n }\n\n throw this.unexpected(keywordToken);\n };\n\n _proto.peekDescription = function peekDescription() {\n return this.peek(TokenKind.STRING) || this.peek(TokenKind.BLOCK_STRING);\n }\n /**\n * Description : StringValue\n */\n ;\n\n _proto.parseDescription = function parseDescription() {\n if (this.peekDescription()) {\n return this.parseStringLiteral();\n }\n }\n /**\n * SchemaDefinition : Description? schema Directives[Const]? { OperationTypeDefinition+ }\n */\n ;\n\n _proto.parseSchemaDefinition = function parseSchemaDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('schema');\n var directives = this.parseDirectives(true);\n var operationTypes = this.many(TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R);\n return {\n kind: Kind.SCHEMA_DEFINITION,\n description: description,\n directives: directives,\n operationTypes: operationTypes,\n loc: this.loc(start)\n };\n }\n /**\n * OperationTypeDefinition : OperationType : NamedType\n */\n ;\n\n _proto.parseOperationTypeDefinition = function parseOperationTypeDefinition() {\n var start = this._lexer.token;\n var operation = this.parseOperationType();\n this.expectToken(TokenKind.COLON);\n var type = this.parseNamedType();\n return {\n kind: Kind.OPERATION_TYPE_DEFINITION,\n operation: operation,\n type: type,\n loc: this.loc(start)\n };\n }\n /**\n * ScalarTypeDefinition : Description? scalar Name Directives[Const]?\n */\n ;\n\n _proto.parseScalarTypeDefinition = function parseScalarTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('scalar');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.SCALAR_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ObjectTypeDefinition :\n * Description?\n * type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition?\n */\n ;\n\n _proto.parseObjectTypeDefinition = function parseObjectTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('type');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n return {\n kind: Kind.OBJECT_TYPE_DEFINITION,\n description: description,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * ImplementsInterfaces :\n * - implements `&`? NamedType\n * - ImplementsInterfaces & NamedType\n */\n ;\n\n _proto.parseImplementsInterfaces = function parseImplementsInterfaces() {\n var types = [];\n\n if (this.expectOptionalKeyword('implements')) {\n // Optional leading ampersand\n this.expectOptionalToken(TokenKind.AMP);\n\n do {\n var _this$_options2;\n\n types.push(this.parseNamedType());\n } while (this.expectOptionalToken(TokenKind.AMP) || // Legacy support for the SDL?\n ((_this$_options2 = this._options) === null || _this$_options2 === void 0 ? void 0 : _this$_options2.allowLegacySDLImplementsInterfaces) === true && this.peek(TokenKind.NAME));\n }\n\n return types;\n }\n /**\n * FieldsDefinition : { FieldDefinition+ }\n */\n ;\n\n _proto.parseFieldsDefinition = function parseFieldsDefinition() {\n var _this$_options3;\n\n // Legacy support for the SDL?\n if (((_this$_options3 = this._options) === null || _this$_options3 === void 0 ? void 0 : _this$_options3.allowLegacySDLEmptyFields) === true && this.peek(TokenKind.BRACE_L) && this._lexer.lookahead().kind === TokenKind.BRACE_R) {\n this._lexer.advance();\n\n this._lexer.advance();\n\n return [];\n }\n\n return this.optionalMany(TokenKind.BRACE_L, this.parseFieldDefinition, TokenKind.BRACE_R);\n }\n /**\n * FieldDefinition :\n * - Description? Name ArgumentsDefinition? : Type Directives[Const]?\n */\n ;\n\n _proto.parseFieldDefinition = function parseFieldDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n var args = this.parseArgumentDefs();\n this.expectToken(TokenKind.COLON);\n var type = this.parseTypeReference();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.FIELD_DEFINITION,\n description: description,\n name: name,\n arguments: args,\n type: type,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ArgumentsDefinition : ( InputValueDefinition+ )\n */\n ;\n\n _proto.parseArgumentDefs = function parseArgumentDefs() {\n return this.optionalMany(TokenKind.PAREN_L, this.parseInputValueDef, TokenKind.PAREN_R);\n }\n /**\n * InputValueDefinition :\n * - Description? Name : Type DefaultValue? Directives[Const]?\n */\n ;\n\n _proto.parseInputValueDef = function parseInputValueDef() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n var type = this.parseTypeReference();\n var defaultValue;\n\n if (this.expectOptionalToken(TokenKind.EQUALS)) {\n defaultValue = this.parseValueLiteral(true);\n }\n\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.INPUT_VALUE_DEFINITION,\n description: description,\n name: name,\n type: type,\n defaultValue: defaultValue,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * InterfaceTypeDefinition :\n * - Description? interface Name Directives[Const]? FieldsDefinition?\n */\n ;\n\n _proto.parseInterfaceTypeDefinition = function parseInterfaceTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('interface');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n return {\n kind: Kind.INTERFACE_TYPE_DEFINITION,\n description: description,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * UnionTypeDefinition :\n * - Description? union Name Directives[Const]? UnionMemberTypes?\n */\n ;\n\n _proto.parseUnionTypeDefinition = function parseUnionTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('union');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var types = this.parseUnionMemberTypes();\n return {\n kind: Kind.UNION_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n types: types,\n loc: this.loc(start)\n };\n }\n /**\n * UnionMemberTypes :\n * - = `|`? NamedType\n * - UnionMemberTypes | NamedType\n */\n ;\n\n _proto.parseUnionMemberTypes = function parseUnionMemberTypes() {\n var types = [];\n\n if (this.expectOptionalToken(TokenKind.EQUALS)) {\n // Optional leading pipe\n this.expectOptionalToken(TokenKind.PIPE);\n\n do {\n types.push(this.parseNamedType());\n } while (this.expectOptionalToken(TokenKind.PIPE));\n }\n\n return types;\n }\n /**\n * EnumTypeDefinition :\n * - Description? enum Name Directives[Const]? EnumValuesDefinition?\n */\n ;\n\n _proto.parseEnumTypeDefinition = function parseEnumTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('enum');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var values = this.parseEnumValuesDefinition();\n return {\n kind: Kind.ENUM_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n values: values,\n loc: this.loc(start)\n };\n }\n /**\n * EnumValuesDefinition : { EnumValueDefinition+ }\n */\n ;\n\n _proto.parseEnumValuesDefinition = function parseEnumValuesDefinition() {\n return this.optionalMany(TokenKind.BRACE_L, this.parseEnumValueDefinition, TokenKind.BRACE_R);\n }\n /**\n * EnumValueDefinition : Description? EnumValue Directives[Const]?\n *\n * EnumValue : Name\n */\n ;\n\n _proto.parseEnumValueDefinition = function parseEnumValueDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.ENUM_VALUE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * InputObjectTypeDefinition :\n * - Description? input Name Directives[Const]? InputFieldsDefinition?\n */\n ;\n\n _proto.parseInputObjectTypeDefinition = function parseInputObjectTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('input');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var fields = this.parseInputFieldsDefinition();\n return {\n kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * InputFieldsDefinition : { InputValueDefinition+ }\n */\n ;\n\n _proto.parseInputFieldsDefinition = function parseInputFieldsDefinition() {\n return this.optionalMany(TokenKind.BRACE_L, this.parseInputValueDef, TokenKind.BRACE_R);\n }\n /**\n * TypeSystemExtension :\n * - SchemaExtension\n * - TypeExtension\n *\n * TypeExtension :\n * - ScalarTypeExtension\n * - ObjectTypeExtension\n * - InterfaceTypeExtension\n * - UnionTypeExtension\n * - EnumTypeExtension\n * - InputObjectTypeDefinition\n */\n ;\n\n _proto.parseTypeSystemExtension = function parseTypeSystemExtension() {\n var keywordToken = this._lexer.lookahead();\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaExtension();\n\n case 'scalar':\n return this.parseScalarTypeExtension();\n\n case 'type':\n return this.parseObjectTypeExtension();\n\n case 'interface':\n return this.parseInterfaceTypeExtension();\n\n case 'union':\n return this.parseUnionTypeExtension();\n\n case 'enum':\n return this.parseEnumTypeExtension();\n\n case 'input':\n return this.parseInputObjectTypeExtension();\n }\n }\n\n throw this.unexpected(keywordToken);\n }\n /**\n * SchemaExtension :\n * - extend schema Directives[Const]? { OperationTypeDefinition+ }\n * - extend schema Directives[Const]\n */\n ;\n\n _proto.parseSchemaExtension = function parseSchemaExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('schema');\n var directives = this.parseDirectives(true);\n var operationTypes = this.optionalMany(TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R);\n\n if (directives.length === 0 && operationTypes.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.SCHEMA_EXTENSION,\n directives: directives,\n operationTypes: operationTypes,\n loc: this.loc(start)\n };\n }\n /**\n * ScalarTypeExtension :\n * - extend scalar Name Directives[Const]\n */\n ;\n\n _proto.parseScalarTypeExtension = function parseScalarTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('scalar');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n\n if (directives.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.SCALAR_TYPE_EXTENSION,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ObjectTypeExtension :\n * - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend type Name ImplementsInterfaces? Directives[Const]\n * - extend type Name ImplementsInterfaces\n */\n ;\n\n _proto.parseObjectTypeExtension = function parseObjectTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('type');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n\n if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.OBJECT_TYPE_EXTENSION,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * InterfaceTypeExtension :\n * - extend interface Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend interface Name ImplementsInterfaces? Directives[Const]\n * - extend interface Name ImplementsInterfaces\n */\n ;\n\n _proto.parseInterfaceTypeExtension = function parseInterfaceTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('interface');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n\n if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.INTERFACE_TYPE_EXTENSION,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * UnionTypeExtension :\n * - extend union Name Directives[Const]? UnionMemberTypes\n * - extend union Name Directives[Const]\n */\n ;\n\n _proto.parseUnionTypeExtension = function parseUnionTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('union');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var types = this.parseUnionMemberTypes();\n\n if (directives.length === 0 && types.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.UNION_TYPE_EXTENSION,\n name: name,\n directives: directives,\n types: types,\n loc: this.loc(start)\n };\n }\n /**\n * EnumTypeExtension :\n * - extend enum Name Directives[Const]? EnumValuesDefinition\n * - extend enum Name Directives[Const]\n */\n ;\n\n _proto.parseEnumTypeExtension = function parseEnumTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('enum');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var values = this.parseEnumValuesDefinition();\n\n if (directives.length === 0 && values.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.ENUM_TYPE_EXTENSION,\n name: name,\n directives: directives,\n values: values,\n loc: this.loc(start)\n };\n }\n /**\n * InputObjectTypeExtension :\n * - extend input Name Directives[Const]? InputFieldsDefinition\n * - extend input Name Directives[Const]\n */\n ;\n\n _proto.parseInputObjectTypeExtension = function parseInputObjectTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('input');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var fields = this.parseInputFieldsDefinition();\n\n if (directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.INPUT_OBJECT_TYPE_EXTENSION,\n name: name,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * DirectiveDefinition :\n * - Description? directive @ Name ArgumentsDefinition? `repeatable`? on DirectiveLocations\n */\n ;\n\n _proto.parseDirectiveDefinition = function parseDirectiveDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('directive');\n this.expectToken(TokenKind.AT);\n var name = this.parseName();\n var args = this.parseArgumentDefs();\n var repeatable = this.expectOptionalKeyword('repeatable');\n this.expectKeyword('on');\n var locations = this.parseDirectiveLocations();\n return {\n kind: Kind.DIRECTIVE_DEFINITION,\n description: description,\n name: name,\n arguments: args,\n repeatable: repeatable,\n locations: locations,\n loc: this.loc(start)\n };\n }\n /**\n * DirectiveLocations :\n * - `|`? DirectiveLocation\n * - DirectiveLocations | DirectiveLocation\n */\n ;\n\n _proto.parseDirectiveLocations = function parseDirectiveLocations() {\n // Optional leading pipe\n this.expectOptionalToken(TokenKind.PIPE);\n var locations = [];\n\n do {\n locations.push(this.parseDirectiveLocation());\n } while (this.expectOptionalToken(TokenKind.PIPE));\n\n return locations;\n }\n /*\n * DirectiveLocation :\n * - ExecutableDirectiveLocation\n * - TypeSystemDirectiveLocation\n *\n * ExecutableDirectiveLocation : one of\n * `QUERY`\n * `MUTATION`\n * `SUBSCRIPTION`\n * `FIELD`\n * `FRAGMENT_DEFINITION`\n * `FRAGMENT_SPREAD`\n * `INLINE_FRAGMENT`\n *\n * TypeSystemDirectiveLocation : one of\n * `SCHEMA`\n * `SCALAR`\n * `OBJECT`\n * `FIELD_DEFINITION`\n * `ARGUMENT_DEFINITION`\n * `INTERFACE`\n * `UNION`\n * `ENUM`\n * `ENUM_VALUE`\n * `INPUT_OBJECT`\n * `INPUT_FIELD_DEFINITION`\n */\n ;\n\n _proto.parseDirectiveLocation = function parseDirectiveLocation() {\n var start = this._lexer.token;\n var name = this.parseName();\n\n if (DirectiveLocation[name.value] !== undefined) {\n return name;\n }\n\n throw this.unexpected(start);\n } // Core parsing utility functions\n\n /**\n * Returns a location object, used to identify the place in\n * the source that created a given parsed object.\n */\n ;\n\n _proto.loc = function loc(startToken) {\n var _this$_options4;\n\n if (((_this$_options4 = this._options) === null || _this$_options4 === void 0 ? void 0 : _this$_options4.noLocation) !== true) {\n return new Location(startToken, this._lexer.lastToken, this._lexer.source);\n }\n }\n /**\n * Determines if the next token is of a given kind\n */\n ;\n\n _proto.peek = function peek(kind) {\n return this._lexer.token.kind === kind;\n }\n /**\n * If the next token is of the given kind, return that token after advancing\n * the lexer. Otherwise, do not change the parser state and throw an error.\n */\n ;\n\n _proto.expectToken = function expectToken(kind) {\n var token = this._lexer.token;\n\n if (token.kind === kind) {\n this._lexer.advance();\n\n return token;\n }\n\n throw syntaxError(this._lexer.source, token.start, \"Expected \".concat(getTokenKindDesc(kind), \", found \").concat(getTokenDesc(token), \".\"));\n }\n /**\n * If the next token is of the given kind, return that token after advancing\n * the lexer. Otherwise, do not change the parser state and return undefined.\n */\n ;\n\n _proto.expectOptionalToken = function expectOptionalToken(kind) {\n var token = this._lexer.token;\n\n if (token.kind === kind) {\n this._lexer.advance();\n\n return token;\n }\n\n return undefined;\n }\n /**\n * If the next token is a given keyword, advance the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n ;\n\n _proto.expectKeyword = function expectKeyword(value) {\n var token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this._lexer.advance();\n } else {\n throw syntaxError(this._lexer.source, token.start, \"Expected \\\"\".concat(value, \"\\\", found \").concat(getTokenDesc(token), \".\"));\n }\n }\n /**\n * If the next token is a given keyword, return \"true\" after advancing\n * the lexer. Otherwise, do not change the parser state and return \"false\".\n */\n ;\n\n _proto.expectOptionalKeyword = function expectOptionalKeyword(value) {\n var token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this._lexer.advance();\n\n return true;\n }\n\n return false;\n }\n /**\n * Helper function for creating an error when an unexpected lexed token\n * is encountered.\n */\n ;\n\n _proto.unexpected = function unexpected(atToken) {\n var token = atToken !== null && atToken !== void 0 ? atToken : this._lexer.token;\n return syntaxError(this._lexer.source, token.start, \"Unexpected \".concat(getTokenDesc(token), \".\"));\n }\n /**\n * Returns a possibly empty list of parse nodes, determined by\n * the parseFn. This list begins with a lex token of openKind\n * and ends with a lex token of closeKind. Advances the parser\n * to the next lex token after the closing token.\n */\n ;\n\n _proto.any = function any(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n var nodes = [];\n\n while (!this.expectOptionalToken(closeKind)) {\n nodes.push(parseFn.call(this));\n }\n\n return nodes;\n }\n /**\n * Returns a list of parse nodes, determined by the parseFn.\n * It can be empty only if open token is missing otherwise it will always\n * return non-empty list that begins with a lex token of openKind and ends\n * with a lex token of closeKind. Advances the parser to the next lex token\n * after the closing token.\n */\n ;\n\n _proto.optionalMany = function optionalMany(openKind, parseFn, closeKind) {\n if (this.expectOptionalToken(openKind)) {\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n\n return [];\n }\n /**\n * Returns a non-empty list of parse nodes, determined by\n * the parseFn. This list begins with a lex token of openKind\n * and ends with a lex token of closeKind. Advances the parser\n * to the next lex token after the closing token.\n */\n ;\n\n _proto.many = function many(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n };\n\n return Parser;\n}();\n/**\n * A helper function to describe a token as a string for debugging\n */\n\n\nfunction getTokenDesc(token) {\n var value = token.value;\n return getTokenKindDesc(token.kind) + (value != null ? \" \\\"\".concat(value, \"\\\"\") : '');\n}\n/**\n * A helper function to describe a token kind as a string for debugging\n */\n\n\nfunction getTokenKindDesc(kind) {\n return isPunctuatorTokenKind(kind) ? \"\\\"\".concat(kind, \"\\\"\") : kind;\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n// find the complete implementation of crypto (msCrypto) on IE11.\nvar getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n\n return getRandomValues(rnds8);\n}","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex; // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n\n return (bth[buf[i + 0]] + bth[buf[i + 1]] + bth[buf[i + 2]] + bth[buf[i + 3]] + '-' + bth[buf[i + 4]] + bth[buf[i + 5]] + '-' + bth[buf[i + 6]] + bth[buf[i + 7]] + '-' + bth[buf[i + 8]] + bth[buf[i + 9]] + '-' + bth[buf[i + 10]] + bth[buf[i + 11]] + bth[buf[i + 12]] + bth[buf[i + 13]] + bth[buf[i + 14]] + bth[buf[i + 15]]).toLowerCase();\n}\n\nexport default bytesToUuid;","import rng from './rng.js';\nimport bytesToUuid from './bytesToUuid.js';\n\nfunction v4(options, buf, offset) {\n if (typeof options === 'string') {\n buf = options === 'binary' ? new Uint8Array(16) : null;\n options = null;\n }\n\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n var start = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[start + i] = rnds[i];\n }\n\n return buf;\n }\n\n return bytesToUuid(rnds);\n}\n\nexport default v4;","/**\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 * @format\n */\n'use strict';\n\nvar DELAY = 'DELAY';\nvar ERROR = 'ERROR';\nvar LONG_PRESS_DETECTED = 'LONG_PRESS_DETECTED';\nvar NOT_RESPONDER = 'NOT_RESPONDER';\nvar RESPONDER_ACTIVE_LONG_PRESS_START = 'RESPONDER_ACTIVE_LONG_PRESS_START';\nvar RESPONDER_ACTIVE_PRESS_START = 'RESPONDER_ACTIVE_PRESS_START';\nvar RESPONDER_INACTIVE_PRESS_START = 'RESPONDER_INACTIVE_PRESS_START';\nvar RESPONDER_GRANT = 'RESPONDER_GRANT';\nvar RESPONDER_RELEASE = 'RESPONDER_RELEASE';\nvar RESPONDER_TERMINATED = 'RESPONDER_TERMINATED';\nvar Transitions = Object.freeze({\n NOT_RESPONDER: {\n DELAY: ERROR,\n RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n RESPONDER_RELEASE: ERROR,\n RESPONDER_TERMINATED: ERROR,\n LONG_PRESS_DETECTED: ERROR\n },\n RESPONDER_INACTIVE_PRESS_START: {\n DELAY: RESPONDER_ACTIVE_PRESS_START,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: ERROR\n },\n RESPONDER_ACTIVE_PRESS_START: {\n DELAY: ERROR,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n },\n RESPONDER_ACTIVE_LONG_PRESS_START: {\n DELAY: ERROR,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n },\n ERROR: {\n DELAY: NOT_RESPONDER,\n RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: NOT_RESPONDER\n }\n});\n\nvar isActiveSignal = function isActiveSignal(signal) {\n return signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\n};\n\nvar isButtonRole = function isButtonRole(element) {\n return element.getAttribute('role') === 'button';\n};\n\nvar isPressStartSignal = function isPressStartSignal(signal) {\n return signal === RESPONDER_INACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\n};\n\nvar isTerminalSignal = function isTerminalSignal(signal) {\n return signal === RESPONDER_TERMINATED || signal === RESPONDER_RELEASE;\n};\n\nvar isValidKeyPress = function isValidKeyPress(event) {\n var key = event.key;\n var target = event.currentTarget;\n var role = target.getAttribute('role');\n var isSpacebar = key === ' ' || key === 'Spacebar';\n return !event.repeat && (key === 'Enter' || isSpacebar && (role === 'button' || role === 'menuitem'));\n};\n\nvar DEFAULT_LONG_PRESS_DELAY_MS = 450; // 500 - 50\n\nvar DEFAULT_PRESS_DELAY_MS = 50;\n/**\n * =========================== PressResponder Tutorial ===========================\n *\n * The `PressResponder` class helps you create press interactions by analyzing the\n * geometry of elements and observing when another responder (e.g. ScrollView)\n * has stolen the touch lock. It offers hooks for your component to provide\n * interaction feedback to the user:\n *\n * - When a press has activated (e.g. highlight an element)\n * - When a press has deactivated (e.g. un-highlight an element)\n * - When a press sould trigger an action, meaning it activated and deactivated\n * while within the geometry of the element without the lock being stolen.\n *\n * A high quality interaction isn't as simple as you might think. There should\n * be a slight delay before activation. Moving your finger beyond an element's\n * bounds should trigger deactivation, but moving the same finger back within an\n * element's bounds should trigger reactivation.\n *\n * In order to use `PressResponder`, do the following:\n *\n * const pressResponder = new PressResponder(config);\n *\n * 2. Choose the rendered component who should collect the press events. On that\n * element, spread `pressability.getEventHandlers()` into its props.\n *\n * return (\n * \n * );\n *\n * 3. Reset `PressResponder` when your component unmounts.\n *\n * componentWillUnmount() {\n * this.state.pressResponder.reset();\n * }\n *\n * ==================== Implementation Details ====================\n *\n * `PressResponder` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * # Geometry\n *\n * ┌────────────────────────┐\n * │ ┌──────────────────┐ │ - Presses start anywhere within `HitRect`.\n * │ │ ┌────────────┐ │ │\n * │ │ │ VisualRect │ │ │\n * │ │ └────────────┘ │ │ - When pressed down for sufficient amount of time\n * │ │ HitRect │ │ before letting up, `VisualRect` activates.\n * │ └──────────────────┘ │\n * │ Out Region o │\n * └────────────────────│───┘\n * └────── When the press is released outside the `HitRect`,\n * the responder is NOT eligible for a \"press\".\n *\n * # State Machine\n *\n * ┌───────────────┐ ◀──── RESPONDER_RELEASE\n * │ NOT_RESPONDER │\n * └───┬───────────┘ ◀──── RESPONDER_TERMINATED\n * │\n * │ RESPONDER_GRANT (HitRect)\n * │\n * ▼\n * ┌─────────────────────┐ ┌───────────────────┐ ┌───────────────────┐\n * │ RESPONDER_INACTIVE_ │ DELAY │ RESPONDER_ACTIVE_ │ T + DELAY │ RESPONDER_ACTIVE_ │\n * │ PRESS_START ├────────▶ │ PRESS_START ├────────────▶ │ LONG_PRESS_START │\n * └─────────────────────┘ └───────────────────┘ └───────────────────┘\n *\n * T + DELAY => LONG_PRESS_DELAY + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the invocation of `onLongPress`. Only when the browser produces a\n * `click` event is `onPress` invoked.\n */\n\nvar PressResponder =\n/*#__PURE__*/\nfunction () {\n function PressResponder(config) {\n this._eventHandlers = null;\n this._isPointerTouch = false;\n this._longPressDelayTimeout = null;\n this._longPressDispatched = false;\n this._pressDelayTimeout = null;\n this._pressOutDelayTimeout = null;\n this._touchState = NOT_RESPONDER;\n this.configure(config);\n }\n\n var _proto = PressResponder.prototype;\n\n _proto.configure = function configure(config) {\n this._config = config;\n }\n /**\n * Resets any pending timers. This should be called on unmount.\n */\n ;\n\n _proto.reset = function reset() {\n this._cancelLongPressDelayTimeout();\n\n this._cancelPressDelayTimeout();\n\n this._cancelPressOutDelayTimeout();\n }\n /**\n * Returns a set of props to spread into the interactive element.\n */\n ;\n\n _proto.getEventHandlers = function getEventHandlers() {\n if (this._eventHandlers == null) {\n this._eventHandlers = this._createEventHandlers();\n }\n\n return this._eventHandlers;\n };\n\n _proto._createEventHandlers = function _createEventHandlers() {\n var _this = this;\n\n var start = function start(event, shouldDelay) {\n event.persist();\n\n _this._cancelPressOutDelayTimeout();\n\n _this._longPressDispatched = false;\n _this._responder = event.currentTarget;\n _this._selectionTerminated = false;\n _this._touchState = NOT_RESPONDER;\n _this._isPointerTouch = event.nativeEvent.type === 'touchstart';\n\n _this._receiveSignal(RESPONDER_GRANT, event);\n\n var delayPressStart = normalizeDelay(_this._config.delayPressStart, 0, DEFAULT_PRESS_DELAY_MS);\n\n if (shouldDelay !== false && delayPressStart > 0) {\n _this._pressDelayTimeout = setTimeout(function () {\n _this._receiveSignal(DELAY, event);\n }, delayPressStart);\n } else {\n _this._receiveSignal(DELAY, event);\n }\n\n var delayLongPress = normalizeDelay(_this._config.delayLongPress, 10, DEFAULT_LONG_PRESS_DELAY_MS);\n _this._longPressDelayTimeout = setTimeout(function () {\n _this._handleLongPress(event);\n }, delayLongPress + delayPressStart);\n };\n\n var end = function end(event) {\n _this._receiveSignal(RESPONDER_RELEASE, event);\n };\n\n var keyupHandler = function keyupHandler(event) {\n if (_this._touchState !== NOT_RESPONDER) {\n end(event);\n document.removeEventListener('keyup', keyupHandler);\n }\n };\n\n return {\n onStartShouldSetResponder: function onStartShouldSetResponder(event) {\n var disabled = _this._config.disabled;\n\n if (disabled && isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n\n if (disabled == null) {\n return true;\n }\n\n return !disabled;\n },\n onKeyDown: function onKeyDown(event) {\n if (isValidKeyPress(event)) {\n if (_this._touchState === NOT_RESPONDER) {\n start(event, false); // Listen to 'keyup' on document to account for situations where\n // focus is moved to another element during 'keydown'.\n\n document.addEventListener('keyup', keyupHandler);\n }\n\n event.stopPropagation();\n }\n },\n onResponderGrant: function onResponderGrant(event) {\n return start(event);\n },\n onResponderMove: function onResponderMove(event) {\n if (_this._config.onPressMove != null) {\n _this._config.onPressMove(event);\n }\n\n var touch = getTouchFromResponderEvent(event);\n\n if (_this._touchActivatePosition != null) {\n var deltaX = _this._touchActivatePosition.pageX - touch.pageX;\n var deltaY = _this._touchActivatePosition.pageY - touch.pageY;\n\n if (Math.hypot(deltaX, deltaY) > 10) {\n _this._cancelLongPressDelayTimeout();\n }\n }\n },\n onResponderRelease: function onResponderRelease(event) {\n return end(event);\n },\n onResponderTerminate: function onResponderTerminate(event) {\n if (event.nativeEvent.type === 'selectionchange') {\n _this._selectionTerminated = true;\n }\n\n _this._receiveSignal(RESPONDER_TERMINATED, event);\n },\n onResponderTerminationRequest: function onResponderTerminationRequest(event) {\n var _this$_config = _this._config,\n cancelable = _this$_config.cancelable,\n disabled = _this$_config.disabled,\n onLongPress = _this$_config.onLongPress; // If `onLongPress` is provided, don't terminate on `contextmenu` as default\n // behavior will be prevented for non-mouse pointers.\n\n if (!disabled && onLongPress != null && _this._isPointerTouch && event.nativeEvent.type === 'contextmenu') {\n return false;\n }\n\n if (cancelable == null) {\n return true;\n }\n\n return cancelable;\n },\n // NOTE: this diverges from react-native in 3 significant ways:\n // * The `onPress` callback is not connected to the responder system (the native\n // `click` event must be used but is dispatched in many scenarios where no pointers\n // are on the screen.) Therefore, it's possible for `onPress` to be called without\n // `onPress{Start,End}` being called first.\n // * The `onPress` callback is only be called on the first ancestor of the native\n // `click` target that is using the PressResponder.\n // * The event's `nativeEvent` is a `MouseEvent` not a `TouchEvent`.\n onClick: function onClick(event) {\n var _this$_config2 = _this._config,\n disabled = _this$_config2.disabled,\n onPress = _this$_config2.onPress;\n\n if (!disabled) {\n // If long press dispatched, cancel default click behavior.\n // If the responder terminated because text was selected during the gesture,\n // cancel the default click behavior.\n event.stopPropagation();\n\n if (_this._longPressDispatched || _this._selectionTerminated) {\n event.preventDefault();\n } else if (onPress != null && event.ctrlKey === false && event.altKey === false) {\n onPress(event);\n }\n } else {\n if (isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n }\n },\n // If `onLongPress` is provided and a touch pointer is being used, prevent the\n // default context menu from opening.\n onContextMenu: function onContextMenu(event) {\n var _this$_config3 = _this._config,\n disabled = _this$_config3.disabled,\n onLongPress = _this$_config3.onLongPress;\n\n if (!disabled) {\n if (onLongPress != null && _this._isPointerTouch && !event.defaultPrevented) {\n event.preventDefault();\n event.stopPropagation();\n }\n } else {\n if (isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n }\n }\n };\n }\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n */\n ;\n\n _proto._receiveSignal = function _receiveSignal(signal, event) {\n var prevState = this._touchState;\n var nextState = null;\n\n if (Transitions[prevState] != null) {\n nextState = Transitions[prevState][signal];\n }\n\n if (this._responder == null && signal === RESPONDER_RELEASE) {\n return;\n }\n\n if (nextState == null || nextState === ERROR) {\n console.error(\"PressResponder: Invalid signal \" + signal + \" for state \" + prevState + \" on responder\");\n } else if (prevState !== nextState) {\n this._performTransitionSideEffects(prevState, nextState, signal, event);\n\n this._touchState = nextState;\n }\n }\n /**\n * Performs a transition between touchable states and identify any activations\n * or deactivations (and callback invocations).\n */\n ;\n\n _proto._performTransitionSideEffects = function _performTransitionSideEffects(prevState, nextState, signal, event) {\n if (isTerminalSignal(signal)) {\n this._isPointerTouch = false;\n this._touchActivatePosition = null;\n\n this._cancelLongPressDelayTimeout();\n }\n\n if (isPressStartSignal(prevState) && signal === LONG_PRESS_DETECTED) {\n var onLongPress = this._config.onLongPress; // Long press is not supported for keyboards because 'click' can be dispatched\n // immediately (and multiple times) after 'keydown'.\n\n if (onLongPress != null && event.nativeEvent.key == null) {\n onLongPress(event);\n this._longPressDispatched = true;\n }\n }\n\n var isPrevActive = isActiveSignal(prevState);\n var isNextActive = isActiveSignal(nextState);\n\n if (!isPrevActive && isNextActive) {\n this._activate(event);\n } else if (isPrevActive && !isNextActive) {\n this._deactivate(event);\n }\n\n if (isPressStartSignal(prevState) && signal === RESPONDER_RELEASE) {\n var _this$_config4 = this._config,\n _onLongPress = _this$_config4.onLongPress,\n onPress = _this$_config4.onPress;\n\n if (onPress != null) {\n var isPressCanceledByLongPress = _onLongPress != null && prevState === RESPONDER_ACTIVE_LONG_PRESS_START;\n\n if (!isPressCanceledByLongPress) {\n // If we never activated (due to delays), activate and deactivate now.\n if (!isNextActive && !isPrevActive) {\n this._activate(event);\n\n this._deactivate(event);\n }\n }\n }\n }\n\n this._cancelPressDelayTimeout();\n };\n\n _proto._activate = function _activate(event) {\n var _this$_config5 = this._config,\n onPressChange = _this$_config5.onPressChange,\n onPressStart = _this$_config5.onPressStart;\n var touch = getTouchFromResponderEvent(event);\n this._touchActivatePosition = {\n pageX: touch.pageX,\n pageY: touch.pageY\n };\n\n if (onPressStart != null) {\n onPressStart(event);\n }\n\n if (onPressChange != null) {\n onPressChange(true);\n }\n };\n\n _proto._deactivate = function _deactivate(event) {\n var _this$_config6 = this._config,\n onPressChange = _this$_config6.onPressChange,\n onPressEnd = _this$_config6.onPressEnd;\n\n function end() {\n if (onPressEnd != null) {\n onPressEnd(event);\n }\n\n if (onPressChange != null) {\n onPressChange(false);\n }\n }\n\n var delayPressEnd = normalizeDelay(this._config.delayPressEnd);\n\n if (delayPressEnd > 0) {\n this._pressOutDelayTimeout = setTimeout(function () {\n end();\n }, delayPressEnd);\n } else {\n end();\n }\n };\n\n _proto._handleLongPress = function _handleLongPress(event) {\n if (this._touchState === RESPONDER_ACTIVE_PRESS_START || this._touchState === RESPONDER_ACTIVE_LONG_PRESS_START) {\n this._receiveSignal(LONG_PRESS_DETECTED, event);\n }\n };\n\n _proto._cancelLongPressDelayTimeout = function _cancelLongPressDelayTimeout() {\n if (this._longPressDelayTimeout != null) {\n clearTimeout(this._longPressDelayTimeout);\n this._longPressDelayTimeout = null;\n }\n };\n\n _proto._cancelPressDelayTimeout = function _cancelPressDelayTimeout() {\n if (this._pressDelayTimeout != null) {\n clearTimeout(this._pressDelayTimeout);\n this._pressDelayTimeout = null;\n }\n };\n\n _proto._cancelPressOutDelayTimeout = function _cancelPressOutDelayTimeout() {\n if (this._pressOutDelayTimeout != null) {\n clearTimeout(this._pressOutDelayTimeout);\n this._pressOutDelayTimeout = null;\n }\n };\n\n return PressResponder;\n}();\n\nexport { PressResponder as default };\n\nfunction normalizeDelay(delay, min, fallback) {\n if (min === void 0) {\n min = 0;\n }\n\n if (fallback === void 0) {\n fallback = 0;\n }\n\n return Math.max(min, delay !== null && delay !== void 0 ? delay : fallback);\n}\n\nfunction getTouchFromResponderEvent(event) {\n var _event$nativeEvent = event.nativeEvent,\n changedTouches = _event$nativeEvent.changedTouches,\n touches = _event$nativeEvent.touches;\n\n if (touches != null && touches.length > 0) {\n return touches[0];\n }\n\n if (changedTouches != null && changedTouches.length > 0) {\n return changedTouches[0];\n }\n\n return event.nativeEvent;\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 * @format\n */\n'use strict';\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from 'react';\nimport { useCallback, useMemo, useState, useRef } from 'react';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePressEvents from '../../modules/usePressEvents';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n\nfunction createExtraStyles(activeOpacity, underlayColor) {\n return {\n child: {\n opacity: activeOpacity !== null && activeOpacity !== void 0 ? activeOpacity : 0.85\n },\n underlay: {\n backgroundColor: underlayColor === undefined ? 'black' : underlayColor\n }\n };\n}\n\nfunction hasPressHandler(props) {\n return props.onPress != null || props.onPressIn != null || props.onPressOut != null || props.onLongPress != null;\n}\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, which allows\n * the underlay color to show through, darkening or tinting the view.\n *\n * The underlay comes from wrapping the child in a new View, which can affect\n * layout, and sometimes cause unwanted visual artifacts if not used correctly,\n * for example if the backgroundColor of the wrapped view isn't explicitly set\n * to an opaque color.\n *\n * TouchableHighlight must have one child (not zero or more than one).\n * If you wish to have several child components, wrap them in a View.\n */\n\n\nfunction TouchableHighlight(props, forwardedRef) {\n var activeOpacity = props.activeOpacity,\n children = props.children,\n delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n delayLongPress = props.delayLongPress,\n disabled = props.disabled,\n focusable = props.focusable,\n onHideUnderlay = props.onHideUnderlay,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n onShowUnderlay = props.onShowUnderlay,\n rejectResponderTermination = props.rejectResponderTermination,\n style = props.style,\n testOnly_pressed = props.testOnly_pressed,\n underlayColor = props.underlayColor,\n rest = _objectWithoutPropertiesLoose(props, [\"activeOpacity\", \"children\", \"delayPressIn\", \"delayPressOut\", \"delayLongPress\", \"disabled\", \"focusable\", \"onHideUnderlay\", \"onLongPress\", \"onPress\", \"onPressIn\", \"onPressOut\", \"onShowUnderlay\", \"rejectResponderTermination\", \"style\", \"testOnly_pressed\", \"underlayColor\"]);\n\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n\n var _useState = useState(testOnly_pressed === true ? createExtraStyles(activeOpacity, underlayColor) : null),\n extraStyles = _useState[0],\n setExtraStyles = _useState[1];\n\n var showUnderlay = useCallback(function () {\n if (!hasPressHandler(props)) {\n return;\n }\n\n setExtraStyles(createExtraStyles(activeOpacity, underlayColor));\n\n if (onShowUnderlay != null) {\n onShowUnderlay();\n }\n }, [activeOpacity, onShowUnderlay, props, underlayColor]);\n var hideUnderlay = useCallback(function () {\n if (testOnly_pressed === true) {\n return;\n }\n\n if (hasPressHandler(props)) {\n setExtraStyles(null);\n\n if (onHideUnderlay != null) {\n onHideUnderlay();\n }\n }\n }, [onHideUnderlay, props, testOnly_pressed]);\n var pressConfig = useMemo(function () {\n return {\n cancelable: !rejectResponderTermination,\n disabled: disabled,\n delayLongPress: delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress: onLongPress,\n onPress: onPress,\n onPressStart: function onPressStart(event) {\n showUnderlay();\n\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n onPressEnd: function onPressEnd(event) {\n hideUnderlay();\n\n if (onPressOut != null) {\n onPressOut(event);\n }\n }\n };\n }, [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination, showUnderlay, hideUnderlay]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n var child = React.Children.only(children);\n return (\n /*#__PURE__*/\n React.createElement(View, _extends({}, rest, pressEventHandlers, {\n accessibilityDisabled: disabled,\n focusable: !disabled && focusable !== false,\n ref: setRef,\n style: [styles.root, style, !disabled && styles.actionable, extraStyles && extraStyles.underlay]\n }),\n /*#__PURE__*/\n React.cloneElement(child, {\n style: StyleSheet.compose(child.props.style, extraStyles && extraStyles.child)\n }))\n );\n}\n\nvar styles = StyleSheet.create({\n root: {\n userSelect: 'none'\n },\n actionable: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n }\n});\nvar MemoedTouchableHighlight =\n/*#__PURE__*/\nReact.memo(\n/*#__PURE__*/\nReact.forwardRef(TouchableHighlight));\nMemoedTouchableHighlight.displayName = 'TouchableHighlight';\nexport default MemoedTouchableHighlight;","/**\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 * @format\n */\n'use strict';\n\nimport PressResponder from './PressResponder';\nimport { useDebugValue, useEffect, useRef } from 'react';\nexport default function usePressEvents(hostRef, config) {\n var pressResponderRef = useRef(null);\n\n if (pressResponderRef.current == null) {\n pressResponderRef.current = new PressResponder(config);\n }\n\n var pressResponder = pressResponderRef.current; // Re-configure to use the current node and configuration.\n\n useEffect(function () {\n pressResponder.configure(config);\n }, [config, pressResponder]); // Reset the `pressResponder` when cleanup needs to occur. This is\n // a separate effect because we do not want to rest the responder when `config` changes.\n\n useEffect(function () {\n return function () {\n pressResponder.reset();\n };\n }, [pressResponder]);\n useDebugValue(config);\n return pressResponder.getEventHandlers();\n}"],"sourceRoot":""}