{"version":3,"sources":["../node_modules/react/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/graphql-tag/src/index.js","../node_modules/prop-types/index.js","../node_modules/tslib/tslib.es6.js","../node_modules/graphql/jsutils/identityFunc.mjs","../node_modules/graphql/type/definition.mjs","../../../../src/utils.ts","../../../../src/manager.ts","../../../../src/theme.ts","../node_modules/graphql/language/kinds.mjs","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/reactstrap/es/utils.js","../../../types.ts","../../../../logic/config.ts","../../../../utils/track.ts","../../../../utils/misc.tsx","../../../../utils/channels.ts","../../../../utils/verificationUrl.ts","../../src/logger.ts","../../src/syncpromise.ts","../../src/session.ts","../../src/scope.ts","../../src/hub.ts","../../src/index.ts","../../../../logic/auth.ts","../../../../utils/theme.ts","../../../../src/icons.tsx","../../../../src/Button.tsx","../../../../src/Checkbox.tsx","../../../../components/ToS.tsx","../../../../src/Field.tsx","../../../../components/TraditionalLogin.tsx","../../../../components/Logo.tsx","../../../../components/SocialButtons.tsx","../../../../logic/steps.ts","../../../../components/SocialChooseStep.tsx","../../../../src/Radio.tsx","../../../../components/ChooseEmailDomain.tsx","../../../../components/VerificationMessage.tsx","../../../../components/WaitingReview.tsx","../../../../components/ChooseRole.tsx","../../../../components/Success.tsx","../../../../components/BuyerToConsumer.tsx","../../../../src/ErrorMessage.tsx","../../../../components/TemporaryConsumer.tsx","../../../../utils/oauth.ts","../../../../components/InsertWorkEmail.tsx","../../../../components/SocialLogin.tsx","../../../../components/SwitchToSocial.tsx","../../../../components/ErrorStep.tsx","../../../../components/RememberSocialStep.tsx","../../../../components/VerifyLinkExpired.tsx","../../../../components/ChooseUpgradeRole.tsx","../../../../src/LayoutHandler.tsx","../../../../components/Login.tsx","../../../../components/Logout.tsx","../../../../components/SocialRedirect.tsx","../../../../utils/renewModal.ts","../../../../src/Modal2.tsx","../../../../logic/tokens.ts","../../../../components/RenewModal.tsx","../../../../components/AuthRoutes.tsx","../../../../links/targetSiteLink.ts","../../../../links/RenewLink.tsx","../../../../utils/loggedContext.ts","../../../../components/UserData.tsx","../../../../components/AuthContext.tsx","../node_modules/graphql/jsutils/inspect.mjs","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/graphql/error/GraphQLError.mjs","../node_modules/graphql/language/tokenKind.mjs","../node_modules/date-fns/esm/toDate/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/reactcss/lib/index.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.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","../node_modules/classnames/index.js","../node_modules/date-fns/esm/_lib/toInteger/index.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","../../src/CharacterStream.ts","../../src/RuleHelpers.ts","../../src/Rules.ts","../../src/onlineParser.ts","../../src/types.ts","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../src/invariant.ts","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/graphql/jsutils/devAssert.mjs","../node_modules/@emotion/utils/dist/utils.browser.esm.js","../node_modules/@emotion/core/dist/emotion-element-57a3a7a3.browser.esm.js","../node_modules/@emotion/core/dist/core.browser.esm.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/graphql/language/directiveLocation.mjs","../node_modules/core-js/modules/_export.js","../node_modules/graphql/type/introspection.mjs","../../modules/HistoryContext.js","../../modules/createNameContext.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/withRouter.js","../../modules/hooks.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","../node_modules/ramda/es/internal/_curry2.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/graphql/polyfills/objectValues.mjs","../node_modules/react-select/dist/index-4b37608a.browser.esm.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/exenv/index.js","../node_modules/graphql/polyfills/isFinite.mjs","../node_modules/graphql/polyfills/isInteger.mjs","../node_modules/graphql/type/scalars.mjs","../node_modules/codemirror/lib/codemirror.js","../../src/context/ApolloContext.ts","../../src/parser/parser.ts","../../src/context/ApolloProvider.tsx","../../src/context/ApolloConsumer.tsx","../node_modules/ramda/es/internal/_curry1.js","../../../../src/Collapsible.tsx","../../../../src/Modal.tsx","../../../../src/Tag.tsx","../../../../src/Dropdown.tsx","../../../../src/Box.tsx","../../../../src/Breadcrumbs.tsx","../../../../src/Slider.tsx","../../../../src/Select.tsx","../../../../src/Rating.tsx","../../../../src/Toggle.tsx","../../../../src/Tooltip.tsx","../../../index.ts","../node_modules/graphql/language/visitor.mjs","../node_modules/graphql/type/directives.mjs","../node_modules/markdown-it/lib/common/utils.js","../node_modules/react-dom/index.js","../node_modules/graphql/language/printer.mjs","../node_modules/ramda/es/internal/_isPlaceholder.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/graphql/jsutils/invariant.mjs","../node_modules/graphql/version.mjs","../node_modules/graphql/jsutils/isPromise.mjs","../node_modules/graphql/jsutils/Path.mjs","../node_modules/graphql/error/locatedError.mjs","../node_modules/graphql/utilities/getOperationRootType.mjs","../node_modules/graphql/jsutils/printPathArray.mjs","../node_modules/graphql/utilities/valueFromAST.mjs","../node_modules/graphql/utilities/coerceInputValue.mjs","../node_modules/graphql/execution/values.mjs","../node_modules/graphql/execution/execute.mjs","../node_modules/graphql/jsutils/promiseReduce.mjs","../node_modules/graphql/jsutils/promiseForObject.mjs","../node_modules/graphql/jsutils/memoize3.mjs","../node_modules/graphql/graphql.mjs","../node_modules/graphql/subscription/mapAsyncIterator.mjs","../node_modules/graphql/subscription/subscribe.mjs","../node_modules/graphql/error/formatError.mjs","../node_modules/graphql/utilities/introspectionQuery.mjs","../node_modules/graphql/utilities/getOperationAST.mjs","../node_modules/graphql/utilities/introspectionFromSchema.mjs","../node_modules/graphql/utilities/buildClientSchema.mjs","../node_modules/graphql/utilities/buildASTSchema.mjs","../node_modules/graphql/utilities/extendSchema.mjs","../node_modules/graphql/utilities/lexicographicSortSchema.mjs","../node_modules/graphql/utilities/schemaPrinter.mjs","../node_modules/graphql/utilities/coerceValue.mjs","../node_modules/graphql/utilities/isValidJSValue.mjs","../node_modules/graphql/utilities/isValidLiteralValue.mjs","../node_modules/graphql/utilities/concatAST.mjs","../node_modules/graphql/utilities/separateOperations.mjs","../node_modules/graphql/utilities/stripIgnoredCharacters.mjs","../node_modules/graphql/utilities/findBreakingChanges.mjs","../node_modules/moment/moment.js","../../../index.tsx","../../src/is.ts","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/webpack/buildin/global.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createClass.js","../node_modules/lodash-es/_root.js","../node_modules/graphql/jsutils/isObjectLike.mjs","../node_modules/broadcast-channel/dist/es/util.js","../node_modules/core-js/modules/_is-object.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/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/graphql/jsutils/keyValMap.mjs","../node_modules/core-js/modules/_global.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createSuper.js","../node_modules/graphql/utilities/typeFromAST.mjs","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../../src/equality.ts","../node_modules/core-js/modules/_descriptors.js","../node_modules/core-js/modules/_fails.js","../node_modules/core-js/modules/_to-object.js","../node_modules/graphql/jsutils/keyMap.mjs","../node_modules/core-js/modules/_wks.js","../../../server-types.ts","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../../src/zenObservable.ts","../node_modules/core-js/modules/_core.js","../node_modules/graphql/jsutils/didYouMean.mjs","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../../src/misc.ts","../node_modules/reactstrap/es/Fade.js","../node_modules/graphql/jsutils/toObjMap.mjs","../node_modules/ramda/es/internal/_has.js","../node_modules/graphql/jsutils/suggestionList.mjs","../node_modules/graphql/jsutils/isInvalid.mjs","../node_modules/iterall/index.mjs","../node_modules/graphql/jsutils/defineToStringTag.mjs","../node_modules/graphql/jsutils/defineToJSON.mjs","../node_modules/graphql/error/syntaxError.mjs","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/core-js/modules/_object-dp.js","../node_modules/core-js/modules/_an-object.js","../node_modules/process/browser.js","../node_modules/graphql/type/schema.mjs","../node_modules/graphql/polyfills/objectEntries.mjs","../node_modules/graphql/language/predicates.mjs","../node_modules/graphql/polyfills/flatMap.mjs","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/graphql/jsutils/instanceOf.mjs","../node_modules/core-js/modules/_to-length.js","../node_modules/lodash/isArray.js","../node_modules/ramda/es/internal/_arity.js","../../src/linkUtils.ts","../../src/link.ts","../node_modules/react-ga/dist/esm/utils/console/warn.js","../node_modules/react-ga/dist/esm/components/OutboundLink.js","../node_modules/react-ga/dist/esm/utils/trim.js","../node_modules/react-ga/dist/esm/utils/toTitleCase.js","../node_modules/react-ga/dist/esm/utils/format.js","../node_modules/react-ga/dist/esm/utils/mightBeEmail.js","../node_modules/react-ga/dist/esm/utils/console/log.js","../node_modules/react-ga/dist/esm/utils/testModeAPI.js","../node_modules/react-ga/dist/esm/core.js","../node_modules/react-ga/dist/esm/utils/loadGA.js","../node_modules/react-ga/dist/esm/utils/removeLeadingSlash.js","../node_modules/react-ga/dist/esm/index.js","../node_modules/core-js/modules/_to-iobject.js","../node_modules/core-js/modules/_strict-method.js","../node_modules/graphql/language/blockString.mjs","../node_modules/date-fns/esm/startOfWeek/index.js","../node_modules/graphql/polyfills/find.mjs","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/graphql/jsutils/mapValue.mjs","../node_modules/core-js/modules/_a-function.js","../node_modules/core-js/modules/_object-sap.js","../node_modules/lodash/_root.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../../src/object.ts","../node_modules/core-js/modules/_ctx.js","../node_modules/lodash/isObjectLike.js","../node_modules/@emotion/css/dist/css.browser.esm.js","../node_modules/graphql/language/parser.mjs","../node_modules/query-string/index.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/graphql/utilities/typeComparators.mjs","../node_modules/react-popper/lib/esm/utils.js","../node_modules/assert/assert.js","../node_modules/core-js/modules/_redefine.js","../node_modules/core-js/modules/_has.js","../node_modules/core-js/modules/_array-methods.js","../node_modules/core-js/modules/_add-to-unscopables.js","../node_modules/lodash/isObject.js","../node_modules/reactstrap/es/DropdownContext.js","../node_modules/graphql/utilities/TypeInfo.mjs","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/react-select/dist/Select-5d18b8d9.browser.esm.js","../node_modules/react-select/dist/stateManager-2f2b6f5b.browser.esm.js","../node_modules/react-select/dist/react-select.browser.esm.js","../node_modules/ramda/es/internal/_xwrap.js","../node_modules/ramda/es/bind.js","../node_modules/ramda/es/internal/_reduce.js","../node_modules/ramda/es/internal/_xfBase.js","../node_modules/@emotion/hash/dist/hash.browser.esm.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/@emotion/memoize/dist/memoize.browser.esm.js","../node_modules/@emotion/serialize/dist/serialize.browser.esm.js","../../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/invariant/browser.js","../node_modules/core-js/modules/_hide.js","../node_modules/core-js/modules/_object-keys.js","../node_modules/core-js/modules/_cof.js","../node_modules/core-js/modules/_to-integer.js","../node_modules/core-js/modules/_meta.js","../node_modules/webpack/buildin/harmony-module.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_baseGetTag.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/react-popper/lib/esm/Manager.js","../node_modules/@babel/runtime/helpers/inheritsLoose.js","../node_modules/date-fns/esm/startOfDay/index.js","../node_modules/lodash-es/isBuffer.js","../node_modules/graphql/utilities/astFromValue.mjs","../node_modules/ramda/es/internal/_isArguments.js","../node_modules/ramda/es/keys.js","../../src/string.ts","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/core-js/modules/_to-primitive.js","../node_modules/core-js/modules/_library.js","../node_modules/core-js/modules/_object-gopd.js","../node_modules/object-assign/index.js","../node_modules/lodash/keys.js","../node_modules/lodash/isArrayLike.js","../node_modules/inherits/inherits_browser.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/objectSpread2.js","../node_modules/ramda/es/internal/_isArray.js","../node_modules/ramda/es/internal/_curryN.js","../node_modules/ramda/es/internal/_isString.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/ramda/es/internal/_curry3.js","../node_modules/graphql/type/validate.mjs","../node_modules/graphql/validation/validate.mjs","../node_modules/broadcast-channel/dist/es/methods/native.js","../node_modules/broadcast-channel/dist/es/oblivious-set.js","../node_modules/broadcast-channel/dist/es/options.js","../node_modules/broadcast-channel/dist/es/methods/indexed-db.js","../node_modules/broadcast-channel/dist/es/methods/localstorage.js","../node_modules/broadcast-channel/dist/es/methods/simulate.js","../node_modules/broadcast-channel/dist/es/method-chooser.js","../node_modules/broadcast-channel/dist/es/index.js","../node_modules/@food/channel/dist/index.js","../node_modules/@food/sync/dist/index.js","../node_modules/ramda/es/internal/_isTransformer.js","../node_modules/ramda/es/internal/_dispatchable.js","../node_modules/graphql/language/source.mjs","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/core-js/modules/_property-desc.js","../node_modules/core-js/modules/_uid.js","../node_modules/core-js/modules/_iobject.js","../node_modules/core-js/modules/_defined.js","../node_modules/core-js/modules/_object-pie.js","../node_modules/core-js/modules/_iterators.js","../node_modules/core-js/modules/_set-to-string-tag.js","../node_modules/core-js/modules/es6.object.to-string.js","../node_modules/webpack/buildin/module.js","../node_modules/define-properties/index.js","../node_modules/function-bind/index.js","../node_modules/react-popper/lib/esm/index.js","../node_modules/buffer/index.js","../node_modules/lodash/_Symbol.js","../node_modules/core-util-is/lib/util.js","../node_modules/codemirror/addon/search/searchcursor.js","../node_modules/codemirror/addon/dialog/dialog.js","../node_modules/graphiql/dist/components/DocExplorer/TypeLink.js","../node_modules/querystring-es3/index.js","../node_modules/date-fns/esm/addDays/index.js","../node_modules/date-fns/esm/addMonths/index.js","../node_modules/@emotion/stylis/dist/stylis.browser.esm.js","../node_modules/@emotion/cache/dist/cache.browser.esm.js","../../src/node.ts","../node_modules/graphql/jsutils/nodejsCustomInspectSymbol.mjs","../node_modules/graphql/language/lexer.mjs","../node_modules/graphql/language/location.mjs","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/graphql/validation/ValidationContext.mjs","../node_modules/tinycolor2/tinycolor.js","../node_modules/@babel/runtime/helpers/esm/objectSpread.js","../node_modules/react-sortable-hoc/dist/react-sortable-hoc.esm.js","../node_modules/core-js/modules/_shared.js","../node_modules/core-js/modules/_object-create.js","../node_modules/core-js/modules/_to-absolute-index.js","../node_modules/core-js/modules/_object-gpo.js","../node_modules/core-js/modules/_is-array.js","../node_modules/core-js/modules/_object-gops.js","../node_modules/core-js/modules/_object-forced-pam.js","../node_modules/core-js/modules/_redefine-all.js","../node_modules/core-js/modules/_an-instance.js","../node_modules/core-js/modules/_for-of.js","../node_modules/core-js/modules/_validate-collection.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/eq.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_copyObject.js","../node_modules/process-nextick-args/index.js","../node_modules/react-popper/lib/esm/Popper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/ramda/es/internal/_isArrayLike.js","../../src/stacktrace.ts","../node_modules/react-datepicker/dist/react-datepicker.min.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/startOfQuarter/index.js","../node_modules/@emotion/sheet/dist/sheet.browser.esm.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/ramda/es/reduce.js","../node_modules/reactstrap/es/TabContext.js","../node_modules/react-codemirror2/index.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/graphql/jsutils/isNullish.mjs","../node_modules/graphql/validation/rules/ExecutableDefinitions.mjs","../node_modules/graphql/validation/rules/ValuesOfCorrectType.mjs","../node_modules/react-color/es/helpers/alpha.js","../node_modules/react-color/es/helpers/checkboard.js","../node_modules/react-color/es/components/common/Checkboard.js","../node_modules/react-color/es/components/common/Alpha.js","../node_modules/react-color/es/components/common/EditableInput.js","../node_modules/react-color/es/helpers/hue.js","../node_modules/react-color/es/components/common/Hue.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_assignMergeValue.js","../node_modules/lodash-es/_createBaseFor.js","../node_modules/lodash-es/_baseFor.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/isArrayLikeObject.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_safeGet.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_copyObject.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/toPlainObject.js","../node_modules/lodash-es/_baseMergeDeep.js","../node_modules/lodash-es/_baseMerge.js","../node_modules/lodash-es/identity.js","../node_modules/lodash-es/_apply.js","../node_modules/lodash-es/_overRest.js","../node_modules/lodash-es/constant.js","../node_modules/lodash-es/_baseSetToString.js","../node_modules/lodash-es/_shortOut.js","../node_modules/lodash-es/_setToString.js","../node_modules/lodash-es/_baseRest.js","../node_modules/lodash-es/_isIterateeCall.js","../node_modules/lodash-es/_createAssigner.js","../node_modules/lodash-es/merge.js","../node_modules/react-color/es/components/common/Raised.js","../node_modules/lodash-es/now.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/toNumber.js","../node_modules/lodash-es/debounce.js","../node_modules/lodash-es/throttle.js","../node_modules/react-color/es/components/common/Saturation.js","../node_modules/react-color/es/helpers/saturation.js","../node_modules/lodash-es/_arrayEach.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_createBaseEach.js","../node_modules/lodash-es/_baseEach.js","../node_modules/lodash-es/_baseForOwn.js","../node_modules/lodash-es/_castFunction.js","../node_modules/lodash-es/forEach.js","../node_modules/react-color/es/helpers/color.js","../node_modules/react-color/es/components/common/ColorWrap.js","../node_modules/react-color/es/helpers/interaction.js","../node_modules/react-color/es/components/common/Swatch.js","../node_modules/react-color/es/components/alpha/AlphaPointer.js","../node_modules/react-color/es/components/alpha/Alpha.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/_setCacheAdd.js","../node_modules/lodash-es/_setCacheHas.js","../node_modules/lodash-es/_SetCache.js","../node_modules/lodash-es/_arraySome.js","../node_modules/lodash-es/_cacheHas.js","../node_modules/lodash-es/_equalArrays.js","../node_modules/lodash-es/_mapToArray.js","../node_modules/lodash-es/_setToArray.js","../node_modules/lodash-es/_equalByTag.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_equalObjects.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/lodash-es/_baseIsEqualDeep.js","../node_modules/lodash-es/_baseIsEqual.js","../node_modules/lodash-es/_baseIsMatch.js","../node_modules/lodash-es/_isStrictComparable.js","../node_modules/lodash-es/_getMatchData.js","../node_modules/lodash-es/_matchesStrictComparable.js","../node_modules/lodash-es/_baseMatches.js","../node_modules/lodash-es/_isKey.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/_castPath.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/_baseGet.js","../node_modules/lodash-es/get.js","../node_modules/lodash-es/_baseHasIn.js","../node_modules/lodash-es/_hasPath.js","../node_modules/lodash-es/hasIn.js","../node_modules/lodash-es/_baseMatchesProperty.js","../node_modules/lodash-es/_baseProperty.js","../node_modules/lodash-es/_basePropertyDeep.js","../node_modules/lodash-es/property.js","../node_modules/lodash-es/_baseIteratee.js","../node_modules/lodash-es/_baseMap.js","../node_modules/lodash-es/map.js","../node_modules/react-color/es/components/block/BlockSwatches.js","../node_modules/react-color/es/components/block/Block.js","../node_modules/material-colors/dist/colors.es2015.js","../node_modules/react-color/es/components/circle/CircleSwatch.js","../node_modules/react-color/es/components/circle/Circle.js","../node_modules/lodash-es/isUndefined.js","../node_modules/react-color/es/components/chrome/ChromeFields.js","../node_modules/react-color/es/components/chrome/ChromePointer.js","../node_modules/react-color/es/components/chrome/ChromePointerCircle.js","../node_modules/react-color/es/components/chrome/Chrome.js","../node_modules/react-color/es/components/compact/CompactColor.js","../node_modules/react-color/es/components/compact/CompactFields.js","../node_modules/react-color/es/components/compact/Compact.js","../node_modules/react-color/es/components/github/GithubSwatch.js","../node_modules/react-color/es/components/github/Github.js","../node_modules/react-color/es/components/hue/HuePointer.js","../node_modules/react-color/es/components/hue/Hue.js","../node_modules/react-color/es/components/material/Material.js","../node_modules/react-color/es/components/photoshop/PhotoshopFields.js","../node_modules/react-color/es/components/photoshop/PhotoshopPointerCircle.js","../node_modules/react-color/es/components/photoshop/PhotoshopPointer.js","../node_modules/react-color/es/components/photoshop/PhotoshopButton.js","../node_modules/react-color/es/components/photoshop/PhotoshopPreviews.js","../node_modules/react-color/es/components/photoshop/Photoshop.js","../node_modules/react-color/es/components/sketch/SketchFields.js","../node_modules/react-color/es/components/sketch/SketchPresetColors.js","../node_modules/react-color/es/components/sketch/Sketch.js","../node_modules/react-color/es/components/slider/SliderSwatch.js","../node_modules/react-color/es/components/slider/SliderSwatches.js","../node_modules/react-color/es/components/slider/SliderPointer.js","../node_modules/react-color/es/components/slider/Slider.js","../node_modules/react-color/es/components/swatches/SwatchesColor.js","../node_modules/react-color/es/components/swatches/SwatchesGroup.js","../node_modules/react-color/es/components/swatches/Swatches.js","../node_modules/react-color/es/components/twitter/Twitter.js","../node_modules/react-color/es/components/google/GooglePointerCircle.js","../node_modules/react-color/es/components/google/GooglePointer.js","../node_modules/react-color/es/components/google/GoogleFields.js","../node_modules/react-color/es/components/google/Google.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../../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/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../../src/Query.tsx","../../src/Mutation.tsx","../../src/Subscription.tsx","../../src/data/OperationData.ts","../../src/data/QueryData.ts","../../src/utils/useBaseQuery.ts","../../src/utils/useDeepMemo.ts","../../src/useQuery.ts","../../src/data/MutationData.ts","../../src/useMutation.ts","../../src/data/SubscriptionData.ts","../../src/useSubscription.ts","../../src/ssr/RenderPromises.ts","../node_modules/react-transition-group/index.js","../node_modules/core-js/modules/_dom-create.js","../node_modules/core-js/modules/_array-includes.js","../node_modules/core-js/modules/_shared-key.js","../node_modules/core-js/modules/_enum-bug-keys.js","../node_modules/core-js/modules/_html.js","../node_modules/core-js/modules/_object-gopn.js","../node_modules/core-js/modules/_array-species-create.js","../node_modules/core-js/modules/_string-trim.js","../node_modules/core-js/modules/_string-ws.js","../node_modules/core-js/modules/es6.string.iterator.js","../node_modules/core-js/modules/_iter-define.js","../node_modules/core-js/modules/_create-property.js","../node_modules/core-js/modules/_classof.js","../node_modules/core-js/modules/_iter-detect.js","../node_modules/core-js/modules/_set-species.js","../node_modules/core-js/modules/web.dom.iterable.js","../node_modules/has-symbols/index.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/isLength.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/forOwn.js","../node_modules/lodash/_getPrototype.js","../node_modules/lodash/keysIn.js","../node_modules/lodash/_cloneArrayBuffer.js","../node_modules/string_decoder/lib/string_decoder.js","../node_modules/events/events.js","../node_modules/stream-browserify/node_modules/readable-stream/readable-browser.js","../node_modules/safe-buffer/index.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/markdown-it/index.js","../node_modules/uc.micro/categories/P/regex.js","../node_modules/markdown-it/lib/ruler.js","../node_modules/markdown-it/lib/token.js","../node_modules/graphiql/dist/utility/commonKeys.js","../node_modules/codemirror/addon/edit/matchbrackets.js","../node_modules/codemirror/addon/fold/foldgutter.js","../node_modules/codemirror/addon/fold/brace-fold.js","../node_modules/codemirror/addon/search/jump-to-line.js","../node_modules/codemirror/keymap/sublime.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/graphiql/dist/components/DocExplorer/Argument.js","../node_modules/graphiql/dist/components/DocExplorer/MarkdownContent.js","../node_modules/warning/warning.js","../node_modules/react-popper/lib/esm/Reference.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/date-fns/esm/isValid/index.js","../node_modules/date-fns/esm/addMinutes/index.js","../node_modules/date-fns/esm/addHours/index.js","../node_modules/date-fns/esm/addWeeks/index.js","../node_modules/date-fns/esm/addYears/index.js","../node_modules/react-input-autosize/lib/AutosizeInput.js","../node_modules/date-fns/esm/getDaysInMonth/index.js","../node_modules/date-fns/esm/setMonth/index.js","../../src/browser.ts","../node_modules/@food/auth/node_modules/@food/ui/build/dist/static/assets/icomoon/icomoon.eot","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/path-to-regexp/index.js","../node_modules/graphql/language/printLocation.mjs","../node_modules/url/url.js","../node_modules/@food/ui/build/dist/static/assets/icomoon/icomoon.eot","../node_modules/create-react-context/lib/index.js","../../utils/isBrowser.js","../../utils/debounce.js","../../utils/isFunction.js","../../utils/getStyleComputedProperty.js","../../utils/getParentNode.js","../../utils/getScrollParent.js","../../utils/getReferenceNode.js","../../utils/isIE.js","../../utils/getOffsetParent.js","../../utils/getRoot.js","../../utils/findCommonOffsetParent.js","../../utils/isOffsetContainer.js","../../utils/getScroll.js","../../utils/includeScroll.js","../../utils/getBordersSize.js","../../utils/getWindowSizes.js","../../utils/getClientRect.js","../../utils/getBoundingClientRect.js","../../utils/getOffsetRectRelativeToArbitraryNode.js","../../utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../../utils/isFixed.js","../../utils/getFixedPositionOffsetParent.js","../../utils/getBoundaries.js","../../utils/computeAutoPlacement.js","../../utils/getReferenceOffsets.js","../../utils/getOuterSizes.js","../../utils/getOppositePlacement.js","../../utils/getPopperOffsets.js","../../utils/find.js","../../utils/runModifiers.js","../../utils/findIndex.js","../../methods/update.js","../../utils/isModifierEnabled.js","../../utils/getSupportedPropertyName.js","../../methods/destroy.js","../../utils/getWindow.js","../../utils/setupEventListeners.js","../../methods/enableEventListeners.js","../../methods/disableEventListeners.js","../../utils/removeEventListeners.js","../../utils/isNumeric.js","../../utils/setStyles.js","../../modifiers/computeStyle.js","../../utils/isModifierRequired.js","../../methods/placements.js","../../utils/clockwise.js","../../modifiers/flip.js","../../modifiers/offset.js","../../modifiers/index.js","../../methods/defaults.js","../../modifiers/shift.js","../../modifiers/preventOverflow.js","../../modifiers/keepTogether.js","../../modifiers/arrow.js","../../utils/getOppositeVariation.js","../../modifiers/inner.js","../../modifiers/hide.js","../../utils/getRoundedOffsets.js","../../modifiers/applyStyle.js","../../utils/setAttributes.js","../../index.js","../node_modules/react-quill/lib/index.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/graphql/validation/specifiedRules.mjs","../node_modules/graphql/validation/rules/KnownTypeNames.mjs","../node_modules/graphql/validation/rules/KnownDirectives.mjs","../node_modules/graphql/validation/rules/UniqueDirectivesPerLocation.mjs","../node_modules/graphql/validation/rules/KnownArgumentNames.mjs","../node_modules/graphql/validation/rules/UniqueArgumentNames.mjs","../node_modules/graphql/validation/rules/ProvidedRequiredArguments.mjs","../node_modules/graphql/validation/rules/UniqueInputFieldNames.mjs","../node_modules/core-js/modules/es6.object.create.js","../node_modules/core-js/modules/_ie8-dom-define.js","../node_modules/core-js/modules/_object-dps.js","../node_modules/core-js/modules/_object-keys-internal.js","../node_modules/core-js/modules/es6.object.define-property.js","../node_modules/core-js/modules/es6.object.define-properties.js","../node_modules/core-js/modules/es6.object.get-own-property-descriptor.js","../node_modules/core-js/modules/es6.object.get-prototype-of.js","../node_modules/core-js/modules/es6.object.keys.js","../node_modules/core-js/modules/es6.object.get-own-property-names.js","../node_modules/core-js/modules/_object-gopn-ext.js","../node_modules/core-js/modules/es6.object.freeze.js","../node_modules/core-js/modules/es6.object.seal.js","../node_modules/core-js/modules/es6.object.prevent-extensions.js","../node_modules/core-js/modules/es6.object.is-frozen.js","../node_modules/core-js/modules/es6.object.is-sealed.js","../node_modules/core-js/modules/es6.object.is-extensible.js","../node_modules/core-js/modules/_invoke.js","../node_modules/core-js/modules/es6.array.is-array.js","../node_modules/core-js/modules/es6.array.join.js","../node_modules/core-js/modules/es6.array.slice.js","../node_modules/core-js/modules/es6.array.sort.js","../node_modules/core-js/modules/es6.array.for-each.js","../node_modules/core-js/modules/es6.array.map.js","../node_modules/core-js/modules/es6.array.filter.js","../node_modules/core-js/modules/es6.array.some.js","../node_modules/core-js/modules/es6.array.every.js","../node_modules/core-js/modules/es6.array.reduce.js","../node_modules/core-js/modules/_array-reduce.js","../node_modules/core-js/modules/es6.array.reduce-right.js","../node_modules/core-js/modules/es6.array.index-of.js","../node_modules/core-js/modules/es6.array.last-index-of.js","../node_modules/core-js/modules/_a-number-value.js","../node_modules/core-js/modules/_flags.js","../node_modules/core-js/modules/_iter-call.js","../node_modules/core-js/modules/_is-array-iter.js","../node_modules/core-js/modules/core.get-iterator-method.js","../node_modules/core-js/modules/es6.array.iterator.js","../node_modules/core-js/modules/_iter-step.js","../node_modules/core-js/modules/_flatten-into-array.js","../node_modules/core-js/modules/es6.symbol.js","../node_modules/core-js/modules/_wks-ext.js","../node_modules/core-js/modules/_set-proto.js","../node_modules/core-js/modules/_object-to-array.js","../node_modules/core-js/modules/_collection.js","../node_modules/core-js/modules/_task.js","../node_modules/core-js/modules/_new-promise-capability.js","../node_modules/react-is/index.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/node-libs-browser/node_modules/punycode/punycode.js","../node_modules/object-keys/index.js","../node_modules/object-keys/isArguments.js","../node_modules/object-is/implementation.js","../node_modules/object-is/polyfill.js","../node_modules/regexp.prototype.flags/implementation.js","../node_modules/regexp.prototype.flags/polyfill.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/react-transition-group/Transition.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-transition-group/utils/PropTypes.js","../node_modules/react-transition-group/TransitionGroup.js","../node_modules/quill/dist/quill.js","../node_modules/create-react-class/index.js","../node_modules/react-quill/lib/mixin.js","../node_modules/lodash/find.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/identity.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/isEqual.js","../node_modules/react-dom-factories/index.js","../node_modules/lodash/_assignValue.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_getSymbolsIn.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js","../node_modules/util/util.js","../node_modules/markdown-it/lib/common/entities.js","../node_modules/mdurl/index.js","../node_modules/uc.micro/properties/Any/regex.js","../node_modules/uc.micro/categories/Cc/regex.js","../node_modules/uc.micro/categories/Z/regex.js","../node_modules/markdown-it/lib/common/html_re.js","../node_modules/markdown-it/lib/rules_inline/strikethrough.js","../node_modules/markdown-it/lib/rules_inline/emphasis.js","../node_modules/graphiql/dist/utility/onHasCompletion.js","../node_modules/codemirror/addon/hint/show-hint.js","../node_modules/codemirror/addon/edit/closebrackets.js","../node_modules/codemirror/addon/search/search.js","../node_modules/codemirror/addon/lint/lint.js","../node_modules/codemirror-graphql/utils/getTypeInfo.js","../node_modules/codemirror-graphql/utils/forEachState.js","../node_modules/codemirror-graphql/utils/SchemaReference.js","../node_modules/codemirror-graphql/utils/info-addon.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/graphiql/dist/components/DocExplorer/DefaultValue.js","../node_modules/graphiql/dist/utility/debounce.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/toConsumableArray.js","../../src/autocompleteUtils.ts","../node_modules/vscode-languageserver-types/lib/esm/main.js","../../src/getAutocompleteSuggestions.ts","../../src/getASTNodeAtPosition.ts","../../src/Range.ts","../../src/validateWithCustomRules.ts","../../src/getDefinition.ts","../../src/getDiagnostics.ts","../../src/getOutline.ts","../../src/getHoverInformation.ts","../../src/GraphQLLanguageService.ts","../node_modules/bowser/es5.js","../../src/memo.ts","../node_modules/stylis/stylis.js","../node_modules/@food/auth/node_modules/@food/ui/build/dist/static/assets/icomoon/icomoon.ttf","../node_modules/@food/auth/node_modules/@food/ui/build/dist/static/assets/icomoon/icomoon.woff","../node_modules/@food/auth/node_modules/@food/ui/build/dist/static/assets/icomoon/icomoon.svg","../node_modules/@food/auth/node_modules/@food/ui/build/dist/static/assets/material_icons/MaterialIcons-Regular.woff2","../node_modules/@food/auth/node_modules/@food/ui/build/dist/static/assets/material_icons/MaterialIcons-Regular.woff","../node_modules/@food/auth/node_modules/@food/ui/build/dist/static/assets/material_icons/MaterialIcons-Regular.ttf","../node_modules/zen-observable/index.js","../node_modules/fast-json-stable-stringify/index.js","../node_modules/symbol-observable/es/index.js","../node_modules/symbol-observable/es/ponyfill.js","../node_modules/ramda/es/curryN.js","../node_modules/ramda/es/path.js","../node_modules/apollo-upload-client/lib/index.js","../node_modules/@food/ui/build/dist/static/assets/icomoon/icomoon.ttf","../node_modules/@food/ui/build/dist/static/assets/icomoon/icomoon.woff","../node_modules/@food/ui/build/dist/static/assets/icomoon/icomoon.svg","../node_modules/@food/ui/build/dist/static/assets/material_icons/MaterialIcons-Regular.woff2","../node_modules/@food/ui/build/dist/static/assets/material_icons/MaterialIcons-Regular.woff","../node_modules/@food/ui/build/dist/static/assets/material_icons/MaterialIcons-Regular.ttf","../node_modules/dot/doT.js","../node_modules/reactstrap/es/Button.js","../node_modules/deep-equal/index.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/@icons/material/UnfoldMoreHorizontalIcon.js","../node_modules/@icons/material/CheckIcon.js","../node_modules/react-checkbox-tree/lib/index.browser.js","../node_modules/reactstrap/es/InputGroupText.js","../node_modules/react-router-hash-link/lib/index.js","../node_modules/csv-stringify/lib/es5/sync.js","../node_modules/graphiql/dist/index.js","../node_modules/graphql/utilities/valueFromASTUntyped.mjs","../node_modules/graphql/utilities/assertValidName.mjs","../node_modules/graphql/validation/rules/UniqueOperationNames.mjs","../node_modules/graphql/validation/rules/LoneAnonymousOperation.mjs","../node_modules/graphql/validation/rules/SingleFieldSubscriptions.mjs","../node_modules/graphql/validation/rules/FragmentsOnCompositeTypes.mjs","../node_modules/graphql/validation/rules/VariablesAreInputTypes.mjs","../node_modules/graphql/validation/rules/ScalarLeafs.mjs","../node_modules/graphql/validation/rules/FieldsOnCorrectType.mjs","../node_modules/graphql/validation/rules/UniqueFragmentNames.mjs","../node_modules/graphql/validation/rules/KnownFragmentNames.mjs","../node_modules/graphql/validation/rules/NoUnusedFragments.mjs","../node_modules/graphql/validation/rules/PossibleFragmentSpreads.mjs","../node_modules/graphql/validation/rules/NoFragmentCycles.mjs","../node_modules/graphql/validation/rules/UniqueVariableNames.mjs","../node_modules/graphql/validation/rules/NoUndefinedVariables.mjs","../node_modules/graphql/validation/rules/NoUnusedVariables.mjs","../node_modules/graphql/validation/rules/VariablesInAllowedPosition.mjs","../node_modules/graphql/validation/rules/OverlappingFieldsCanBeMerged.mjs","../node_modules/graphql/validation/rules/LoneSchemaDefinition.mjs","../node_modules/graphql/validation/rules/UniqueOperationTypes.mjs","../node_modules/graphql/validation/rules/UniqueTypeNames.mjs","../node_modules/graphql/validation/rules/UniqueEnumValueNames.mjs","../node_modules/graphql/validation/rules/UniqueFieldDefinitionNames.mjs","../node_modules/graphql/validation/rules/UniqueDirectiveNames.mjs","../node_modules/graphql/validation/rules/PossibleTypeExtensions.mjs","../node_modules/isomorphic-fetch/fetch-npm-browserify.js","../node_modules/dotenv/lib/main.js","../node_modules/ramda/es/internal/_pipe.js","../node_modules/ramda/es/internal/_checkForMethod.js","../node_modules/ramda/es/slice.js","../node_modules/ramda/es/tail.js","../node_modules/ramda/es/pipe.js","../node_modules/ramda/es/internal/_xmap.js","../node_modules/ramda/es/map.js","../node_modules/ramda/es/internal/_map.js","../node_modules/ramda/es/internal/_identity.js","../node_modules/ramda/es/identity.js","../node_modules/core-js/es5/index.js","../node_modules/core-js/modules/_function-to-string.js","../node_modules/core-js/modules/es6.function.bind.js","../node_modules/core-js/modules/_bind.js","../node_modules/core-js/modules/_array-species-constructor.js","../node_modules/core-js/modules/es6.number.to-fixed.js","../node_modules/core-js/modules/_string-repeat.js","../node_modules/core-js/modules/es6.number.to-precision.js","../node_modules/core-js/modules/es6.date.now.js","../node_modules/core-js/modules/es6.date.to-iso-string.js","../node_modules/core-js/modules/_date-to-iso-string.js","../node_modules/core-js/modules/es6.date.to-json.js","../node_modules/core-js/modules/es6.parse-int.js","../node_modules/core-js/modules/_parse-int.js","../node_modules/core-js/modules/es6.parse-float.js","../node_modules/core-js/modules/_parse-float.js","../node_modules/core-js/modules/es6.string.trim.js","../node_modules/core-js/modules/es6.regexp.to-string.js","../node_modules/core-js/modules/es6.regexp.flags.js","../node_modules/core-js/es6/array.js","../node_modules/core-js/modules/_string-at.js","../node_modules/core-js/modules/_iter-create.js","../node_modules/core-js/modules/es6.array.from.js","../node_modules/core-js/modules/es6.array.of.js","../node_modules/core-js/modules/es6.array.copy-within.js","../node_modules/core-js/modules/_array-copy-within.js","../node_modules/core-js/modules/es6.array.fill.js","../node_modules/core-js/modules/_array-fill.js","../node_modules/core-js/modules/es6.array.find.js","../node_modules/core-js/modules/es6.array.find-index.js","../node_modules/core-js/modules/es6.array.species.js","../node_modules/core-js/es7/array.js","../node_modules/core-js/modules/es7.array.includes.js","../node_modules/core-js/modules/es7.array.flat-map.js","../node_modules/core-js/modules/es7.array.flatten.js","../node_modules/core-js/es6/object.js","../node_modules/core-js/modules/_wks-define.js","../node_modules/core-js/modules/_enum-keys.js","../node_modules/core-js/modules/es6.object.assign.js","../node_modules/core-js/modules/_object-assign.js","../node_modules/core-js/modules/es6.object.is.js","../node_modules/core-js/modules/_same-value.js","../node_modules/core-js/modules/es6.object.set-prototype-of.js","../node_modules/core-js/es7/object.js","../node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","../node_modules/core-js/modules/_own-keys.js","../node_modules/core-js/modules/es7.object.values.js","../node_modules/core-js/modules/es7.object.entries.js","../node_modules/core-js/modules/es7.object.define-getter.js","../node_modules/core-js/modules/es7.object.define-setter.js","../node_modules/core-js/modules/es7.object.lookup-getter.js","../node_modules/core-js/modules/es7.object.lookup-setter.js","../node_modules/core-js/es6/map.js","../node_modules/core-js/modules/es6.map.js","../node_modules/core-js/modules/_collection-strong.js","../node_modules/core-js/modules/_inherit-if-required.js","../node_modules/core-js/es6/weak-set.js","../node_modules/core-js/modules/es6.weak-set.js","../node_modules/core-js/modules/_collection-weak.js","../node_modules/core-js/es6/symbol.js","../node_modules/core-js/es6/promise.js","../node_modules/core-js/modules/es6.promise.js","../node_modules/core-js/modules/_species-constructor.js","../node_modules/core-js/modules/_microtask.js","../node_modules/core-js/modules/_perform.js","../node_modules/core-js/modules/_user-agent.js","../node_modules/core-js/modules/_promise-resolve.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/navigator.sendbeacon/dist/navigator.sendbeacon.es.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/isarray/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/strict-uri-encode/index.js","../node_modules/decode-uri-component/index.js","../node_modules/zen-observable/lib/Observable.js","../node_modules/url/util.js","../node_modules/querystring-es3/decode.js","../node_modules/querystring-es3/encode.js","../node_modules/create-react-context/lib/implementation.js","../node_modules/gud/index.js","../node_modules/object-keys/implementation.js","../node_modules/is-arguments/index.js","../node_modules/object-is/index.js","../node_modules/es-abstract/helpers/callBind.js","../node_modules/function-bind/implementation.js","../node_modules/es-abstract/GetIntrinsic.js","../node_modules/has-symbols/shams.js","../node_modules/has/src/index.js","../node_modules/object-is/shim.js","../node_modules/is-regex/index.js","../node_modules/regexp.prototype.flags/index.js","../node_modules/regexp.prototype.flags/node_modules/es-abstract/helpers/callBind.js","../node_modules/regexp.prototype.flags/node_modules/es-abstract/GetIntrinsic.js","../node_modules/regexp.prototype.flags/shim.js","../node_modules/is-date-object/index.js","../node_modules/date-fns/esm/isDate/index.js","../node_modules/date-fns/esm/subMinutes/index.js","../node_modules/date-fns/esm/subHours/index.js","../node_modules/date-fns/esm/subDays/index.js","../node_modules/date-fns/esm/subWeeks/index.js","../node_modules/date-fns/esm/subMonths/index.js","../node_modules/date-fns/esm/subYears/index.js","../node_modules/date-fns/esm/getSeconds/index.js","../node_modules/date-fns/esm/getMinutes/index.js","../node_modules/date-fns/esm/getHours/index.js","../node_modules/date-fns/esm/getDay/index.js","../node_modules/date-fns/esm/getDate/index.js","../node_modules/date-fns/esm/getMonth/index.js","../node_modules/date-fns/esm/getQuarter/index.js","../node_modules/date-fns/esm/getYear/index.js","../node_modules/date-fns/esm/getTime/index.js","../node_modules/date-fns/esm/setSeconds/index.js","../node_modules/date-fns/esm/setMinutes/index.js","../node_modules/date-fns/esm/setHours/index.js","../node_modules/date-fns/esm/setQuarter/index.js","../node_modules/date-fns/esm/setYear/index.js","../node_modules/date-fns/esm/min/index.js","../node_modules/date-fns/esm/max/index.js","../node_modules/date-fns/esm/differenceInCalendarDays/index.js","../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","../node_modules/date-fns/esm/differenceInCalendarWeeks/index.js","../node_modules/date-fns/esm/differenceInCalendarYears/index.js","../node_modules/date-fns/esm/startOfMonth/index.js","../node_modules/date-fns/esm/startOfYear/index.js","../node_modules/date-fns/esm/endOfDay/index.js","../node_modules/date-fns/esm/endOfWeek/index.js","../node_modules/date-fns/esm/endOfMonth/index.js","../node_modules/date-fns/esm/isEqual/index.js","../node_modules/date-fns/esm/isSameDay/index.js","../node_modules/date-fns/esm/isSameMonth/index.js","../node_modules/date-fns/esm/isSameYear/index.js","../node_modules/date-fns/esm/isSameQuarter/index.js","../node_modules/date-fns/esm/isAfter/index.js","../node_modules/date-fns/esm/isBefore/index.js","../node_modules/date-fns/esm/isWithinInterval/index.js","../node_modules/date-fns/esm/parseISO/index.js","../node_modules/react-onclickoutside/dist/react-onclickoutside.es.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js","../node_modules/react-transition-group/CSSTransition.js","../node_modules/dom-helpers/class/addClass.js","../node_modules/dom-helpers/class/hasClass.js","../node_modules/dom-helpers/class/removeClass.js","../node_modules/react-transition-group/ReplaceTransition.js","../node_modules/react-transition-group/utils/ChildMapping.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/buffer/node_modules/isarray/index.js","../node_modules/react-quill/lib/component.js","../node_modules/create-react-class/factory.js","../node_modules/lodash/_createFind.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/get.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/memoize.js","../node_modules/lodash/toString.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/property.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/findIndex.js","../node_modules/lodash/_baseFindIndex.js","../node_modules/lodash/toInteger.js","../node_modules/lodash/toFinite.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/some.js","../node_modules/lodash/_baseSome.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_createBaseEach.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/react-quill/lib/toolbar.js","../node_modules/react-dom/server.browser.js","../node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","../node_modules/codemirror/mode/htmlmixed/htmlmixed.js","../node_modules/codemirror/mode/xml/xml.js","../node_modules/codemirror/mode/javascript/javascript.js","../node_modules/codemirror/mode/css/css.js","../node_modules/reactcss/lib/flattenNames.js","../node_modules/lodash/isString.js","../node_modules/lodash/_castFunction.js","../node_modules/lodash/isPlainObject.js","../node_modules/lodash/map.js","../node_modules/lodash/_baseMap.js","../node_modules/reactcss/lib/mergeClasses.js","../node_modules/lodash/cloneDeep.js","../node_modules/lodash/_baseClone.js","../node_modules/lodash/_arrayEach.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_baseAssign.js","../node_modules/lodash/_baseAssignIn.js","../node_modules/lodash/_baseKeysIn.js","../node_modules/lodash/_nativeKeysIn.js","../node_modules/lodash/_cloneBuffer.js","../node_modules/lodash/_copyArray.js","../node_modules/lodash/_copySymbols.js","../node_modules/lodash/_copySymbolsIn.js","../node_modules/lodash/_getAllKeysIn.js","../node_modules/lodash/_initCloneArray.js","../node_modules/lodash/_initCloneByTag.js","../node_modules/lodash/_cloneDataView.js","../node_modules/lodash/_cloneRegExp.js","../node_modules/lodash/_cloneSymbol.js","../node_modules/lodash/_cloneTypedArray.js","../node_modules/lodash/_initCloneObject.js","../node_modules/lodash/_baseCreate.js","../node_modules/lodash/isMap.js","../node_modules/lodash/_baseIsMap.js","../node_modules/lodash/isSet.js","../node_modules/lodash/_baseIsSet.js","../node_modules/reactcss/lib/autoprefix.js","../node_modules/reactcss/lib/components/hover.js","../node_modules/reactcss/lib/components/active.js","../node_modules/reactcss/lib/loop.js","../node_modules/string_decoder/node_modules/safe-buffer/index.js","../node_modules/csv-stringify/lib/es5/index.js","../node_modules/stream-browserify/index.js","../node_modules/stream-browserify/node_modules/isarray/index.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/BufferList.js","../node_modules/timers-browserify/main.js","../node_modules/setimmediate/setImmediate.js","../node_modules/util-deprecate/browser.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/stream-browserify/node_modules/readable-stream/writable-browser.js","../node_modules/stream-browserify/node_modules/readable-stream/duplex-browser.js","../node_modules/stream-browserify/node_modules/readable-stream/transform.js","../node_modules/stream-browserify/node_modules/readable-stream/passthrough.js","../node_modules/util/support/isBufferBrowser.js","../node_modules/util/node_modules/inherits/inherits_browser.js","../node_modules/lodash.get/index.js","../node_modules/graphiql/dist/components/GraphiQL.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/typeof.js","../node_modules/copy-to-clipboard/index.js","../node_modules/toggle-selection/index.js","../node_modules/graphiql/dist/components/ExecuteButton.js","../node_modules/graphiql/dist/components/ImagePreview.js","../node_modules/graphiql/dist/components/ToolbarButton.js","../node_modules/graphiql/dist/components/ToolbarGroup.js","../node_modules/graphiql/dist/components/ToolbarMenu.js","../node_modules/graphiql/dist/components/ToolbarSelect.js","../node_modules/graphiql/dist/components/QueryEditor.js","../node_modules/markdown-it/lib/index.js","../node_modules/mdurl/encode.js","../node_modules/mdurl/decode.js","../node_modules/mdurl/format.js","../node_modules/mdurl/parse.js","../node_modules/uc.micro/index.js","../node_modules/uc.micro/categories/Cf/regex.js","../node_modules/markdown-it/lib/helpers/index.js","../node_modules/markdown-it/lib/helpers/parse_link_label.js","../node_modules/markdown-it/lib/helpers/parse_link_destination.js","../node_modules/markdown-it/lib/helpers/parse_link_title.js","../node_modules/markdown-it/lib/renderer.js","../node_modules/markdown-it/lib/parser_core.js","../node_modules/markdown-it/lib/rules_core/normalize.js","../node_modules/markdown-it/lib/rules_core/block.js","../node_modules/markdown-it/lib/rules_core/inline.js","../node_modules/markdown-it/lib/rules_core/linkify.js","../node_modules/markdown-it/lib/rules_core/replacements.js","../node_modules/markdown-it/lib/rules_core/smartquotes.js","../node_modules/markdown-it/lib/rules_core/state_core.js","../node_modules/markdown-it/lib/parser_block.js","../node_modules/markdown-it/lib/rules_block/table.js","../node_modules/markdown-it/lib/rules_block/code.js","../node_modules/markdown-it/lib/rules_block/fence.js","../node_modules/markdown-it/lib/rules_block/blockquote.js","../node_modules/markdown-it/lib/rules_block/hr.js","../node_modules/markdown-it/lib/rules_block/list.js","../node_modules/markdown-it/lib/rules_block/reference.js","../node_modules/markdown-it/lib/rules_block/heading.js","../node_modules/markdown-it/lib/rules_block/lheading.js","../node_modules/markdown-it/lib/rules_block/html_block.js","../node_modules/markdown-it/lib/common/html_blocks.js","../node_modules/markdown-it/lib/rules_block/paragraph.js","../node_modules/markdown-it/lib/rules_block/state_block.js","../node_modules/markdown-it/lib/parser_inline.js","../node_modules/markdown-it/lib/rules_inline/text.js","../node_modules/markdown-it/lib/rules_inline/newline.js","../node_modules/markdown-it/lib/rules_inline/escape.js","../node_modules/markdown-it/lib/rules_inline/backticks.js","../node_modules/markdown-it/lib/rules_inline/link.js","../node_modules/markdown-it/lib/rules_inline/image.js","../node_modules/markdown-it/lib/rules_inline/autolink.js","../node_modules/markdown-it/lib/rules_inline/html_inline.js","../node_modules/markdown-it/lib/rules_inline/entity.js","../node_modules/markdown-it/lib/rules_inline/balance_pairs.js","../node_modules/markdown-it/lib/rules_inline/text_collapse.js","../node_modules/markdown-it/lib/rules_inline/state_inline.js","../node_modules/linkify-it/index.js","../node_modules/linkify-it/lib/re.js","../node_modules/markdown-it/lib/presets/default.js","../node_modules/markdown-it/lib/presets/zero.js","../node_modules/markdown-it/lib/presets/commonmark.js","../node_modules/graphiql/dist/utility/normalizeWhitespace.js","../node_modules/codemirror/addon/comment/comment.js","../node_modules/codemirror/addon/fold/foldcode.js","../node_modules/codemirror-graphql/hint.js","../node_modules/codemirror-graphql/lint.js","../node_modules/codemirror-graphql/info.js","../node_modules/codemirror-graphql/jump.js","../node_modules/codemirror-graphql/utils/jump-addon.js","../node_modules/codemirror-graphql/mode.js","../node_modules/graphiql/dist/components/VariableEditor.js","../node_modules/codemirror-graphql/variables/hint.js","../node_modules/codemirror-graphql/utils/hintList.js","../node_modules/codemirror-graphql/variables/lint.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/codemirror-graphql/utils/jsonParse.js","../node_modules/codemirror-graphql/variables/mode.js","../node_modules/graphiql/dist/components/ResultViewer.js","../node_modules/codemirror-graphql/results/mode.js","../node_modules/graphiql/dist/components/DocExplorer.js","../node_modules/graphiql/dist/components/DocExplorer/FieldDoc.js","../node_modules/graphiql/dist/components/DocExplorer/SchemaDoc.js","../node_modules/graphiql/dist/components/DocExplorer/SearchBox.js","../node_modules/graphiql/dist/components/DocExplorer/SearchResults.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","../node_modules/graphiql/dist/components/DocExplorer/TypeDoc.js","../node_modules/graphiql/dist/components/QueryHistory.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/graphiql/dist/utility/QueryStore.js","../node_modules/graphiql/dist/components/HistoryQuery.js","../node_modules/graphiql/dist/utility/CodeMirrorSizer.js","../node_modules/graphiql/dist/utility/StorageAPI.js","../node_modules/graphiql/dist/utility/getQueryFacts.js","../node_modules/graphiql/dist/utility/getSelectedOperationName.js","../node_modules/graphiql/dist/utility/find.js","../node_modules/graphiql/dist/utility/fillLeafs.js","../node_modules/graphiql/dist/utility/elementPosition.js","../node_modules/graphiql/dist/utility/mergeAst.js","../node_modules/graphiql/dist/utility/introspectionQueries.js","../node_modules/isomorphic-fetch/node_modules/whatwg-fetch/fetch.js","../node_modules/path-browserify/index.js","../node_modules/os-browserify/browser.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/_lib/setUTCDay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/index.js","../node_modules/date-fns/esm/_lib/setUTCWeek/index.js","../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/setUTCISODay/index.js","../node_modules/date-fns/esm/parse/index.js","../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../node_modules/date-fns/esm/_lib/format/formatters/index.js","../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../node_modules/date-fns/esm/format/index.js","../node_modules/extract-files/lib/ReactNativeFile.mjs","../node_modules/extract-files/lib/extractFiles.mjs","../node_modules/date-fns/esm/getWeekYear/index.js","../node_modules/date-fns/esm/startOfWeekYear/index.js","../node_modules/date-fns/esm/getWeek/index.js","../../src/time.ts","../node_modules/ramda/es/prop.js","../node_modules/reactstrap/es/Badge.js","../node_modules/ramda/es/memoizeWith.js","../node_modules/ramda/es/nth.js","../node_modules/ramda/es/hasPath.js","../node_modules/reactstrap/es/Card.js","../node_modules/reactstrap/es/CardBody.js","../node_modules/reactstrap/es/Dropdown.js","../node_modules/reactstrap/es/DropdownToggle.js","../node_modules/reactstrap/es/DropdownMenu.js","../node_modules/reactstrap/es/DropdownItem.js","../node_modules/reactstrap/es/Row.js","../node_modules/reactstrap/es/Col.js","../node_modules/reactstrap/es/Input.js","../node_modules/reactstrap/es/FormGroup.js","../node_modules/reactstrap/es/Label.js","../node_modules/ramda/es/always.js","../node_modules/reactstrap/es/FormFeedback.js","../node_modules/reactstrap/es/FormText.js","../node_modules/ramda/es/fromPairs.js","../node_modules/reactstrap/es/Form.js","../node_modules/ramda/es/assoc.js","../node_modules/ramda/es/T.js","../node_modules/reactstrap/es/ModalBody.js","../node_modules/reactstrap/es/ModalFooter.js","../node_modules/reactstrap/es/Table.js","../node_modules/reactstrap/es/Nav.js","../node_modules/reactstrap/es/NavItem.js","../node_modules/reactstrap/es/NavLink.js","../node_modules/reactstrap/es/TabContent.js","../node_modules/reactstrap/es/TabPane.js","../node_modules/reactstrap/es/CardText.js","../node_modules/reactstrap/es/CardFooter.js","../node_modules/reactstrap/es/ModalHeader.js","../node_modules/reactstrap/es/Alert.js","../node_modules/reactstrap/es/CardTitle.js","../node_modules/ramda/es/isNil.js","../node_modules/reactstrap/es/InputGroup.js","../node_modules/reactstrap/es/InputGroupAddon.js","../node_modules/ramda/es/omit.js","../../src/hoc-utils.tsx","../../src/graphql.tsx","../../src/mutation-hoc.tsx","../../src/subscription-hoc.tsx","../../src/query-hoc.tsx","../node_modules/graphql/utilities/findDeprecatedUsages.mjs","../../integrations/functiontostring.ts","../../integrations/inboundfilters.ts","../../src/supports.ts","../../src/instrument.ts","../../src/polyfill.ts","../../src/error.ts","../../src/dsn.ts","../../src/integration.ts","../../src/baseclient.ts","../../src/status.ts","../../transports/noop.ts","../../src/severity.ts","../../src/basebackend.ts","../../src/tracekit.ts","../../src/parsers.ts","../../src/eventbuilder.ts","../../src/request.ts","../../src/api.ts","../../src/promisebuffer.ts","../../transports/base.ts","../../transports/fetch.ts","../../transports/xhr.ts","../../src/backend.ts","../../src/helpers.ts","../../integrations/breadcrumbs.ts","../../src/client.ts","../../integrations/trycatch.ts","../../integrations/globalhandlers.ts","../../integrations/linkederrors.ts","../../integrations/useragent.ts","../../src/sdk.ts","../node_modules/ramda/es/internal/_concat.js","../node_modules/ramda/es/reverse.js","../node_modules/ramda/es/compose.js","../node_modules/ramda/es/internal/_arrayFromIterator.js","../node_modules/ramda/es/internal/_includesWith.js","../node_modules/ramda/es/internal/_objectIs.js","../node_modules/ramda/es/type.js","../node_modules/ramda/es/internal/_equals.js","../node_modules/ramda/es/internal/_functionName.js","../node_modules/ramda/es/equals.js","../node_modules/ramda/es/internal/_includes.js","../node_modules/ramda/es/internal/_indexOf.js","../node_modules/ramda/es/internal/_Set.js","../node_modules/ramda/es/uniq.js","../node_modules/ramda/es/uniqBy.js","../node_modules/ramda/es/union.js","../node_modules/react-portal/es/utils.js","../node_modules/react-portal/es/Portal.js","../node_modules/react-portal/es/LegacyPortal.js","../node_modules/react-portal/es/PortalCompat.js","../node_modules/ramda/es/internal/_xfilter.js","../node_modules/ramda/es/filter.js","../node_modules/ramda/es/internal/_isObject.js","../node_modules/ramda/es/internal/_filter.js","../node_modules/reactstrap/es/PopperContent.js","../node_modules/reactstrap/es/TooltipPopoverWrapper.js","../node_modules/reactstrap/es/Tooltip.js","../node_modules/ramda/es/internal/_xreduceBy.js","../node_modules/ramda/es/countBy.js","../node_modules/ramda/es/reduceBy.js","../node_modules/reactstrap/es/Portal.js","../node_modules/reactstrap/es/Modal.js","../node_modules/ramda/es/internal/_isNumber.js","../node_modules/ramda/es/range.js","../node_modules/ramda/es/internal/_makeFlat.js","../node_modules/ramda/es/flatten.js","../node_modules/ramda/es/max.js","../node_modules/ramda/es/cond.js"],"names":["module","exports","require","_taggedTemplateLiteral","strings","raw","slice","Object","freeze","defineProperties","value","parse","normalize","string","replace","trim","docCache","fragmentSourceMap","printFragmentWarnings","experimentalFragmentVariables","parseDocument","doc","cacheKey","parsed","kind","Error","stripLoc","removeLocAtThisLevel","docType","prototype","toString","call","map","d","loc","startToken","endToken","key","valueType","keys","hasOwnProperty","ast","astFragmentMap","definitions","i","length","fragmentDefinition","fragmentName","name","sourceKey","source","body","substring","start","end","console","warn","push","processFragments","gql","args","Array","arguments","literals","result","default","resetCaches","disableFragmentWarnings","enableExperimentalFragmentVariables","disableExperimentalFragmentVariables","extendStatics","b","setPrototypeOf","__proto__","p","__extends","__","this","constructor","create","__assign","assign","t","s","n","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","done","adopt","then","__generator","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","TypeError","pop","__values","o","m","__read","r","ar","error","__spread","concat","__spreadArrays","il","k","a","j","jl","identityFunc","x","ownKeys","object","enumerableOnly","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","target","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperty","obj","configurable","writable","isType","type","isScalarType","isObjectType","isInterfaceType","isUnionType","isEnumType","isInputObjectType","isListType","isNonNullType","assertType","inspect","instanceOf","GraphQLScalarType","assertScalarType","GraphQLObjectType","assertObjectType","GraphQLInterfaceType","assertInterfaceType","GraphQLUnionType","assertUnionType","GraphQLEnumType","assertEnumType","GraphQLInputObjectType","assertInputObjectType","GraphQLList","assertListType","GraphQLNonNull","assertNonNullType","isInputType","isWrappingType","ofType","assertInputType","isOutputType","assertOutputType","isLeafType","assertLeafType","isCompositeType","assertCompositeType","isAbstractType","assertAbstractType","assertNullableType","assertWrappingType","isNullableType","getNullableType","isNamedType","assertNamedType","getNamedType","unwrappedType","resolveThunk","thunk","undefineIfEmpty","arr","undefined","String","defineToStringTag","defineToJSON","config","parseValue","description","serialize","parseLiteral","node","valueFromASTUntyped","extensions","toObjMap","astNode","extensionASTNodes","devAssert","_proto","toConfig","isTypeOf","_fields","defineFieldMap","bind","_interfaces","defineInterfaces","_proto2","getFields","getInterfaces","interfaces","fields","fieldsToFieldsConfig","isArray","fieldMap","isPlainObj","mapValue","fieldConfig","fieldName","argsConfig","objectEntries","_ref","argName","arg","defaultValue","subscribe","isDeprecated","Boolean","deprecationReason","isObjectLike","field","argsToArgsConfig","keyValMap","isRequiredArgument","resolveType","_proto3","_types","defineTypes","_proto4","getTypes","types","typeName","valueMap","_values","values","_ref2","valueName","_valueLookup","Map","enumValue","_nameLookup","keyMap","_proto5","getValues","getValue","get","valueNode","_variables","Kind","ENUM","defineInputFieldMap","_proto6","isRequiredInputField","NAME","DOCUMENT","OPERATION_DEFINITION","VARIABLE_DEFINITION","SELECTION_SET","FIELD","ARGUMENT","FRAGMENT_SPREAD","INLINE_FRAGMENT","FRAGMENT_DEFINITION","VARIABLE","INT","FLOAT","STRING","BOOLEAN","NULL","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","_objectSpread2","globalCssModule","setScrollbarWidth","padding","document","style","paddingRight","getOriginalBodyPadding","window","getComputedStyle","parseInt","getPropertyValue","conditionallyUpdateScrollbar","scrollbarWidth","scrollDiv","createElement","position","top","width","height","overflow","appendChild","offsetWidth","clientWidth","removeChild","getScrollbarWidth","fixedContent","querySelectorAll","bodyPadding","innerWidth","mapToCssModules","className","cssModule","split","c","join","omit","omitKeys","pick","pickKeys","warned","warnOnce","message","Element","DOMElement","props","propName","componentName","targetPropType","PropTypes","oneOfType","func","shape","current","any","tagPropType","$$typeof","symbol","render","arrayOf","TransitionTimeouts","Fade","Collapse","Modal","Carousel","TransitionPropTypeKeys","keyCodes","esc","space","enter","tab","up","down","home","PopperPlacements","canUseDOM","getTag","isObject","findDOMElements","isReactRefObj","tag","isFunction","selection","isArrayOrNodeList","els","getTarget","allElements","focusableElements","PREFIX","_enabled","disable","enable","log","__SENTRY__","States","logger","executor","_state","PENDING","_handlers","_resolve","_setResult","RESOLVED","_reject","reason","REJECTED","state","is","_value","_executeHandlers","_attachHandler","handler","cachedHandlers","onfulfilled","onrejected","SyncPromise","all","collection","counter","resolvedCollection","item","index","catch","val","finally","onfinally","isRejected","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_user","_tags","_extra","_contexts","clone","scope","newScope","Scope","_level","_span","_session","_transactionName","_fingerprint","addScopeListener","callback","addEventProcessor","setUser","user","update","_notifyScopeListeners","getUser","setTags","tags","setTag","setExtras","extras","setExtra","extra","setFingerprint","fingerprint","setLevel","level","setTransactionName","setTransaction","setContext","context","setSpan","span","getSpan","getTransaction","transaction","spanRecorder","spans","setSession","session","getSession","captureContext","updatedScope","contexts","clear","addBreadcrumb","breadcrumb","maxBreadcrumbs","mergedBreadcrumb","timestamp","clearBreadcrumbs","applyToEvent","event","hint","trace","getTraceContext","transactionName","_applyFingerprint","breadcrumbs","_notifyEventProcessors","getGlobalEventProcessors","processors","processor","final","global","globalEventProcessors","client","l","_typeof","formatValue","seenValues","JSON","stringify","previouslySeenValues","customInspectFn","nodejsCustomInspectSymbol","getCustomFn","customValue","array","len","Math","min","remaining","items","formatArray","getObjectTag","formatObject","formatObjectValue","requiredArgs","required","_extends","GraphQLError","nodes","positions","path","originalError","_nodes","_source","_locations","_positions","reduce","list","pos","getLocation","_extensions","originalExtensions","locations","stack","captureStackTrace","printError","output","_i2","_error$nodes2","printLocation","_i4","_error$locations2","location","printSourceLocation","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","toDate","argument","argStr","Date","getTime","NaN","ReactCSS","loop","handleActive","handleHover","hover","_flattenNames2","_interopRequireDefault","_mergeClasses2","_autoprefix2","_hover3","_active2","_loop3","__esModule","classes","_len","activations","_key","activeNames","merged","_assertThisInitialized","self","ReferenceError","valueToObjectRepresentation","argObj","variables","isIntValue","isFloatValue","Number","isBooleanValue","isStringValue","isObjectValue","isVariable","variableValue","isListValue","listValue","nestedArgArrayObj","isEnumValue","isNullValue","storeKeyNameFromField","directivesObj","directives","directive","getStoreKeyName","KNOWN_DIRECTIVES","filterKeys","sort","completeFieldName","stringifiedArgs","argumentsObjectFromField","resultKeyNameFromField","alias","isField","isInlineFragment","isIdValue","idObject","generated","toIdValue","idConfig","id","typename","isJsonValue","jsonObject","getDirectiveInfoFromField","shouldInclude","isInclusionDirective","directiveArguments","ifArgument","ifValue","every","evaledValue","hasDirectives","names","Directive","getDirectiveNames","some","hasClientExports","getFragmentQueryDocument","actualFragmentName","fragments","definition","operation","selectionSet","selections","sources","checkDocument","operations","getOperationDefinition","getOperationName","getFragmentDefinitions","getQueryDefinition","queryDef","getMainDefinition","queryDoc","createFragmentMap","symTable","fragment","getDefaultValues","variableDefinitions","defaultValues","variable","defaultValueObj","filterInPlace","test","elem","TYPENAME_FIELD","nullIfDocIsEmpty","isEmpty","fragmentDef","getFragmentDefinition","getDirectiveMatcher","dir","removeDirectivesFromDocument","variablesInUse","variablesToRemove","fragmentSpreadsInUse","fragmentSpreadsToRemove","modifiedDoc","Variable","parent","Field","remove","getAllFragmentSpreadsFromSelectionSet","allFragments","frag","FragmentSpread","argMatcher","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","seen","has","set","child","getPrototypeOf","isEnv","env","process","isProduction","isTest","tryFunctionOrLogError","graphQLResultHasError","errors","maybeDeepFreeze","deepFreeze","getOwnPropertyNames","prop","isFrozen","mergeDeep","mergeDeepArray","count","pastCopies","shallowCopyForMerge","mergeHelper","isExtensible","sourceValue","targetValue","hasOwn","classNames","argType","inner","toInteger","dirtyNumber","number","isNaN","ceil","floor","_slicedToArray","_arr","_n","_d","_e","_s","_i","err","unsupportedIterableToArray","_objectWithoutPropertiesLoose","excluded","sourceKeys","genericMessage","framesToPop","InvariantError","invariant","condition","wrapConsoleMethod","method","processStub","Function","atLeastWeTried","BrowserRouter","history","createHistory","children","React","Component","HashRouter","resolveToLocation","to","currentLocation","normalizeToLocation","createLocation","forwardRefShim","C","forwardRef","LinkAnchor","innerRef","navigate","onClick","rest","ex","isModifiedEvent","forwardedRef","Link","component","RouterContext","href","NavLink","ariaCurrent","activeClassName","activeStyle","classNameProp","exact","isActiveProp","isActive","locationProp","sensitive","strict","styleProp","toLocation","escapedPath","match","matchPath","classnames","joinClassnames","getRegisteredStyles","registered","registeredStyles","rawClassName","insertStyles","cache","serialized","isStringTag","styles","inserted","insert","sheet","EmotionCacheContext","createContext","HTMLElement","createCache","ThemeContext","CacheProvider","Provider","withEmotionCache","ref","Consumer","typePropName","createEmotionProps","newProps","theme","cssProp","css","serializeStyles","Emotion","jsx","argsLength","createElementArgArray","keyframes","insertable","anim","cls","toAdd","merge","ClassNames","content","cx","_len2","_key2","ele","asyncGeneratorStep","gen","_next","_throw","info","_asyncToGenerator","fn","DirectiveLocation","QUERY","MUTATION","SUBSCRIPTION","SCHEMA","SCALAR","ARGUMENT_DEFINITION","INTERFACE","UNION","ENUM_VALUE","INPUT_OBJECT","INPUT_FIELD_DEFINITION","core","hide","redefine","ctx","$export","own","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_PROTO","IS_BIND","B","S","expProto","U","W","R","__Schema","__Type","schema","objectValues","getTypeMap","queryType","getQueryType","mutationType","getMutationType","subscriptionType","getSubscriptionType","__Directive","getDirectives","GraphQLString","__DirectiveLocation","__InputValue","__TypeKind","TypeKind","NON_NULL","__Field","includeDeprecated","GraphQLBoolean","possibleTypes","getPossibleTypes","enumValues","__EnumValue","_ref3","inputFields","inputVal","valueAST","astFromValue","print","SchemaMetaFieldDef","_ref4","TypeMetaFieldDef","_ref5","_ref6","getType","TypeNameMetaFieldDef","_ref7","parentType","introspectionTypes","isIntrospectionType","_ref8","historyContext","createNamedContext","Router","computeRootMatch","url","params","isExact","pathname","componentDidMount","_pendingLocation","componentWillUnmount","unlisten","staticContext","HistoryContext","MemoryRouter","Lifecycle","onMount","componentDidUpdate","onUpdate","prevProps","onUnmount","Prompt","when","cacheCount","generatePath","pathToRegexp","compilePath","pretty","Redirect","computedMatch","prevLocation","locationsAreEqual","options","matched","pathCache","regexp","memo","Route","addLeadingSlash","stripBasename","basename","base","createURL","createPath","staticHandler","methodName","noop","StaticRouter","handlePush","handleReplace","handleListen","handleBlock","navigateTo","addBasename","createHref","action","go","goBack","goForward","listen","block","Switch","element","withRouter","displayName","wrappedComponentRef","remainingProps","hoistStatics","useContext","useHistory","useLocation","useParams","useRouteMatch","_toConsumableArray","arrayLikeToArray","iter","from","_curry2","f2","_isPlaceholder","_curry1","_b","_a","_inheritsLoose","subClass","superClass","applyPrefixToName","prefix","cleanValue","isDocumentElement","el","documentElement","getScrollTop","pageYOffset","scrollTop","scrollTo","easeOutCubic","animatedScrollTo","duration","change","increment","currentTime","animateScroll","requestAnimationFrame","scrollIntoView","menuEl","focusedEl","menuRect","getBoundingClientRect","focusedRect","overScroll","offsetHeight","bottom","offsetTop","clientHeight","scrollHeight","max","isTouchCapable","createEvent","isMobileDevice","userAgent","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","getMenuPlacement","maxHeight","minHeight","placement","shouldScroll","isFixedPosition","spacing","scrollParent","excludeStaticParent","overflowRx","docEl","parentElement","overflowY","overflowX","getScrollParent","defaultState","offsetParent","_menuEl$getBoundingCl","menuBottom","menuHeight","menuTop","containerTop","viewHeight","innerHeight","marginBottom","marginTop","viewSpaceAbove","viewSpaceBelow","scrollSpaceAbove","scrollSpaceBelow","scrollDown","scrollUp","_constrainedHeight","spaceAbove","controlHeight","_constrainedHeight2","coercePlacement","menuCSS","_ref2$theme","borderRadius","colors","alignToControl","neutral0","menuGutter","PortalPlacementContext","getPortalPlacement","MenuPlacer","_Component","_inherits","_super","_this","_classCallCheck","maxMenuHeight","getPlacement","_this$props","minMenuHeight","menuPlacement","menuPosition","menuShouldScrollIntoView","setState","getUpdatedProps","_createClass","placerProps","contextType","menuListCSS","baseUnit","paddingBottom","paddingTop","WebkitOverflowScrolling","noticeCSS","_ref5$theme","color","neutral40","textAlign","noOptionsMessageCSS","loadingMessageCSS","NoOptionsMessage","getStyles","innerProps","defaultProps","LoadingMessage","menuPortalCSS","rect","offset","left","zIndex","MenuPortal","_Component2","_super2","_this2","_this$props2","appendTo","controlElement","isFixed","right","getBoundingClientObj","scrollDistance","menuWrapper","createPortal","keyList","hasProp","exportedEqual","equal","arrA","arrB","dateA","dateB","regexpA","RegExp","regexpB","containerCSS","isDisabled","direction","isRtl","pointerEvents","valueContainerCSS","alignItems","display","flex","flexWrap","indicatorsContainerCSS","alignSelf","flexShrink","_templateObject","data","Svg","size","_objectWithoutProperties","viewBox","focusable","CrossIcon","DownChevron","baseCSS","isFocused","_ref3$theme","neutral60","neutral20","transition","neutral80","dropdownIndicatorCSS","clearIndicatorCSS","indicatorSeparatorCSS","_ref4$theme","backgroundColor","neutral10","loadingDotAnimations","loadingIndicatorCSS","fontSize","lineHeight","marginRight","verticalAlign","LoadingDot","delay","_css","animation","marginLeft","LoadingIndicator","indicator","_ref$theme","neutral5","borderColor","primary","borderStyle","borderWidth","boxShadow","cursor","justifyContent","outline","neutral30","ownKeys$1","_objectSpread$1","groupCSS","groupHeadingCSS","fontWeight","paddingLeft","textTransform","ownKeys$2","_objectSpread$2","inputCSS","margin","visibility","inputStyle","isHidden","background","border","opacity","ownKeys$3","_objectSpread$3","multiValueCSS","minWidth","multiValueLabelCSS","cropWithEllipsis","textOverflow","whiteSpace","multiValueRemoveCSS","dangerLight","danger","MultiValueGeneric","MultiValueContainer","MultiValueLabel","MultiValue","components","removeProps","selectProps","Container","Label","Remove","emotionCx","optionCSS","isSelected","primary25","userSelect","WebkitTapHighlightColor","primary50","placeholderCSS","neutral50","transform","css$1","maxWidth","ownKeys$4","_objectSpread$4","ClearIndicator","Control","menuIsOpen","control","DropdownIndicator","Group","Heading","headingProps","group","GroupHeading","cleanProps","IndicatorsContainer","indicators","IndicatorSeparator","Input","AutosizeInput","input","inputRef","disabled","Menu","menu","MenuList","isMulti","MultiValueRemove","Option","option","Placeholder","placeholder","SelectContainer","SingleValue","ValueContainer","hasValue","defaultComponents","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","define","isFinitePolyfill","isFinite","isInteger","GraphQLInt","num","GraphQLFloat","parseFloat","serializeObject","valueOf","valueOfResult","toJSON","rawValue","GraphQLID","specifiedScalarTypes","isSpecifiedScalarType","platform","gecko","ie_upto10","ie_11up","exec","edge","ie","ie_version","documentMode","webkit","qtwebkit","chrome","presto","safari","vendor","mac_geMountainLion","phantom","ios","android","mobile","mac","chromeOS","windows","presto_version","flipCtrlCmd","captureRightClick","classTest","range","rmClass","after","removeChildren","childNodes","firstChild","removeChildrenAndAdd","elt","cssText","createTextNode","eltP","setAttribute","contains","nodeType","parentNode","host","activeElt","activeElement","shadowRoot","addClass","joinClasses","as","createRange","endNode","setEnd","setStart","createTextRange","moveToElementText","collapse","moveEnd","moveStart","selectInput","select","copyObj","overwrite","countColumn","tabSize","startIndex","startValue","search","nextTab","selectionStart","selectionEnd","Delayed","time","onTimeout","setTimeout","ms","clearTimeout","Pass","sel_dontScroll","scroll","sel_mouse","origin","sel_move","findColumn","goal","col","skipped","spaceStrs","spaceStr","lst","nothing","createObj","inst","nonASCIISingleCaseWordChar","isWordCharBasic","ch","toUpperCase","toLowerCase","isWordChar","helper","extendingChars","isExtendingChar","charCodeAt","skipExtendingChars","str","charAt","findFirst","pred","midF","mid","bidiOther","getBidiPartAt","order","sticky","found","cur","bidiOrdering","bidiRE","isNeutral","isStrong","countsAsLeft","countsAsNum","BidiSpan","outerType","code","i$1","prev","i$2","type$1","i$3","prev$1","type$2","i$4","type$3","i$5","cur$1","type$4","i$6","end$1","before","replace$1","j$1","i$7","at","isRTL","j$2","splice","nstart","unshift","reverse","getOrder","line","text","noHandlers","on","emitter","getHandlers","off","removeEventListener","detachEvent","signal","handlers","signalDOMEvent","cm","override","preventDefault","defaultPrevented","e_defaultPrevented","codemirrorIgnore","signalCursorActivity","cursorActivity","curOp","cursorActivityHandlers","hasHandler","eventMixin","ctor","e_preventDefault","returnValue","e_stopPropagation","stopPropagation","cancelBubble","e_stop","e_target","srcElement","e_button","which","button","ctrlKey","zwspSupported","badBidiRects","dragAndDrop","div","zeroWidthElement","measure","hasBadBidiRects","txt","r0","r1","splitLinesAuto","nl","rt","hasSelection","getSelection","te","ownerDocument","compareEndPoints","hasCopyEvent","oncopy","badZoomedRects","modes","mimeModes","defineMode","mode","dependencies","resolveMode","spec","getMode","mfactory","modeObj","modeExtensions","exts","helperType","modeProps","prop$1","extendMode","properties","copyState","nstate","innerMode","startState","a1","a2","StringStream","lineOracle","lastColumnPos","lastColumnValue","lineStart","getLine","first","chunk","lines","sz","chunkSize","getBetween","getLines","updateLineHeight","diff","lineNo","no","lineAtHeight","h","outer","lh","isLine","lineNumberFor","lineNumberFormatter","firstLineNumber","Pos","cmp","equalCursorPos","copyPos","maxPos","minPos","clipLine","clipPos","last","linelen","clipToLen","clipPosArray","eol","sol","peek","eat","eatWhile","eatSpace","skipToEnd","skipTo","backUp","column","indentation","pattern","consume","caseInsensitive","cased","substr","hideFirstChars","lookAhead","oracle","baseToken","SavedContext","Context","maxLookAhead","baseTokens","baseTokenPos","highlightLine","forceToEnd","st","modeGen","lineClasses","runMode","overlay","overlays","i_end","opaque","bgClass","textClass","getLineStyles","updateFrontier","getContextBefore","resetState","maxHighlightLength","stateAfter","save","styleClasses","highlightFrontier","modeFrontier","precise","minindent","minline","lim","indented","findStartLine","saved","fromSaved","processLine","viewFrom","viewTo","nextLine","startAt","stream","callBlankLine","readToken","blankLine","token","copy","Token","takeToken","asArray","tokens","extractLineClasses","lineClass","flattenSpans","curStart","curStyle","addModeClass","mName","sawReadOnlySpans","sawCollapsedSpans","MarkedSpan","marker","getMarkedSpanFor","removeMarkedSpan","stretchSpansOverChange","full","oldFirst","markedSpans","oldLast","startCh","endCh","isInsert","old","nw","inclusiveLeft","insertLeft","endsAfter","inclusiveRight","markedSpansBefore","startsBefore","markedSpansAfter","sameLine","span$1","clearEmptySpans","newMarkers","gapMarkers","gap","clearWhenEmpty","detachMarkedSpans","detachLine","attachMarkedSpans","attachLine","extraLeft","extraRight","compareCollapsedMarkers","lenDiff","aPos","find","bPos","fromCmp","toCmp","collapsedSpanAtSide","sps","sp","collapsed","collapsedSpanAtStart","collapsedSpanAtEnd","collapsedSpanAround","conflictingCollapsedRange","visualLine","visualLineNo","lineN","vis","visualLineEndNo","lastLine","lineIsHidden","widgetNode","lineIsHiddenInner","heightAtLine","lineObj","lineLength","found$1","findMaxLine","maxLine","maxLineLength","maxLineChanged","Line","estimateHeight","cleanUpLine","styleToClassCache","styleToClassCacheWithMode","interpretTokenStyle","buildLineContent","lineView","builder","pre","trailingSpace","splitSpaces","getOption","addToken","buildToken","buildTokenBadBidi","insertLineContent","externalMeasured","maps","caches","lastChild","querySelector","defaultSpecialCharPlaceholder","title","startStyle","endStyle","attributes","displayText","trailingBefore","spaceBefore","special","specialChars","mustWrap","createDocumentFragment","lastIndex","txt$1","tabWidth","specialCharPlaceholder","fullStyle","attr","part","buildCollapsedSpan","ignoreWidget","widget","needsContentAttribute","setUneditable","allText","spanStyle","spanEndStyle","spanStartStyle","nextChange","Infinity","foundBookmarks","endStyles","upto","tokenText","LineView","visualLineContinued","hidden","buildViewArray","nextPos","view","operationGroup","orphanDelayedCallbacks","signalLater","delayedCallbacks","fireOrphanDelayed","delayed","updateLineForChanges","dims","changes","updateLineText","updateLineGutter","updateLineClasses","updateLineWidgets","ensureLineWrapped","replaceChild","getLineContent","ext","built","wrap","insertBefore","updateLineBackground","wrapClass","gutter","gutterBackground","gutterClass","fixedGutter","fixedPos","gutterTotalWidth","markers","gutterMarkers","lineNumbers","wrap$1","gutterWrap","lineNumber","gutterLeft","lineNumInnerWidth","gutterSpecs","gutterWidth","alignable","isWidget","nextSibling","insertLineWidgets","buildLineElement","insertLineWidgetsFor","allowAbove","widgets","ws","handleMouseEvents","positionLineWidget","above","noHScroll","wrapperWidth","coverGutter","widgetHeight","parentStyle","gutters","wrapper","eventInWidget","getAttribute","sizer","mover","lineSpace","paddingVert","paddingH","cachedPaddingH","currentStyle","scrollGap","nativeBarWidth","displayWidth","scroller","barWidth","displayHeight","barHeight","mapFromLineView","measureChar","bias","measureCharPrepared","prepareMeasureForLine","findViewForLine","findViewIndex","getDimensions","forceUpdate","lineMeasure","updateExternalMeasurement","hasHeights","prepared","varHeight","wrapping","lineWrapping","curWidth","heights","rects","getClientRects","abs","ensureLineHeights","place","nodeAndOffsetInLineMap","coverStart","coverEnd","getUsefulRect","logicalXDPI","deviceXDPI","normal","fromRange","hasBadZoomedRects","scaleX","scaleY","logicalYDPI","deviceYDPI","maybeUpdateRectForZooming","rSpan","charWidth","nullRect","rtop","rbot","bot","bogus","singleCursorHeightPerLine","rbottom","measureCharInner","measureText","mStart","mEnd","clearLineMeasurementCacheFor","clearLineMeasurementCache","externalMeasure","clearCaches","cachedCharWidth","cachedTextHeight","lineNumChars","pageScrollX","pageXOffset","scrollLeft","pageScrollY","widgetTopHeight","intoCoordSystem","includeWidgets","yOff","viewOffset","lOff","xOff","fromCoordSystem","coords","localBox","lineSpaceBox","charCoords","cursorCoords","preparedMeasure","getBidi","partPos","invert","other","estimateCoords","PosWithInfo","outside","xRel","coordsChar","coordsCharInner","rangeEnd","wrappedLineExtent","begin","wrappedLineExtentChar","boxIsAfter","box","ltr","coordsBidiPartWrapped","coordsBidiPart","baseX","chAround","boxAround","atLeft","atStart","_lineNo","closestDist","endX","dist","textHeight","anchor","clientLeft","offsetLeft","compensateForHScroll","th","perLine","widgetsHeight","estimateLineHeights","est","estHeight","posFromMouse","liberal","forRect","clientX","clientY","e$1","colDiff","round","regChange","lendiff","updateLineNumbers","viewChanged","resetView","cut","viewCuttingPoint","cut$1","cutTop","cutBot","regLineChange","oldN","newN","countDirtyView","dirty","updateSelection","showSelection","prepareSelection","curFragment","cursors","selFragment","sel","ranges","primIndex","empty","showCursorWhenSelecting","drawSelectionCursor","head","drawSelectionRange","cursorHeight","otherCursor","cmpCoords","leftSide","rightSide","sizerWidth","docLTR","add","drawForLine","fromArg","toArg","lineLen","wrapX","side","extent","iterateBidiSections","fromPos","toPos","openStart","openEnd","openRight","topLeft","topRight","botLeft","botRight","sFrom","sTo","fromLine","toLine","singleVLine","leftEnd","rightStart","restartBlink","focused","clearInterval","blinker","cursorDiv","cursorBlinkRate","setInterval","hasFocus","onBlur","ensureFocus","focus","onFocus","delayBlurEvent","delayingBlurEvent","draggingText","readOnly","selForContextMenu","reset","receivedFocus","shift","updateHeightsInViewport","prevBottom","lineDiv","updateWidgetHeight","chWidth","w","visibleLines","viewport","ensure","ensureFrom","ensureTo","calculateScrollPos","snapMargin","screentop","docBottom","atTop","atBottom","newTop","gutterSpace","screenleft","screenw","tooWide","addToScrollTop","resolveScrollToPos","ensureCursorVisible","getCursor","scrollToPos","cursorScrollMargin","scrollToCoords","scrollToCoordsRange","sPos","updateScrollTop","updateDisplaySimple","setScrollTop","startWorker","forceScroll","scrollbars","setScrollLeft","isScroller","scrollWidth","alignHorizontally","measureForScrollbars","gutterW","docH","viewWidth","barLeft","docHeight","NativeScrollbars","vert","horiz","tabIndex","checkedZeroWidth","needsH","needsV","sWidth","totalHeight","totalWidth","zeroWidthHack","disableHoriz","enableZeroWidthBar","disableVert","bar","maybeDisable","elementFromPoint","NullScrollbars","updateScrollbars","startWidth","startHeight","updateScrollbarsInner","sizes","heightForcer","borderBottom","scrollbarFiller","coverGutterNextToScrollbar","gutterFiller","scrollbarModel","initScrollbars","scrollbarStyle","axis","nextOpId","startOperation","updateInput","typing","changeObjs","cursorActivityCalled","selectionChanged","updateMaxLine","ownsGroup","endOperation","endCb","callbacks","fireCallbacksForOps","finishOperation","endOperation_R1","endOperation_W1","endOperation_R2","endOperation_W2","endOperation_finish","endOperations","scrollbarsClipped","borderRightWidth","maybeClipScrollbars","mustUpdate","DisplayUpdate","updatedDisplay","updateDisplayIfNeeded","barMeasure","adjustWidthTo","maxScrollLeft","preparedSelection","takeFocus","setDocumentHeight","postUpdateDisplay","wheelStartX","wheelStartY","doScroll","scrollNode","maybeScrollWindow","limit","changed","endCoords","scrollPos","startTop","startLeft","scrollPosIntoView","maybeHiddenMarkers","unhidden","maybeUnhiddenMarkers","finish","runInOp","methodOp","docMethodOp","highlight","highlightWorker","workTime","changedLines","oldStyles","highlighted","oldCls","newCls","ischange","workDelay","force","visible","editorIsHidden","wrapperHeight","oldDisplayWidth","events","renderedView","maybeUpdateLineNumberWidth","viewportMargin","different","lastWrapHeight","lastWrapWidth","adjustView","toUpdate","selSnapshot","active","anchorNode","extend","anchorOffset","focusNode","focusOffset","selectionSnapshot","updateNumbersFrom","container","rm","currentWheelTarget","updateNumber","patchDisplay","snapshot","nodeName","removeAllRanges","addRange","restoreSelection","selectionDiv","reportedViewFrom","reportedViewTo","updateGutterSpace","alignWidgets","comp","align","innerW","lineGutter","lineNumWidth","getGutters","sawLineNumbers","renderGutters","specs","gElt","updateGutters","Display","draggable","wheelDX","wheelDY","activeTouch","init","wheelSamples","wheelPixelsPerUnit","wheelEventDelta","dx","wheelDeltaX","dy","wheelDeltaY","detail","HORIZONTAL_AXIS","VERTICAL_AXIS","wheelDelta","wheelEventPixels","delta","onScrollWheel","canScrollX","canScrollY","pixels","movedX","movedY","sample","Selection","equals","here","there","deepCopy","Range","somethingSelected","normalizeSelection","mayTouch","selectionsMayTouch","prim","inv","simpleSelection","changeEnd","adjustForChange","computeSelAfterChange","offsetPos","loadMode","modeOption","resetModeState","isWholeLineUpdate","wholeLineUpdateBefore","updateDoc","spansFor","updateLine","linesFor","firstLine","lastText","lastSpans","nlines","added","added$1","added$2","linkedDocs","sharedHistOnly","propagate","skip","sharedHist","linked","rel","shared","attachDoc","setDirectionClass","History","startGen","undone","undoDepth","lastModTime","lastSelTime","lastOp","lastSelOp","lastOrigin","lastSelOrigin","generation","maxGeneration","historyChangeFromChange","histChange","attachLocalSpans","clearSelectionEvents","addChangeToHistory","selAfter","opId","hist","historyEventDelay","lastChangeEvent","pushSelectionToHistory","addSelectionToHistory","selectionEventCanBeMerged","clearRedo","dest","existing","removeClearedSpans","explicitlyCleared","mergeOldSpans","getOldSpans","stretched","oldCur","stretchCur","copyHistoryArray","newGroup","instantiateSel","newChanges","extendRange","posBefore","extendSelection","setSelection","extendSelections","heads","replaceOneSelection","setSimpleSelection","setSelectionReplaceHistory","setSelectionNoUndo","filterSelectionChange","setSelectionInner","skipAtomicInSelection","reCheckSelection","mayClear","newAnchor","skipAtomic","newHead","skipAtomicInner","oldPos","preventCursorLeft","selectLeft","preventCursorRight","selectRight","atomic","near","movePos","far","cantEdit","selectAll","filterChange","canceled","cancel","makeChange","ignoreReadOnly","suppressEdits","mark","parts","mk","newParts","dfrom","dto","removeReadOnlyRanges","makeChangeInner","makeChangeSingleDoc","rebased","rebaseHist","makeChangeFromHistory","allowSelectionOnly","suppress","antiChanges","returned","shiftDoc","distance","removed","recomputeMaxLength","checkWidthStart","retreatFrontier","changesHandler","changeHandler","makeChangeSingleDocInEditor","replaceRange","splitLines","rebaseHistSelSingle","rebaseHistArray","sub","ok","copied","changeLine","handle","changeType","LeafChunk","BranchChunk","removeInner","insertInner","iterN","oldHeight","leaf","maybeSpill","me","sibling","myIndex","used","LineWidget","opt","adjustScrollWhenAboveVisible","this$1","oldH","nextMarkerId","TextMarker","markText","cloneNode","isParent","SharedTextMarker","markTextShared","replacedWith","addToHistory","curLine","addMarkedSpan","clearOnEnter","clearHistory","withOp","visual","dHeight","findSharedMarkers","findMarks","detachSharedMarkers","subMarker","nextDocId","Doc","lineSep","cleanGeneration","lineSeparator","setValue","getRange","getLineHandle","getLineNumber","getLineHandleVisualStart","lineCount","listSelections","setCursor","extendSelectionsBy","setSelections","addSelection","getSelections","replaceSelection","dup","replaceSelections","newSel","oldPrev","newPrev","computeReplacedSel","undo","redo","undoSelection","redoSelection","setExtending","getExtending","historySize","markClean","changeGeneration","forceSplit","isClean","getHistory","setHistory","histData","setGutterMarker","gutterID","clearGutter","lineInfo","addLineClass","where","removeLineClass","addLineWidget","insertAt","aboveVisible","removeLineWidget","setBookmark","realOpts","findMarksAt","getAllMarks","posFromIndex","sepSize","indexFromPos","copyHistory","linkedDoc","mFrom","mTo","subMark","copySharedMarkers","unlinkDoc","CodeMirror","splitIds","iterLinkedDocs","getEditor","setDirection","eachLine","lastDrop","onDrop","clearDragCursor","files","dataTransfer","isReadOnly","FileReader","File","read","markAsReadAndPasteIfAllFilesAreRead","readTextFromFile","file","allowDropFileTypes","reader","onerror","onload","readAsText","text$1","getData","selected","dragCursor","forEachCodeMirror","getElementsByClassName","byClass","editors","globalsRegistered","ensureGlobalHandlers","resizeTimer","onResize","registerGlobalHandlers","setSize","keyNames","3","8","9","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","44","45","46","59","61","91","92","93","106","107","109","110","111","145","173","186","187","188","189","190","191","192","219","220","221","222","224","63232","63233","63234","63235","63272","63273","63275","63276","63277","63302","fromCharCode","normalizeKeyName","alt","ctrl","cmd","mod","normalizeKeyMap","keymap","keyname","lookupKey","getKeyMap","fallthrough","isModifierKey","keyCode","addModifierNames","noShift","altKey","metaKey","shiftKey","keyName","altGraphKey","deleteNearSelection","compute","kill","toKill","replaced","moveCharLogically","moveLogically","endOfLine","visually","prep","targetTop","basic","pcDefault","emacsy","macDefault","commands","singleSelection","killLine","deleteLine","delLineLeft","delWrappedLineLeft","delWrappedLineRight","rightPos","goDocStart","goDocEnd","goLineStart","goLineStartSmart","lineStartSmart","goLineEnd","visualLineEnd","lineEnd","goLineRight","goLineLeft","goLineLeftSmart","goLineUp","moveV","goLineDown","goPageUp","goPageDown","goCharLeft","moveH","goCharRight","goColumnLeft","goColumnRight","goWordLeft","goGroupRight","goGroupLeft","goWordRight","delCharBefore","deleteH","delCharAfter","delWordBefore","delWordAfter","delGroupBefore","delGroupAfter","indentAuto","indentSelection","indentMore","indentLess","insertTab","insertSoftTab","spaces","defaultTab","execCommand","transposeChars","newlineAndIndent","sels","indentLine","openLine","toggleOverwrite","firstNonWS","inWS","doHandleBinding","bound","dropShift","ensurePolled","prevShift","stopSeq","dispatchKey","seq","keySeq","dispatchKeyInner","keyMaps","extraKeys","lookupKeyForEditor","handleKeyBinding","motion","lastStoppedKey","onKeyDown","getField","handled","showCrossHair","onKeyUp","onKeyPress","charCode","handleCharBinding","lastClick","lastDoubleClick","PastClick","onMouseDown","supportsTouch","clickInGutter","repeat","now","compare","clickRepeat","selectingText","handleMappedButton","contained","behavior","unit","addNew","moveOnDrag","configureMouse","dragDrop","moved","dragEnd","mouseMove","dragStart","preventScroll","e2","leftButtonStartDrag","ourRange","ourIndex","startSel","rangeForUnit","lastPos","extendTo","startCol","posCol","leftPos","oldRange","ranges$1","anchorLine","boundary","headIndex","usePart","bidiSimplify","editorSize","move","buttons","curCount","leftButtonSelect","leftButtonDown","onContextMenu","findWordAt","gutterEvent","prevent","mX","mY","touches","lineBox","contextMenuInGutter","themeChanged","Init","defaults","optionHandlers","dragDropChanged","funcs","dragFunctions","toggle","over","leave","drop","wrappingChanged","inputStyles","pasteIncoming","cutIncoming","autofocus","word","touchFinished","prevTouch","finishTouch","farAway","touch","radiusX","radiusY","isMouseLikeTouchEvent","pageX","pageY","onDragOver","setData","effectAllowed","setDragImage","img","src","_top","onDragStart","inp","registerEventHandlers","finishInit","initHooks","textRendering","how","aggressive","indent","curSpace","curSpaceString","indentUnit","indentString","indentWithTabs","pos$1","defineInitHook","lastCopied","setLastCopied","newLastCopied","applyTextInput","deleted","recent","paste","textLines","multiPaste","pasteLinesPerSelection","lineWise","changeEvent","triggerElectric","handlePaste","pasted","clipboardData","disableInput","electricChars","smartIndent","getModeAt","electricInput","copyableRanges","lineRange","disableBrowserMagic","spellcheck","autocorrect","autocapitalize","hiddenTextarea","findPosH","origDir","lineDir","moveOnce","boundToLine","bidi","mv","getWrappedLineExtent","moveInStorageOrder","searchInVisualLine","getRes","res","nextCh","moveVisually","findNextLine","sawType","getHelper","hitSide","findPosV","pageSize","moveAmount","ContentEditableInput","lastAnchorNode","lastAnchorOffset","lastFocusNode","lastFocusOffset","polling","composing","gracePeriod","readDOMTimeout","posToDOM","badPos","bad","domToPos","lineNode","locateNodeInLineView","textNode","topNode","nodeValue","curNode","textContent","previousSibling","dist$1","belongsToInput","onCopyCut","lineWiseCopyCut","clearData","kludge","hadFocus","showPrimarySelection","updateFromDOM","readFromDOMSoon","forceCompositionEnd","screenReaderLabelChanged","removeAttribute","showMultipleSelections","curAnchor","curFocus","rng","rangeCount","getRangeAt","startGracePeriod","rememberSelection","selectionInEditor","commonAncestorContainer","blur","pollSelection","pollInterval","poll","scan","isInGutter","triggerOnKeyDown","pollContent","fromIndex","fromNode","toNode","toIndex","newText","closing","extraLinebreak","close","addText","walk","cmText","markerID","isBlock","domTextBetween","oldText","cutFront","cutEnd","oldTop","maxCutFront","newBot","oldBot","maxCutEnd","chFrom","chTo","contentEditable","readOnlyChanged","resetPosition","TextareaInput","prevInput","pollingFast","createField","textarea","prepareCopyCut","fastPoll","dispatchEvent","Event","_display","moveInputWithCursor","headPos","wrapOff","lineOff","teTop","teLeft","drawn","contextMenuPending","slowPoll","missed","same","resetSelectionOnContextMenu","oldScrollY","oldCSS","oldWrapperCSS","wrapperBox","scrollY","rehide","detectingSelectAll","prepareSelectAllHack","mouseup","extval","deflt","notOnInit","defineOption","newBreaks","refresh","getInputField","detach","attach","integer","defineOptions","helpers","setOption","getDoc","addKeyMap","removeKeyMap","addOverlay","score","priority","insertSorted","modeSpec","removeOverlay","newRanges","getTokenAt","getLineTokens","getTokenTypeAt","getHelpers","help","_global","getStateAfter","defaultTextHeight","defaultCharWidth","getViewport","addWidget","vspace","hspace","triggerOnKeyPress","triggerOnKeyUp","triggerOnMouseDown","amount","rtlMoveVisually","goalColumn","goals","startChar","check","getScrollInfo","scrollToRange","interpret","swapDoc","phrase","phraseText","phrases","getWrapperElement","getScrollerElement","getGutterElement","registerHelper","registerGlobalHelper","predicate","addEditorMethods","dontDelegate","defineMIME","mime","defineExtension","defineDocExtension","fromTextArea","tabindex","realSubmit","form","leaveSubmitMethodAlone","submit","wrappedSubmit","getTextArea","toTextArea","cmpPos","addLegacyProps","version","factory","apolloContext","getApolloContext","DocumentType","ApolloProvider","ApolloContext","ApolloConsumer","operationName","Query","Mutation","Subscription","parser","cached","queries","mutations","subscriptions","f1","transitionTimeout","listRef","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","ancestors","newRoot","isLeaving","isEdited","_Object$keys2","editOffset","ii","editKey","editValue","isNode","visitFn","getVisitFn","maybeNode","visitInParallel","visitors","skipping","visitWithTypeInfo","typeInfo","kindVisitor","kindSpecificVisitor","specificVisitor","specificKindVisitor","isDirective","GraphQLDirective","assertDirective","isRepeatable","GraphQLIncludeDirective","if","GraphQLSkipDirective","DEFAULT_DEPRECATION_REASON","GraphQLDeprecatedDirective","specifiedDirectives","isSpecifiedDirective","_hasOwnProperty","isValidEntityCode","fromCodePoint","surrogate1","surrogate2","UNESCAPE_MD_RE","UNESCAPE_ALL_RE","DIGITAL_ENTITY_TEST_RE","entities","HTML_ESCAPE_TEST_RE","HTML_ESCAPE_REPLACE_RE","HTML_REPLACEMENTS","replaceUnsafeChar","REGEXP_ESCAPE_RE","UNICODE_PUNCT_RE","lib","mdurl","ucmicro","isString","_class","unescapeMd","unescapeAll","escaped","entity","replaceEntityPattern","escapeHtml","arrayReplaceAt","newElements","isSpace","isWhiteSpace","isMdAsciiPunct","isPunctChar","escapeRE","normalizeReference","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","printDocASTReducer","varDefs","typeCondition","_ref9","_ref10","printBlockString","_ref11","_ref12","_ref13","_ref14","_ref15","_ref16","_ref17","_ref18","_ref19","_ref20","operationTypes","_ref21","addDescription","_ref22","_ref23","_ref24","hasMultilineItems","_ref25","_ref26","_ref27","_ref28","_ref29","_ref30","_ref31","repeatable","_ref32","_ref33","_ref34","_ref35","_ref36","_ref37","_ref38","cb","maybeArray","separator","maybeString","isMultiline","instance","Constructor","_defineProperties","descriptor","protoProps","staticProps","versionInfo","major","minor","patch","preReleaseTag","isPromise","addPath","pathToArray","flattened","curr","locatedError","getOperationRootType","printPathArray","valueFromAST","variableName","isInvalid","itemType","coercedValues","_valueNode$values2","itemNode","isMissingVariable","itemValue","coercedValue","coercedObj","fieldNodes","_objectValues2","fieldNode","fieldValue","_error","coerceInputValue","inputValue","onError","defaultOnError","coerceInputValueImpl","invalidValue","errorPrefix","isCollection","_coercedValue","fieldDefs","typeStr","suggestions","suggestionList","didYouMean","parseResult","_suggestions","getVariableValues","varDefNodes","inputs","maxErrors","coerced","_loop","varDefNode","varName","varType","typeFromAST","varTypeStr","_varTypeStr","_varTypeStr2","coerceVariableValues","getArgumentValues","variableValues","argNodeMap","_def$args2","argDef","argumentNode","isNull","getDirectiveValues","directiveDef","directiveNode","execute","argsOrSchema","rootValue","contextValue","fieldResolver","typeResolver","executeImpl","assertValidExecutionArguments","exeContext","buildExecutionContext","collectFields","results","responseName","fieldPath","resolveField","resolvedResult","initialValue","previous","resolved","executeFieldsSerially","executeFields","executeOperation","buildResponse","rawVariableValues","assertValidSchema","hasMultipleAssumedOperations","_document$definitions2","coercedVariableValues","defaultFieldResolver","defaultTypeResolver","containsPromise","valuesAndPromises","resolvedObject","promiseForObject","runtimeType","visitedFragmentNames","_i6","_selectionSet$selecti2","shouldIncludeNode","doesFragmentConditionMatch","fragName","include","typeConditionNode","conditionalType","isPossibleType","fieldDef","getFieldDef","resolveFn","buildResolveInfo","resolveFieldValueOrError","completeValueCatchingError","returnType","asErrorInstance","completed","completeValue","handleFieldError","rawError","isNullish","completedResults","completedItem","completeListValue","serializedResult","completeLeafValue","resolveTypeFn","resolvedRuntimeType","completeObjectValue","ensureValidRuntimeType","completeAbstractValue","runtimeTypeOrName","resolvedIsTypeOf","invalidReturnTypeError","collectAndExecuteSubfields","collectSubfields","cache0","a3","cache2","cache1","cachedValue","newValue","memoize3","subFieldNodes","_i8","abstractType","__typename","promisedIsTypeOfResults","isTypeOfResult","isTypeOfResults","_i9","property","graphql","graphqlImpl","graphqlSync","schemaValidationErrors","validateSchema","syntaxError","validationErrors","validate","mapAsyncIterator","iterable","rejectCallback","$return","abruptClose","mapReject","getAsyncIterator","mapResult","asyncMapValue","iteratorResult","return","rethrow","throw","$$asyncIterator","subscribeFieldResolver","subscribeImpl","reportGraphQLError","sourcePromise","createSourceEventStream","mapSourceToResponse","payload","resultOrStream","isAsyncIterable","eventStream","formatError","getIntrospectionQuery","descriptions","introspectionQuery","getOperationAST","documentAST","_documentAST$definiti2","introspectionFromSchema","buildClientSchema","introspection","__schema","schemaIntrospection","typeMap","typeIntrospection","scalarIntrospection","objectIntrospection","getInterfaceType","buildFieldDefMap","buildObjectDef","interfaceIntrospection","unionIntrospection","getObjectType","buildUnionDef","enumIntrospection","valueIntrospection","buildEnumDef","inputObjectIntrospection","buildInputValueDefMap","buildInputObjectDef","buildType","stdType","directiveIntrospection","GraphQLSchema","query","mutation","subscription","assumeValid","allowedLegacyNames","typeRef","itemRef","nullableRef","nullableType","getOutputType","fieldIntrospection","inputValueIntrospections","buildInputValue","inputValueIntrospection","getInputType","buildASTSchema","schemaDef","assumeValidSDL","assertValidSDL","typeDefs","directiveDefs","isTypeDefinitionNode","astBuilder","ASTDefinitionBuilder","keyByNameNode","opTypes","_schema$operationType2","operationType","getOperationTypes","buildDirective","stdTypeMap","_options","_resolveType","getWrappedType","getDescription","buildArg","buildField","getDeprecationReason","buildInputField","buildEnumValue","_makeTypeDef","_makeInterfaceDef","_makeEnumDef","_makeUnionDef","_makeScalarDef","_makeInputObjectDef","_this3","interfaceNodes","_this4","_this5","valueNodes","_this6","typeNodes","_this7","valFn","deprecated","commentDescriptions","comments","getLeadingCommentBlock","dedentBlockStringValue","buildSchema","extendSchema","assertSchema","assertValidSDLExtension","typeExtsMap","schemaExts","isTypeExtensionNode","extendedTypeName","existingTypeExts","schemaConfig","_schemaConfig$types2","existingType","extendNamedType","_schemaDef$operationT2","schemaExt","_i10","_schemaExt$operationT2","_operation","_type","getMaybeTypeByName","existingDirectives","extendDirective","getMergedDirectives","replaceType","replaceNamedType","extendScalarType","flatMap","extendField","extendObjectType","extendInterfaceType","extendUnionType","extendEnumType","extendInputObjectType","extendArg","lexicographicSortSchema","sortByName","sortTypes","sortFields","_config","_config2","_config3","sortObjMap","_config4","sortBy","sortArgs","replaceMaybeType","maybeType","fieldsMap","sortValueFn","sortedMap","sortedKeys","mapToKey","obj1","obj2","key1","key2","localeCompare","printSchema","printFilteredSchema","isDefinedType","printIntrospectionSchema","directiveFilter","typeFilter","type1","type2","printSchemaDefinition","printDescription","printArgs","printDirective","printType","isSchemaOfCommonNames","printScalar","implementedInterfaces","printFields","printObject","printInterface","printUnion","printDeprecated","printBlock","printEnum","printInputValue","printInputObject","defaultAST","argDecl","fieldOrEnumVal","reasonAST","firstInBlock","descriptionLines","printDescriptionWithComments","preferMultipleLines","blockString","maxLen","rawLines","sublines","breakLine","coerceValue","blameNode","errorPath","pathArray","isValidJSValue","isValidLiteralValue","emptySchema","emptyDoc","TypeInfo","ValidationContext","ValuesOfCorrectType","getErrors","concatAST","asts","separateOperations","fromName","depGraph","idx","opName","toName","separatedDocumentASTs","collectTransitiveDependencies","n1","n2","collected","immediateDeps","_Object$keys4","stripIgnoredCharacters","sourceObj","Source","lexer","createLexer","strippedBody","wasLastAddedTokenNonPunctuator","advance","currentToken","tokenKind","isNonPunctuator","isPunctuatorToken","tokenBody","dedentBlockString","blockStr","rawStr","getBlockStringIndentation","lastChar","BreakingChangeType","TYPE_REMOVED","TYPE_CHANGED_KIND","TYPE_REMOVED_FROM_UNION","VALUE_REMOVED_FROM_ENUM","REQUIRED_INPUT_FIELD_ADDED","INTERFACE_REMOVED_FROM_OBJECT","FIELD_REMOVED","FIELD_CHANGED_KIND","REQUIRED_ARG_ADDED","ARG_REMOVED","ARG_CHANGED_KIND","DIRECTIVE_REMOVED","DIRECTIVE_ARG_REMOVED","REQUIRED_DIRECTIVE_ARG_ADDED","DIRECTIVE_LOCATION_REMOVED","DangerousChangeType","VALUE_ADDED_TO_ENUM","TYPE_ADDED_TO_UNION","OPTIONAL_INPUT_FIELD_ADDED","OPTIONAL_ARG_ADDED","INTERFACE_ADDED_TO_OBJECT","ARG_DEFAULT_VALUE_CHANGE","findBreakingChanges","oldSchema","newSchema","findSchemaChanges","findDangerousChanges","schemaChanges","typesDiff","_i12","_typesDiff$removed2","oldType","_i14","_typesDiff$persisted2","persisted","_oldType","newType","findEnumTypeChanges","findUnionTypeChanges","findInputObjectTypeChanges","findObjectTypeChanges","findFieldChanges","typeKindName","findTypeChanges","directivesDiff","_directivesDiff$remov2","oldDirective","_directivesDiff$persi2","_oldDirective","newDirective","argsDiff","_argsDiff$added2","newArg","_argsDiff$removed2","oldArg","_oldDirective$locatio2","findDirectiveChanges","fieldsDiff","_i16","_fieldsDiff$added2","newField","_i18","_fieldsDiff$removed2","oldField","_i20","_fieldsDiff$persisted2","_oldField","_newField","isChangeSafeForInputObjectFieldOrFieldArg","possibleTypesDiff","_i22","_possibleTypesDiff$ad2","newPossibleType","_i24","_possibleTypesDiff$re2","oldPossibleType","valuesDiff","_i26","_valuesDiff$added2","_i28","_valuesDiff$removed2","oldValue","interfacesDiff","_i30","_interfacesDiff$added2","newInterface","_i32","_interfacesDiff$remov2","oldInterface","_i34","_fieldsDiff$removed4","_i36","_fieldsDiff$persisted4","_oldField2","findArgChanges","isChangeSafeForObjectOrInterfaceField","_i38","_argsDiff$removed4","_i40","_argsDiff$persisted2","_oldArg","oldValueStr","stringifyValue","newValueStr","_i42","_argsDiff$added4","_newArg","sortedAST","objectNode","fieldA","fieldB","oldArray","newArray","oldMap","newMap","_i44","oldItem","newItem","_i46","_newItem","hookCallback","hooks","hasOwnProp","isObjectEmpty","isUndefined","isNumber","isDate","createUTC","format","locale","createLocalOrUTC","utc","getParsingFlags","_pf","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","isValid","_isValid","flags","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","createInvalid","fun","momentProperties","updateInProgress","copyConfig","_isAMomentObject","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","updateOffset","isMoment","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","deprecations","deprecateSimple","mergeConfigs","parentConfig","childConfig","Locale","zeroFill","targetLength","forceSign","absNumber","zerosToFill","pow","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","ordinal","localeData","formatMoment","expandFormat","mom","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","aliases","addUnitAlias","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","isLeapYear","year","absFloor","toInt","argumentForCoercion","coercedNumber","makeGetSet","keepTime","set$1","month","date","daysInMonth","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","regexEscape","p1","p2","p3","p4","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","daysInYear","parseTwoDigitYear","getSetYear","createDate","M","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","day","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","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","ww","MM","yy","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","loadLocale","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","defineLocale","abbr","parentLocale","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","monthStr","dayStr","hourStr","minuteStr","secondStr","extractFromRFC2822Strings","weekdayStr","parsedInput","getDay","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","setUTCMinutes","getUTCMinutes","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","currentDateArray","weekYear","temp","weekdayOverflow","curWeek","GG","E","createLocal","_week","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ISO_8601","RFC_2822","stringLength","totalParsedInputLength","hour","isPm","meridiemHour","meridiemFixWrap","erasConvertYear","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","minute","second","millisecond","configFromObject","configFromInput","isUTC","createFromConfig","prototypeMin","prototypeMax","pickBy","moments","ordering","Duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","unitHasDecimal","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","utcOffset","sign","offsetFromString","chunkOffset","matcher","matches","cloneWithOffset","model","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","ret","diffRes","parseIso","isBefore","positiveMomentsDifference","momentsDifference","isAfter","createAdder","period","tmp","addSubtract","isAdding","invalid","subtract","isMomentInput","arrayTest","dataTypeTest","isNumberOrStringArray","objectTest","propertyTest","isMomentInputObject","isCalendarSpec","monthDiff","wholeMonthDiff","newLocaleData","defaultFormat","defaultFormatUtc","lang","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","abbrPieces","namePieces","narrowPieces","eras","narrow","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getter","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","eraYearOrdinalParse","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","proto","preParsePostFormat","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","toISOString","keepOffset","suffix","zone","isLocal","for","unix","creationData","eraName","since","until","eraNarrow","eraAbbr","eraYear","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","compareArrays","proto$1","get$1","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","_calendar","_longDateFormat","formatUpper","tok","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","_eras","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","posNegDuration","relativeTime$1","toIsoString","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","isError","wat","isInstanceOf","isErrorEvent","isDOMError","isDOMException","isPrimitive","isPlainObject","isEvent","isElement","isRegExp","isThenable","isSyntheticEvent","freeSelf","freeGlobal","sleep","randomInt","random","randomToken","possible","lastMs","additional","microSeconds","it","assertThisInitialized","_setPrototypeOf","keyFn","__g","isNativeReflectConstruct","possibleConstructorReturn","typeNode","innerType","previousComparisons","aTag","bTag","previouslyCompared","aKeys","bKeys","keyCount","aIterator","entries","isMap","aKey","aValue","bSet","Set","defined","store","uid","USE_SYMBOL","Observable","__e","firstArg","secondArg","subMessage","lastItem","fallbackGlobalObject","getGlobalObject","uuid4","crypto","msCrypto","getRandomValues","Uint16Array","pad","parseUrl","protocol","relative","getEventDescription","exception","event_id","consoleSandbox","originalConsole","wrappedLevels","__sentry_original__","addExceptionTypeValue","addExceptionMechanism","mechanism","_oO","getLocationHref","oO","parseRetryAfterHeader","header","headerDelay","headerDate","propTypes","Transition","baseClass","baseClassActive","timeout","appear","exit","in","Tag","otherProps","transitionProps","childProps","status","_objectEntries2","_has","optionsByDistance","inputThreshold","lexicalDistance","aStr","bStr","aLength","bLength","_i3","_j","cost","SYMBOL","SYMBOL_ITERATOR","$$iterator","isArrayLike","getIteratorMethod","isIterable","getIterator","ArrayLikeIterator","_o","SYMBOL_ASYNC_ITERATOR","asyncIterator","getAsyncIteratorMethod","asyncIterable","AsyncFromSyncIterator","unwrapAsyncFromSync","classObject","toStringTag","isAbsolute","spliceOne","resolvePathname","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","valueEqual","bValue","stripLeadingSlash","hasBasename","stripTrailingSlash","hash","hashIndex","searchIndex","parsePath","decodeURI","URIError","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","listener","notifyListeners","getConfirmation","confirm","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","ua","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_window$location","createKey","transitionManager","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","allKeys","revertPop","initialLocation","listenerCount","checkDOMListeners","isBlocked","pushState","prevIndex","nextKeys","replaceState","unblock","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","allPaths","baseTag","pushHashPath","nextPaths","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entry","nextIndex","nextEntries","canGo","anObject","IE8_DOM_DEFINE","toPrimitive","dP","O","Attributes","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","runClearTimeout","Item","nextTick","browser","argv","versions","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","umask","isSchema","__validationErrors","__allowedLegacyNames","_queryType","_mutationType","_subscriptionType","_directives","initialTypes","typeMapReducer","typeMapDirectiveReducer","_typeMap","_possibleTypeMap","_implementations","_type$getInterfaces2","iface","impls","possibleType","_this$getPossibleType2","getDirective","namedType","seenType","reducedMap","_objectValues4","_objectValues6","_map","isDefinitionNode","isExecutableDefinitionNode","isTypeSystemDefinitionNode","isTypeSystemExtensionNode","isSelectionNode","isValueNode","isTypeNode","flatMapMethod","_arity","a0","a4","a5","a6","a7","a8","a9","link","isTerminating","request","toPromise","observable","makePromise","fromPromise","promise","observer","complete","fromError","errorValue","createOperation","starting","getKey","passthrough","forward","of","toLink","ApolloLink","links","leftLink","rightLink","firstLink","nextLink","transformedOperation","transformOperation","OPERATION_FIELDS","validateOperation","sourceSymbolKeys","OutboundLink","_getPrototypeOf2","eventLabel","trackerNames","eventMeta","sameTarget","normalClick","trackLink","handleClick","isRequired","smallWords","titleCase","mightBeEmail","gaCalls","calls","ga","resetCalls","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_isNotBrowser","_debug","_titleCase","_testMode","_alwaysSendToDefaultTracker","internalGa","_window","TestModeAPI","_format","_gaCommand","command","_initialize","gaTrackingID","debug","useExistingGa","gaOptions","initialize","configsOrTrackingId","testMode","standardImplementation","gaAddress","q","getElementsByTagName","async","loadGA","alwaysSendToDefaultTracker","trackingId","fieldsObject","send","fieldObject","pageview","rawPath","extraFields","hitType","page","extraLog","modalview","rawModalName","modalName","timing","category","timingCategory","timingVar","timingValue","timingLabel","nonInteraction","transport","eventCategory","eventAction","eventValue","fatal","exDescription","exFatal","plugin","rawName","trackerName","requireString","pluginName","actionType","outboundLink","hitCallback","safetyCallbackCalled","testModeAPI","Defaults","UnboundOutboundLink","origTrackLink","IObject","fails","rawString","commonIndent","isBlank","leadingWhitespace","isSingleLine","hasLeadingSpace","hasTrailingQuote","printAsMultipleLines","startOfWeek","dirtyDate","dirtyOptions","localeWeekStartsOn","weekStartsOn","defaultWeekStartsOn","RangeError","setDate","setHours","startOfUTCWeek","setUTCDate","setUTCHours","KEY","getDateMillisecondsPart","getTimezoneOffsetInMilliseconds","baseTimezoneOffset","setSeconds","startOfUTCISOWeek","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","fill","replacementFactory","original","wrapped","_Oo","urlEncode","encodeURIComponent","getWalkSource","currentTarget","CustomEvent","jsonSize","encodeURI","utf8Length","normalizeToSize","depth","maxSize","normalizeValue","_events","normalized","serializeValue","acc","memoize","innerKey","unmemoize","extractExceptionKeysForMessage","maxLength","includedKeys","dropUndefinedKeys","rv","aFunction","Parser","expectToken","parseValueLiteral","parseType","parseTypeReference","_lexer","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","expectKeyword","parseList","parseObject","parseStringLiteral","parseObjectField","parseDirective","keywordToken","lookahead","parseSchemaDefinition","parseScalarTypeDefinition","parseObjectTypeDefinition","parseInterfaceTypeDefinition","parseUnionTypeDefinition","parseEnumTypeDefinition","parseInputObjectTypeDefinition","parseDirectiveDefinition","parseDescription","parseOperationTypeDefinition","parseImplementsInterfaces","parseFieldsDefinition","allowLegacySDLImplementsInterfaces","allowLegacySDLEmptyFields","parseFieldDefinition","parseArgumentDefs","parseInputValueDef","parseUnionMemberTypes","parseEnumValuesDefinition","parseEnumValueDefinition","parseInputFieldsDefinition","parseSchemaExtension","parseScalarTypeExtension","parseObjectTypeExtension","parseInterfaceTypeExtension","parseUnionTypeExtension","parseEnumTypeExtension","parseInputObjectTypeExtension","parseDirectiveLocations","parseDirectiveLocation","noLocation","Loc","lastToken","getTokenDesc","atToken","openKind","parseFn","closeKind","strictUriEncode","objectAssign","decodeComponent","encode","opts","extract","queryStart","formatter","arrayFormat","accumulator","parserForArrayFormat","param","keysSorter","encoderForArrayFormat","val2","isEqualType","typeA","typeB","isTypeSubTypeOf","maybeSubType","superType","doTypesOverlap","unwrapArray","safeInvoke","setRef","isBuffer","Buffer","_isBuffer","util","pSlice","functionsHaveNames","pToString","isView","arrbuf","ArrayBuffer","DataView","buffer","assert","getName","truncate","something","rawname","fail","actual","expected","operator","stackStartFunction","AssertionError","_deepEqual","memos","multiline","ignoreCase","Float32Array","Float64Array","Uint8Array","actualIndex","actualVisitedObjects","aIsArgs","isArguments","bIsArgs","ka","objectKeys","kb","objEquiv","expectedException","isPrototypeOf","_throws","shouldThrow","_tryBlock","userProvidedMessage","isUnexpectedException","generatedMessage","getMessage","fn_name","next_line","inherits","notEqual","deepEqual","deepStrictEqual","notDeepEqual","notDeepStrictEqual","strictEqual","notStrictEqual","throws","doesNotThrow","ifError","SRC","$toString","TPL","inspectSource","safe","toLength","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","callbackfn","UNSCOPABLES","ArrayProto","DropdownContext","getFieldDefFn","initialType","_schema","_typeStack","_parentTypeStack","_inputTypeStack","_fieldDefStack","_defaultValueStack","_directive","_argument","_enumValue","_getFieldDef","getParentType","getParentInputType","getDefaultValue","getArgument","getEnumValue","fieldType","typeConditionAST","outputType","inputType","fieldOrDirective","listType","inputFieldType","inputField","objectType","enumType","areInputsEqual","newInputs","lastInputs","memoizeOne","resultFn","isEqual","lastThis","lastResult","lastArgs","calledOnce","newArgs","diacritics","letters","anyDiacritic","diacriticToBase","diacritic","stripDiacritics","trimString","defaultStringify","A11yText","DummyInput","onExited","emotion","NodeResolver","findDOMNode","STYLE_KEYS","LOCK_STYLES","boxSizing","preventTouchMove","allowTouchMove","preventInertiaScroll","totalScroll","currentScroll","isTouchDevice","maxTouchPoints","_createSuper$1","_isNativeReflectConstruct$1","activeScrollLocks","ScrollLock","originalStyles","listenerOptions","capture","passive","accountForScrollbars","touchScrollTarget","targetStyle","currentPadding","adjustedPadding","_createSuper$2","_isNativeReflectConstruct$2","_ref$1","ScrollBlock","_PureComponent","getScrollTarget","blurSelectInput","isEnabled","PureComponent","_createSuper$3","_isNativeReflectConstruct$3","ScrollCaptor","isBottom","isTop","scrollTarget","touchStart","cancelScroll","handleEventDelta","onBottomArrive","onBottomLeave","onTopArrive","onTopLeave","_this$scrollTarget","isDeltaPositive","availableScroll","shouldCancelScroll","onWheel","deltaY","onTouchStart","changedTouches","onTouchMove","startListening","stopListening","ScrollCaptorSwitch","_ref$isEnabled","instructionsAriaMessage","isSearchable","valueEventAriaMessage","isOptionDisabled","defaultStyles","clearIndicator","dropdownIndicator","groupHeading","indicatorsContainer","indicatorSeparator","loadingIndicator","loadingMessage","menuList","menuPortal","multiValue","multiValueLabel","multiValueRemove","noOptionsMessage","singleValue","valueContainer","defaultTheme","primary75","neutral70","neutral90","_createSuper$4","_isNativeReflectConstruct$4","backspaceRemovesValue","blurInputOnSelect","captureMenuScroll","closeMenuOnSelect","closeMenuOnScroll","controlShouldRenderValue","escapeClearsValue","filterOption","rawInput","_ignoreCase$ignoreAcc","ignoreAccents","matchFrom","candidate","formatGroupLabel","getOptionLabel","getOptionValue","isLoading","menuShouldBlockScroll","openMenuOnFocus","openMenuOnClick","screenReaderStatus","tabSelectsValue","instanceId","Select","ariaLiveSelection","ariaLiveContext","focusedOption","focusedValue","inputIsHidden","menuOptions","selectValue","blockOptionHover","isComposing","clearFocusValueOnUpdate","commonProps","hasGroups","initialTouchX","initialTouchY","inputIsHiddenAfterUpdate","instancePrefix","openAfterFocus","scrollToFocusedOptionOnUpdate","userIsDragging","controlRef","getControlRef","focusedOptionRef","getFocusedOptionRef","menuListRef","getMenuListRef","getInputRef","cacheComponents","focusInput","blurInput","onChange","actionMeta","onInputChange","onMenuClose","selectOption","_this$props3","isOptionSelected","announceAriaLiveSelection","removeValue","removedValue","clearValue","popValue","lastSelectedValue","custom","getElementId","getActiveDescendentId","_this$state","announceAriaLiveContext","onMenuMouseDown","onMenuMouseMove","onControlMouseDown","tagName","openMenu","onDropdownIndicatorMouseDown","_this$props4","onClearIndicatorMouseDown","onScroll","onCompositionStart","onCompositionEnd","deltaX","onTouchEnd","onControlTouchEnd","onClearIndicatorTouchEnd","onDropdownIndicatorTouchEnd","handleInputChange","onMenuOpen","onInputFocus","_this$props5","onInputBlur","onOptionHover","shouldHideSelectedOptions","_this$props6","hideSelectedOptions","_this$props7","isClearable","_this$state2","focusValue","focusOption","buildMenuOptions","_props$inputValue","toOption","onHover","onSelect","optionId","onMouseMove","onMouseOver","itemIndex","groupId","_selectValue","newSelectValue","lastProps","lastSelectValue","_menuOptions","startListeningComposition","startListeningToTouch","autoFocus","nextProps","_this$props8","getNextFocusedValue","getNextFocusedOption","_this$props9","stopListeningComposition","stopListeningToTouch","_this$props10","_this$state3","openAtIndex","selectedIndex","_this$props11","_this$state4","focusedIndex","nextFocus","_this$state5","classNamePrefix","getTheme","nextSelectValue","_this$state6","lastFocusedIndex","lastFocusedOption","_this$props12","formatOptionLabel","_this$state7","_this$props13","focusedValueMsg","valueFocusAriaMessage","focusedOptionMsg","optionFocusAriaMessage","resultsMsg","screenReaderMessage","resultsAriaMessage","countOptions","_this$props14","inputId","ariaAttributes","_this$commonProps","autoCapitalize","autoComplete","autoCorrect","spellCheck","_this$components","_this$props15","_this$state8","isOptionFocused","_this$props16","_this$props17","_this$components2","_this$components3","_this$state9","_this$props18","menuPortalTarget","onMenuScrollToTop","onMenuScrollToBottom","menuUI","hasOptions","headingId","_message","menuPlacementProps","menuElement","_ref10$placerProps","_this$props19","delimiter","_value2","constructAriaLiveMessage","_this$components4","_this$props20","getCommonProps","renderLiveRegion","renderPlaceholderOrValue","renderInput","renderClearIndicator","renderLoadingIndicator","renderIndicatorSeparator","renderDropdownIndicator","renderMenu","renderFormField","defaultInputValue","defaultMenuIsOpen","SelectComponent","_temp","StateManager","callProp","getProp","manageState","XWrap","thisObj","_iterableReduce","xf","_methodReduce","symIterator","_reduce","_xwrap","_isArrayLike","_arrayReduce","murmur2","unitlessKeys","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","orphans","widows","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","processStyleValue","unitless","handleInterpolation","mergedProps","interpolation","couldBeSelectorInterpolation","__emotion_styles","interpolated","createStringFromObject","previousCursor","labelPattern","stringMode","identifierName","hashString","NetworkStatus","isNetworkRequestInFlight","networkStatus","LinkObservable","isNonEmptyArray","FetchType","graphQLErrors","networkError","errorMessage","extraInfo","graphQLError","generateErrorMessage","ApolloError","queryManager","shouldSubscribe","onSubscribe","observers","isTornDown","queryId","generateQueryId","opDef","queryName","delete","removeQuery","unsubscribe","currentResult","getCurrentResult","lastError","loading","storeValue","policy","partial","queryStoreValue","queryStore","fetchPolicy","isNetworkFetchPolicy","errorPolicy","ready","updateLastResult","stale","isDifferentFromLastResult","newResult","lastResultSnapshot","getLastResult","getLastError","resetLastResults","resetQueryStoreErrors","refetch","fetchQuery","fetchMore","fetchMoreOptions","combinedOptions","qid","fetchMoreResult","updateQuery","previousResult","stopQuery","subscribeToMore","startGraphQLSubscription","subscriptionData","setOptions","startPolling","stopPolling","setVariables","oldFetchPolicy","fetchResults","tryFetch","mapFn","dataStore","markUpdateQueryResult","broadcastQueries","stopPollingQuery","assertNotCacheFirstOrOnly","startPollingQuery","assumeImmutableResults","subObserver","_subscription","_observer","defaultSubscriptionObserverErrorCallback","setUpQuery","tearDownQuery","addObservableQuery","iterateObserversSafely","observeQuery","getLocalState","addExportedVariables","previousVariables","serverQuery","removeObservableQuery","observersWithMethod","obs","obsQuery","getStore","mutationId","initMutation","markMutationError","markMutationResult","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","mainDefinition","fragmentMap","definitionOperation","defaultOperationType","execContext","resolveSelectionSet","resultsToMerge","fieldResult","fragmentResult","aliasedFieldName","aliasUsed","defaultResult","resultPromise","resolverType","resolverMap","resolveSubSelectedArray","multiplex","queryDeduplication","onBroadcast","ssrMode","clientAwareness","localState","mutationStore","MutationStore","QueryStore","idCounter","fetchQueryRejectFns","transformCache","inFlightLinkObservables","pollingInfoByQueryId","LocalState","getCache","stop","_info","stopQueryNoBroadcast","mutate","optimisticResponse","updateQueries","refetchQueries","awaitRefetchQueries","setQuery","getVariables","generateUpdateQueriesInfo","updateQueriesByName","observableQuery","updater","markMutationInit","updateWithProxyFn","storeResult","getObservableFromLink","markMutationComplete","refetchQueryPromises","refetchQuery","queryOptions","fetchType","fetchMoreForQueryId","metadata","needToFetch","isNetworkOnly","shouldFetch","requestId","updateQueryWatch","lastRequestId","invalidated","invalidate","storePreviousVariables","isPoll","isRefetch","networkResult","fetchRequest","getQuery","markQueryError","markQueryResultClient","hasForcedResolvers","markQueryResult","newData","queryListenerForObserver","invoke","networkStatusChanged","shouldNotifyIfLoading","notifyOnNetworkStatusChange","hasGraphQLErrors","isMissing","errorStatusChanged","diffResult","resultFromStore","transformed","transformDocument","forLink","transformForLink","defaultVars","watchQuery","transformedOptions","ObservableQuery","watchedQuery","stopQueryInStore","stopQueryInStoreNoBroadcast","addQueryListener","watch","clearStore","resetIds","resetStore","reFetchObservableQueries","includeStandby","observableQueryPromises","startQuery","makeObservable","markSubscriptionResult","getCurrentQueryResult","getQueryWithPreviousResult","queryIdOrObservable","foundObserveableQuery","deduplication","forceFetch","cleanup","activeNextCount","asyncMap","errorsFromStore","fqrfId","newInfo","newContext","checkInFlight","interval","initialCache","ignoreErrors","writeWithErrors","write","dataId","recordOptimisticTransaction","orig","nextQueryResult","currentQueryResult","mutationResult","queryVariables","performTransaction","removeOptimistic","defaultOptions","resetStoreCallbacks","clearStoreCallbacks","ssrForceFetchDelay","connectToDevTools","DataStore","disableNetworkFetches","__APOLLO_CLIENT__","QueryManager","clientAwarenessName","clientAwarenessVersion","devToolsHookCb","dataWithOptimisticResults","readQuery","readFragment","writeQuery","writeFragment","writeData","__actionHookForDevTools","__requestRaw","initQueryManager","onResetStore","onClearStore","restore","serializedState","setLocalStateFragmentMatcher","argIndex","createDesc","$keys","enumBugKeys","META","setDesc","FREEZE","preventExtensions","setMeta","meta","NEED","fastKey","getWeak","onFreeze","originalModule","webpackPolyfill","baseIsNative","getRawTag","objectToString","symToStringTag","pna","Duplex","Readable","Writable","readable","allowHalfOpen","onend","_writableState","ended","onEndNT","highWaterMark","_readableState","destroyed","_destroy","ManagerReferenceNodeContext","ManagerReferenceNodeSetterContext","Manager","_React$Component","newReferenceNode","referenceNode","setReferenceNode","startOfDay","freeExports","freeModule","stubFalse","astValue","valuesNodes","stringNum","integerStringRegExp","_isArguments","hasEnumBug","nonEnumerableProps","hasArgsEnumBug","nIdx","ks","checkArgsLength","snipLine","colno","newLine","ll","reactIs","REACT_STATICS","childContextTypes","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","safeJoin","isMatchingPattern","pIE","toIObject","gOPD","propIsEnumerable","test1","test2","test3","letter","shouldUseNative","arrayLikeKeys","baseKeys","isLength","superCtor","super_","TempCtor","_curryN","received","combined","argsIdx","combinedIdx","_isString","addMilliseconds","dirtyAmount","getUTCWeekYear","localeFirstWeekContainsDate","firstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekOfNextYear","startOfNextYear","firstWeekOfThisYear","startOfThisYear","_curry3","f3","_c","SchemaValidationContext","reportError","getOperationTypeNode","validateRootTypes","_context$schema$getDi2","validateName","argNames","_directive$args2","validateDirectives","validateInputObjectCircularRefs","visitedTypes","fieldPathIndexByTypeName","detectCycleRecursive","inputObj","cycleIndex","cyclePath","pathStr","fieldObj","createInputObjectCircularRefsValidator","validateFields","validateObjectInterfaces","validateUnionMembers","validateEnumValues","validateInputFields","validateTypes","_errors","addError","operationNodes","getAllSubNodes","isValidNameError","getAllNodes","_loop2","_field$args2","implementedTypeNames","_object$getInterfaces2","getAllImplementsInterfaceNodes","validateObjectImplementsInterface","objectFieldMap","ifaceFieldMap","ifaceField","objectField","_ifaceField$args2","ifaceArg","objectArg","_loop4","_objectField$args2","union","memberTypes","includedTypeNames","memberType","getUnionMemberTypeNodes","ifaceNode","unionNode","rules","specifiedRules","abortObj","rule","validateSDL","schemaToExtend","specifiedSDLRules","SDLValidationContext","channelName","messagesCallback","bc","BroadcastChannel","subFns","onmessage","channelState","onMessage","postMessage","messageJson","canBeUsed","_pubkey","averageResponseTime","micro","ObliviousSet","ttl","timeMap","olderThen","_removeTooOldValues","fillOptionsWithDefaults","originalOptions","webWorkerSupport","idb","fallbackInterval","localstorage","removeTimeout","methods","useFastPath","getIdb","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","cleanOldMessages","db","objectStore","openCursor","onsuccess","ev","msgObk","getOldMessages","tooOld","msgObj","removeMessageById","readNewMessages","closed","lastCursorId","keyRangeValue","IDBKeyRange","getMessagesHigherThen","newerMessages","uuid","eMIs","messagesCallbackTime","_filterMessage","msgObjA","msgObjB","dbName","openRequest","open","onupgradeneeded","createObjectStore","keyPath","autoIncrement","rej","createDatabase","writeBlockPromise","readQueuePromises","_readLoop","readerUuid","writeObject","oncomplete","writeMessage","getLocalStorage","localStorage","storageKey","ls","setItem","removeItem","addStorageEventListener","writeObj","initEvent","SIMULATE_CHANNELS","channel","METHODS","NativeMethod","IndexeDbMethod","LocalstorageMethod","NodeMethod","chooseMethod","chooseMethods","SimulateMethod","useMethod","ENFORCED_OPTIONS","_iL","_onML","_addEL","internal","_befC","_prepP","maybePromise","_prepareChannel","_post","broadcastChannel","_hasMessageListeners","_addListenerObject","listenerFn","_startListening","_removeListenerObject","_stopListening","clearNodeFolder","enforceOptions","postInternal","listenObj","awaitPrepare","Channel","canUseDom","BroadCastProxy","BaseChannel","_isTransformer","_dispatchable","methodNames","_isArray","transducer","locationOffset","bitmap","px","cof","TAG","stat","classof","paths","hasSymbols","toStr","origDefineProperty","supportsDescriptors","arePropertyDescriptorsSupported","predicates","implementation","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","encodingOrOffset","allocUnsafe","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","encoding","isEncoding","fromString","checked","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","hi","lo","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","swap16","swap32","swap64","thisStart","thisEnd","thisCopy","targetCopy","includes","toHex","bytes","checkOffset","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","dst","isBoolean","isNullOrUndefined","isSymbol","re","doFold","noFold","ensureFlags","regexpFlags","maybeMultiline","searchRegexpForward","searchRegexpForwardMultiline","inside","startLine","lastMatchIn","endMargin","newMatch","searchRegexpBackward","searchRegexpBackwardMultiline","adjustPos","folded","foldFunc","searchStringForward","caseFold","fold","cutFrom","endString","searchStringBackward","topString","SearchCursor","atOccurrence","findNext","findPrevious","getSearchCursor","dialogDiv","template","dialog","innerHTML","closeNotification","newVal","currentNotificationClose","onClose","selectValueOnOpen","onInput","closeOnEnter","closeOnBlur","evt","relatedTarget","blurring","doneTimer","_react","_propTypes","_graphql","TypeLink","renderType","decode","addDays","addMonths","endOfDesiredMonth","stylis_min","X","ia","Z","ja","aa","ba","la","ma","na","ea","oa","H","A","D","z","K","I","J","N","ca","da","fa","Y","ha","Q","use","T","toSheet","Sheet","ruleSheet","selectors","parents","ns","stylisOptions","stylis","Stylis","_insert","stylisPlugins","selector","shouldCache","StyleSheet","nonce","speedy","startOfFileToken","Tok","advanceLexer","printCharCode","bodyLength","startPosition","positionAfterWhitespace","readComment","readName","firstCode","isFloat","readDigits","readNumber","chunkStart","readBlockString","char2hex","invalidSequence","readString","unexpectedCharacterMessage","lineRegexp","_arrayLikeToArray","isNodeEnv","dynamicRequire","Logger","ASTValidationContext","_ast","_fragments","_fragmentSpreads","_recursivelyReferencedFragments","_onError","getDocument","getFragment","frags","statement","getFragmentSpreads","spreads","setsToVisit","_set$selections2","getRecursivelyReferencedFragments","collectedNames","nodesToVisit","_this$getFragmentSpre2","_ASTValidationContext","getSchema","_ASTValidationContext2","_typeInfo","_variableUsages","_recursiveVariableUsages","getVariableUsages","usages","newUsages","getRecursiveVariableUsages","_this$getRecursivelyR2","trimLeft","trimRight","tinyCounter","mathRound","mathMin","mathMax","mathRandom","tinycolor","rgb","named","matchers","rgba","hsl","hsla","hsv","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","bound01","convertToPercentage","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_roundA","_gradientType","gradientType","_ok","_tc_id","rgbToHsl","rgbToHsv","rgbToHex","allow3Char","hex","pad2","rgbaToArgbHex","convertDecimalToHex","desaturate","toHsl","clamp01","saturate","greyscale","lighten","brighten","toRgb","darken","spin","hue","complement","triad","tetrad","splitcomplement","analogous","slices","monochromatic","toHsv","modification","isDark","getBrightness","isLight","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","_applyCombination","fromRatio","newColor","color1","color2","mix","rgb1","rgb2","readability","c1","c2","isReadable","wcag2","wcag2Parms","parms","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","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","flipped","flip","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","refs","getIndex","sortableInfo","sortByIndex","arrayMove","keysToOmit","vendorPrefix","OLink","setInlineStyles","setTranslate3d","translate","setTransitionDuration","closest","getPixelValue","stringValue","getElementMargin","provideDisplayName","Component$$1","getScrollAdjustedBoundingClientRect","scrollDelta","boundingClientRect","getPosition","isTouchEvent","getEdgeOffset","nodeOffset","getTargetIndex","newIndex","oldIndex","getLockPixelOffset","lockOffset","offsetX","offsetY","getLockPixelOffsets","offsets","_offsets","minLockOffset","maxLockOffset","getScrollingParent","computedStyle","overflowRegex","isScrollable","getContainerGridGap","gridColumnGap","gridRowGap","KEYCODE","NodeType","clonedNode","getContext","drawImage","sortableHandle","WrappedComponent","withRef","WithSortableHandle","wrappedInstance","isSortableHandle","AutoScroller","onScrollCallback","minTranslate","maxTranslate","speed","acceleration","_this$container","isLeft","isRight","isAutoScrolling","oneOf","contentWindow","disableAutoscroll","bool","getContainer","getHelperDimensions","helperClass","helperContainer","hideSortableGhost","keyboardSortingTransitionDuration","lockAxis","lockToContainerEdges","onSortEnd","onSortMove","onSortOver","onSortStart","pressDelay","pressThreshold","lift","shouldCancelStart","transitionDuration","updateBeforeSortStart","useDragHandle","useWindowAsScrollContainer","defaultKeyCodes","omittedProps","validateProps","_finallyRethrows","finalizer","sortableContainer","WithSortableContainer","touched","nodeIsChild","sorting","_node$sortableInfo","manager","handlePress","pressTimer","_awaitingUpdateBeforeSortStart","combinedDelta","cancelTimer","getActive","_temp6","_temp7","_node","gridGap","containerBoundingRect","scrollContainer","dimensions","_getHelperDimensions","_collection","marginOffset","_axis","offsetEdge","initialOffset","_isKeySorting","initialScroll","initialWindowScroll","_hideSortableGhost","sortableGhost","_useWindowAsScrollContainer","containerLeft","containerWidth","containerBottom","containerRight","_helperClass","classList","listenerNode","handleKeyEnd","handleKeyDown","eventName","handleSortMove","handleSortEnd","sortingIndex","_onSortStart","isKeySorting","getOrderedRefs","keyMove","_temp8","_temp9","_wasThrown","_result","updateHelperPosition","animateNodes","autoscroll","_this$manager","_node2","edgeOffset","autoScroller","scrollX","_this$props5$keyCodes","isValidSortingTarget","keyLift","keyDrop","_node$sortableInfo2","initialFocusedNode","targetIndex","targetNode","containerScrollDelta","targetBoundingClientRect","targetTranslate","targetPosition","shouldAdjustForSize","sizeAdjustment","ignoreTransition","handleEnd","handleMove","handleStart","containerNode","defaultView","scrollingElement","onAutoScroll","_this$props6$keyboard","_getLockPixelOffsets","_getLockPixelOffsets2","minOffset","maxOffset","windowScrollDelta","sortingOffset","_node3","mustShiftBackward","mustShiftForward","nextNode","prevNode","getWrappedInstance","propTypes$1","omittedProps$1","sortableElement","WithSortableElement","register","unregister","copyright","dPs","IE_PROTO","Empty","createDict","iframeDocument","iframe","lt","Properties","ObjectProto","__defineSetter__","forbiddenField","isArrayIter","getIterFn","RETURN","ITERATOR","iterFn","_t","baseMatches","baseMatchesProperty","identity","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","eq","nativeCreate","getNative","isKeyable","__data__","baseGetTag","toSource","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","Ctor","ctorString","assignValue","baseAssignValue","customizer","isNew","arg1","arg2","arg3","initialStyle","initialArrowStyle","InnerPopper","popperNode","updatePopperInstance","arrowNode","enabled","eventsEnabled","positionFixed","modifiers","arrow","applyStyle","updateStateModifier","popper","arrowStyles","popperInstance","destroy","destroyPopperInstance","referenceElement","PopperJS","getOptions","scheduleUpdate","prevState","enableEventListeners","disableEventListeners","setPopperNode","getPopperStyle","getPopperPlacement","outOfBoundaries","getOutOfBoundariesState","arrowProps","setArrowNode","getArrowStyle","placements","Popper","_unsupportedIterableToArray","minLen","getFunctionName","V","$","ee","ne","ae","oe","se","pe","ce","le","de","ue","he","fe","ye","ve","De","we","ke","ge","be","Ce","Se","dateTime","Oe","Pe","Ee","Me","Ve","Qe","awareOfUnicodeTokens","formatLong","Ne","xe","Ye","Te","Ie","Le","je","Re","Fe","qe","We","Ae","Be","He","Ke","__localeId__","__localeData__","Ue","$e","ze","Ge","minDate","maxDate","excludeDates","includeDates","filterDate","nt","Je","Xe","Ze","et","tt","ot","excludeTimes","includeTimes","filterTime","minTime","maxTime","pt","ct","dt","ut","ht","ft","mt","yt","startPeriod","endPeriod","vt","wt","yearsList","incrementYears","decrementYears","onCancel","shiftYears","yearDropdownItemNumber","scrollableYearDropdown","renderOptions","Dt","dropdownVisible","onSelectChange","renderSelectOptions","toggleDropdown","renderReadView","renderDropdown","adjustDateOnChange","handleYearChange","setOpen","dropdownMode","renderScrollMode","renderSelectMode","kt","monthNames","gt","useShortMonthInDropdown","bt","Ct","monthYearsList","scrollableMonthYearDropdown","St","createRef","onMouseEnter","handleOnKeyDown","disabledKeyboardNavigation","isSameDay","preSelection","highlightDates","startDate","endDate","selectsStart","selectsEnd","selectsRange","selectingDate","isInSelectingRange","dayClassName","isExcluded","isKeyboardSelected","isRangeStart","isRangeEnd","isInRange","isSelectingRangeStart","isSelectingRangeEnd","isWeekend","isOutsideMonth","getHighLightedClass","ariaLabelPrefixWhenEnabled","ariaLabelPrefixWhenDisabled","getTabIndex","isInputFocused","inline","containerRef","dayEl","monthShowsDuplicateDaysEnd","monthShowsDuplicateDaysStart","renderDayContents","getClassNames","handleMouseEnter","getAriaLabel","role","handleFocusDay","Ot","weekNumber","ariaLabelPrefix","Pt","onDayClick","onDayMouseEnter","onWeekSelect","shouldCloseOnSelect","formatWeekNumber","showWeekNumber","handleWeekClick","chooseDayAriaLabelPrefix","disabledDayAriaLabelPrefix","handleDayClick","handleDayMouseEnter","renderDays","Mt","orderInDisplay","onMouseLeave","fixedHeight","weekAriaLabelPrefix","showWeekNumbers","isWeekInMonth","peekNextMonth","setPreSelection","MONTH_REFS","onMonthClick","handleMonthNavigation","isRangeStartMonth","isRangeEndMonth","isRangeStartQuarter","isRangeEndQuarter","showFullMonthYearPicker","showTwoColumnMonthYearPicker","onMonthKeyDown","getMonthClassNames","onQuarterClick","getQuarterClassNames","showMonthYearPicker","showQuarterYearPicker","monthClassName","handleMouseLeave","renderMonths","renderQuarters","renderWeeks","Et","timeClassName","injectTimes","intervals","openToDate","liClasses","centerLi","calcCenterPosition","monthRef","todayButton","showTimeSelectOnly","timeCaption","renderTimes","onTimeChange","Nt","handleYearClick","yearItemNumber","onYearClick","getYearClassNames","xt","setMinutes","timeString","customTimeInput","cloneElement","timeInputLabel","renderTimeInput","Yt","showPopperArrow","Tt","It","onClickOutside","onDropdownFocus","handleMonthChange","onMonthMouseLeave","onYearChange","onMonthChange","handleMonthYearChange","weekLabel","formatWeekday","weekDayClassName","formatWeekDay","useWeekdaysShort","showYearPicker","renderCustomHeader","forceShowMonthNavigation","showDisabledMonthNavigation","decreaseMonth","decreaseYear","previousMonthAriaLabel","previousYearAriaLabel","previousYearButtonLabel","previousMonthButtonLabel","showTimeSelect","increaseMonth","increaseYear","nextMonthAriaLabel","nextYearAriaLabel","nextYearButtonLabel","nextMonthButtonLabel","showYearDropdown","showMonthDropdown","showMonthYearDropdown","changeYear","changeMonth","changeMonthYear","monthDate","renderCurrentMonth","handleDropdownFocus","renderMonthDropdown","renderMonthYearDropdown","renderYearDropdown","prevMonthButtonDisabled","nextMonthButtonDisabled","prevYearButtonDisabled","nextYearButtonDisabled","renderYearHeader","renderDefaultHeader","showPreviousMonths","monthsShown","monthSelectedIn","monthContainer","renderHeader","handleMonthMouseLeave","timeIntervals","withPortal","getHours","getMinutes","showTimeInput","getDateInView","assignMonthContainer","renderPreviousButton","renderNextButton","renderYears","renderTodayButton","renderTimeSection","renderInputTimeSection","Lt","jt","tabLoopRef","getTabChildren","enableTabLoop","handleFocusStart","handleFocusEnd","Rt","portalRoot","getElementById","portalId","Ft","wrapperClassName","hidePopper","popperComponent","popperModifiers","popperPlacement","popperProps","popperOnKeyDown","popperContainer","Reference","preventOverflow","escapeWithReference","boundariesElement","qt","Wt","getPreSelection","startOpen","preventFocus","preventFocusTimeout","cancelFocusInput","calcInitialState","lastPreSelectChange","Bt","setBlur","preventOpenOnFocus","inputFocusTimeout","setFocus","onChangeRaw","isDefaultPrevented","At","strictParsing","setSelected","allowSameDay","focusSelectedMonth","onInputClick","componentNode","inputOk","handleSelect","onInputError","onClearClick","closeOnScroll","isCalendarOpen","dateFormatCalendar","handleCalendarClickOutside","outsideClickIgnoreClass","handleTimeChange","calendarClassName","calendarContainer","excludeScrollbar","onDayKeyDown","customInput","customInputRef","handleBlur","handleChange","handleFocus","onInputKeyDown","placeholderText","ariaLabelledBy","clearButtonTitle","ariaLabelClose","onCalendarOpen","onCalendarClose","clearPreventFocusTimeout","renderCalendar","renderDateInput","renderClearButton","popperClassName","onPopperKeyDown","CalendarContainer","getDefaultLocale","registerLocale","setDefaultLocale","subMilliseconds","dateLongFormatter","timeLongFormatter","longFormatters","dateTimeFormat","matchResult","datePattern","timePattern","getUTCISOWeekYear","fourthOfJanuaryOfNextYear","fourthOfJanuaryOfThisYear","startOfQuarter","currentMonth","isSpeedy","ctr","_tag","createStyleElement","styleSheets","ownerNode","sheetForTag","isImportRule","insertRule","cssRules","flush","TabContext","_extendStatics","SERVER_RENDERED","Helper","tx","ty","Shared","editor","delegateCursor","delegateScroll","coordinates","delegateSelection","autoScroll","applyNext","preserved","autoCursor","applyUserDefined","wire","onCopy","onCursor","onCursorActivity","onCut","onDblClick","onDragEnter","onDragLeave","onGutterClick","onPaste","onRenderLine","onSelection","onViewportChange","Controlled","applied","appliedNext","appliedUserDefined","deferred","emulating","hydrated","initCb","editorDidConfigure","mounted","hydrate","userDefinedOptions","mirror","resolveChange","initChange","mirrorChange","phantomChange","onBeforeChange","editorDidMount","editorWillUnmount","shouldComponentUpdate","UnControlled","continueChange","detached","onBeforeChangeCb","editorDidAttach","editorDidDetach","ExecutableDefinitions","_node$definitions2","defName","badValueMessage","badEnumValueMessage","suggestedValues","isValidScalar","fieldTypeName","fieldNodeMap","suggestedFields","enumTypeSuggestion","locationType","allNames","calculateChange","initialA","containerHeight","checkboardCache","serverCanvas","checkboard","canvas","fillStyle","fillRect","toDataURL","Checkboard","renderers","reactCSS","grid","absolute","isValidElement","Alpha","alpha","handleMouseDown","handleMouseUp","unbindEventListeners","radius","gradient","shadow","pointer","slider","vertical","VALID_KEY_CODES","EditableInput","blurValue","setUpdatedValue","getNumberValue","getArrowOffset","updatedValue","handleDrag","dragLabel","movementX","dragMax","getValueObjectWithLabel","arrowOffset","onChangeValue","hideLabel","htmlFor","_h","Hue","_props$direction","assocIndexOf","stackClear","stackDelete","stackGet","stackHas","objectProto","nativeObjectToString","isOwn","unmasked","coreJsData","maskSrcKey","isMasked","funcToString","reIsHostCtor","funcProto","reIsNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","mapCacheClear","getMapData","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","stackSet","pairs","LARGE_ARRAY_SIZE","Stack","assignMergeValue","createBaseFor","baseFor","fromRight","iteratee","keysFunc","cloneArrayBuffer","arrayBuffer","cloneTypedArray","typedArray","isDeep","copyArray","objectCreate","baseCreate","overArg","getPrototype","isPrototype","initCloneObject","baseIsArguments","isArrayLikeObject","objectCtorString","typedArrayTags","baseIsTypedArray","baseUnary","nodeIsTypedArray","nodeUtil","isTypedArray","safeGet","objValue","copyObject","baseTimes","reIsUint","isIndex","inherited","isArr","isArg","isBuff","skipIndexes","nativeKeysIn","baseKeysIn","isProto","keysIn","toPlainObject","baseMergeDeep","srcIndex","mergeFunc","srcValue","stacked","isCommon","isTyped","cloneBuffer","baseMerge","nativeMax","overRest","otherArgs","constant","baseSetToString","nativeNow","shortOut","setToString","lastCalled","stamp","baseRest","isIterateeCall","createAssigner","assigner","guard","Raised","zDepth","_ref$styles","passedStyles","bg","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","isBinary","nativeMin","debounce","wait","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","throttle","Saturation","_container$getBoundin","saturation","bright","renderWindow","getContainerRenderWindow","circle","arrayEach","nativeKeys","createBaseEach","baseEach","eachFunc","castFunction","simpleCheckForValidColor","passed","each","toState","oldHue","isValidHex","getContrastingColor","isvalidColorString","stringWithoutDegree","ColorWrap","Picker","ColorPicker","onChangeComplete","handleSwatchHover","onSwatchHover","optionalEvents","Span","Focus","_ref$onClick","_ref$title","_ref$focusStyle","focusStyle","transparent","swatch","AlphaPointer","picker","AlphaPicker","_ref$className","arrayMap","setCacheAdd","setCacheHas","SetCache","arraySome","cacheHas","equalArrays","bitmask","equalFunc","isPartial","othLength","arrValue","othValue","compared","othIndex","mapToArray","setToArray","symbolProto","symbolValueOf","equalByTag","convert","arrayPush","baseGetAllKeys","symbolsFunc","arrayFilter","resIndex","stubArray","nativeGetSymbols","getSymbols","getAllKeys","equalObjects","objProps","objLength","skipCtor","objCtor","othCtor","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","baseIsEqual","baseIsMatch","matchData","noCustomizer","COMPARE_PARTIAL_FLAG","isStrictComparable","getMatchData","matchesStrictComparable","reIsDeepProp","reIsPlainProp","isKey","resolver","memoized","Cache","memoizeCapped","rePropName","reEscapeChar","stringToPath","quote","subString","symbolToString","baseToString","castPath","toKey","baseGet","baseHasIn","hasPath","hasFunc","hasIn","baseProperty","basePropertyDeep","baseIteratee","baseMap","BlockSwatches","swatches","float","Swatch","Block","triangle","hexCode","card","deepPurple","lightBlue","lightGreen","amber","deepOrange","blueGrey","CircleSwatch","circleSize","circleSpacing","Circle","material","ChromeFields","toggleViews","showHighlight","hideHighlight","icon","iconHighlight","svg","UnfoldMoreHorizontalIcon","onMouseOut","ChromePointer","ChromePointerCircle","Chrome","disableAlpha","fontFamily","controls","toggles","CompactColor","dot","colorUtils","CompactFields","HEXwrap","HEXinput","HEXlabel","RGBwrap","RGBinput","RGBlabel","Compact","compact","hoverSwatch","Github","borderBottomColor","triangleShadow","GithubSwatch","SliderPointer","HuePicker","HuePointer","Hex","third","PhotoshopPicker","divider","fieldSymbols","PhotoshopPointerCircle","triangleBorder","Extend","leftInside","rightInside","PhotoshopButton","backgroundImage","PhotoshopPreviews","currentColor","new","Photoshop","_props$styles","_props$className","previews","actions","PhotoshopPointer","onAccept","PhotoshopFields","SketchFields","single","double","SketchPresetColors","borderTop","swatchWrap","colorObjOrString","Sketch","presetColors","sliders","activeColor","SliderSwatch","SliderSwatches","Slider","SwatchesColor","CheckIcon","SwatchesGroup","Swatches","Twitter","hexcode","GooglePointerCircle","GooglePointer","GoogleFields","_values2","hsvValue","input2","label2","rgbValue","hslValue","Google","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","defaultWidth","long","medium","short","formatRelativeLocale","yesterday","today","tomorrow","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","dirtyString","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","findIndex","findKey","valueCallback","formatDistance","addSuffix","comparison","formatRelative","_date","_baseDate","localize","ordinalNumber","_dirtyOptions","rem100","abbreviated","wide","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","queryFromPojo","selectionSetFromObj","justTypenameQuery","currentContext","MISSING_VALUE","Slot","slots","withValue","noContext","defaultDispose","dispose","newest","oldest","getEntry","older","newer","clean","parentEntrySlot","reusableEmptyArray","emptySetPool","optionalMessage","valueGet","childValues","dirtyChildren","recomputing","Entry","recompute","mightBeDirty","reportDirtyChild","reportCleanChild","rememberParent","maybeReportOrphan","originalChildren","forgetChildren","recomputeNewValue","maybeUnsubscribe","setDirty","maybeSubscribe","reportClean","setClean","reallyRecompute","reportDirty","forgetChild","childValue","valueCopy","valueIs","removeDirtyChild","dc","reportOrphan","weakness","lookup","lookupArray","getChildTrie","isObjRef","weak","strong","KeyTrie","haveWarned","shouldWarn","answer","ensureReady","canBypassInit","idValue","isRootQuery","introspectionQueryResultData","possibleTypesMap","parseIntrospectionResult","isReady","implementingTypes","introspectionResultData","implementingType","depend","disposable","makeCacheKey","defaultNormalizedCacheFactory","seed","cacheKeyRoot","freezeResults","executeStoreQuery","executeSelectionSet","executeSubSelectedArray","readQueryFromStore","diffQueryAgainstStore","rootId","fragmentMatcherFunction","queryDefinition","cacheRedirects","execResult","hasMissingFields","missing","tolerable","finalResult","objectsToMerge","handleMissing","executeField","fragmentExecResult","readStoreResult","resultKey","storeKeyName","storeObj","json","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","defaultConfig","HeuristicFragmentMatcher","_id","addTypename","resultCaching","optimisticId","watches","typenameDocumentCache","silenceBroadcast","customResolvers","cacheResolvers","optimisticData","storeWriter","storeReader","maybeBroadcastWatch","broadcastWatches","evict","idToRemove","toReapply","removedCount","layer","startOfUTCWeekYear","firstWeek","getUTCWeek","startOfUTCISOWeekYear","fourthOfJanuary","getUTCISOWeek","runMutation","onCompleted","ssr","partialRefetch","onSubscriptionData","onSubscriptionComplete","shouldResubscribe","isMounted","previousOptions","newOptions","storePrevious","unmount","refreshClient","verifyDocumentType","onNewData","previousData","currentObservable","runLazy","runLazyQuery","lazyOptions","getExecuteResult","getQueryResult","startQuerySubscription","obsRefetch","obsFetchMore","obsUpdateQuery","obsStartPolling","obsStopPolling","obsSubscribeToMore","removeQuerySubscription","updateObservableQuery","getExecuteSsrResult","executeLazy","called","fetchData","afterExecute","lazy","handleErrorOrCompleted","ssrInitiated","renderPromises","ssrDisabled","fetchDisabled","ssrLoading","observableQueryFields","addQueryPromise","prepareObservableQueryOptions","reactComponent","initializeObservableQuery","getSSRObservable","observableQueryOptions","registerSSRObservable","newObservableQueryOptions","resubscribeToQuery","OperationData","useBaseQuery","tick","updatedOptions","queryDataRef","queryData","QueryData","memoFn","useDeepMemo","queryResult","useQuery","setResult","mutationFunctionOptions","onMutationStart","generateNewMutationId","response","onMutationCompleted","onMutationError","mostRecentMutationId","mutateOptions","mutateVariables","mutationContext","ignoreResults","updateResult","isMostRecentMutation","useMutation","mutationDataRef","mutationData","MutationData","getLoadingResult","startSubscription","endSubscription","updateCurrentData","updateError","completeSubscription","useSubscription","subscriptionDataRef","SubscriptionData","queryPromises","queryInfoTrie","lookupQueryInfo","queryInstance","hasPromises","consumeAndAwaitPromises","promises","varMap","variablesString","addGlobalEventProcessor","_CSSTransition","_ReplaceTransition","_TransitionGroup","_Transition","TransitionGroup","ReplaceTransition","CSSTransition","toAbsoluteIndex","IS_INCLUDES","hiddenKeys","speciesConstructor","ltrim","rtrim","exporter","ALIAS","FORCE","$at","iterated","point","LIBRARY","Iterators","$iterCreate","setToStringTag","BUGGY","returnThis","Base","DEFAULT","IS_SET","FORCED","IteratorPrototype","getMethod","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","$defineProperty","ARG","tryGet","SAFE_CLOSING","riter","skipClosing","DESCRIPTORS","SPECIES","$iterators","getKeys","wks","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","origSymbol","hasSymbolSham","freeProcess","baseForOwn","StringDecoder","nb","enc","nenc","retried","_normalizeEncoding","normalizeEncoding","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","utf8CheckByte","byte","utf8CheckExtraBytes","utf8CheckIncomplete","ReflectOwnKeys","ReflectApply","receiver","NumberIsNaN","EventEmitter","eventListener","errorListener","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","prepend","warning","newListener","onceWrapper","fired","wrapFn","_onceWrap","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","setMaxListeners","getMaxListeners","doError","er","originalListener","rawListeners","eventNames","Stream","Transform","PassThrough","copyProps","SafeBuffer","CorkedRequest","corkReq","pendingcb","corkedRequestsFree","onCorkedFinish","asyncWrite","setImmediate","WritableState","internalUtil","OurUint8Array","realHasInstance","destroyImpl","nop","isDuplex","objectMode","writableObjectMode","hwm","writableHwm","writableHighWaterMark","defaultHwm","finalCalled","needDrain","ending","finished","noDecode","decodeStrings","defaultEncoding","writing","corked","sync","bufferProcessing","onwrite","writecb","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","_write","writev","_writev","_final","doWrite","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","prefinish","getBuffer","hasInstance","pipe","_uint8ArrayToBuffer","writeAfterEnd","valid","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_undestroy","undestroy","Ruler","__rules__","__cache__","__find__","__compile__","chains","altName","chain","beforeName","ruleName","afterName","ignoreInvalid","enableOnly","getRules","chainName","nesting","attrs","markup","attrIndex","attrPush","attrData","attrSet","attrGet","attrJoin","isMacOs","_default","ie_lt8","matching","bracketRegex","findMatchingBracket","afterCursor","scanForBracket","maxScanLen","maxScanLineLength","maxScanLines","matchBrackets","autoclear","maxHighlightLen","maxHighlightLineLength","marks","doMatchBrackets","currentlyHighlighted","oldConfig","foldGutter","onFold","State","indicatorOpen","indicatorFolded","updateInViewport","isFolded","__isFold","updateFoldInfo","minSize","foldOption","clsFolded","clsOpen","vp","foldCode","changeUpdate","foldOnChangeTimeSpan","updateViewportTimeSpan","tokenType","lineText","findOpening","openCh","pass","nextOpen","nextClose","hasImport","semi","hasInclude","interpretLine","jumpToLine","shortText","openDialog","getJumpDialog","posStr","cmds","moveSubword","startPos","cat","findPosSubword","insertLine","newSelection","wordAt","addCursorToSelection","newRange","selectBetweenBrackets","opening","puncType","sortLines","caseSensitive","toSort","au","bu","modifyWordOrSelection","indices","replacements","findAndGoTo","goSubwordLeft","goSubwordRight","scrollLineUp","visibleBottomLine","scrollLineDown","visibleTopLine","splitSelectionByLine","lineRanges","singleSelectionTop","selectLine","extended","insertLineAfter","insertLineBefore","selectNextOccurrence","fullWord","sublimeFindFullWord","isSelectedRange","skipAndSelectNextOccurrence","prevAnchor","prevHead","addCursorToPrevLine","addCursorToNextLine","selectScope","goToBracket","swapLineUp","linesToMove","newSels","swapLineDown","toggleCommentIndented","toggleComment","joinLines","joined","duplicateLine","sortLinesInsensitive","nextBookmark","sublimeBookmarks","prevBookmark","toggleBookmark","sublimeBookmark","clearBookmarks","selectBookmarks","smartBackspace","toStartOfLine","deletePos","prevIndent","delLineRight","upcaseAtCursor","downcaseAtCursor","setSublimeMark","sublimeMark","selectToSublimeMark","deleteToSublimeMark","sublimeKilled","swapWithSublimeMark","sublimeYank","showInCenter","findUnder","findUnderPrevious","findAllUnder","primaryIndex","macSublime","pcSublime","sublime","_TypeLink","_DefaultValue","onClickType","showDefaultValue","md","MarkdownContent","markdown","dangerouslySetInnerHTML","__html","InnerReference","refHandler","addMinutes","addHours","addWeeks","addYears","_react2","_propTypes2","sizerStyle","INPUT_PROPS_BLACKLIST","copyStyles","fontStyle","letterSpacing","isIE","generateId","placeHolderSizerRef","placeHolderSizer","sizerRef","inputWidth","copyInputStyles","updateInputWidth","onAutosize","newInputWidth","placeholderIsMinWidth","extraWidth","injectStyles","sizerValue","previousValue","currentValue","wrapperStyle","inputProps","cleanInputProps","inputClassName","renderStyles","getDaysInMonth","monthIndex","lastDayOfMonth","dirtyMonth","dateWithDesiredMonth","htmlTreeAsString","currentElem","sepLength","nextStr","_htmlElementAsString","allowedAttrs","commonjsGlobal","globalThis","createEventEmitter","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","getChildContext","componentWillReceiveProps","observedBits","isarray","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","defaultDelimiter","modifier","asterisk","optional","escapeGroup","escapeString","encodeURIComponentPretty","segment","attachKeys","route","endsWithDelimiter","groups","regexpToRegexp","arrayToRegexp","stringToRegexp","sourceLocation","firstLineColumnOffset","whitespace","lineIndex","lineOffset","lineNum","columnOffset","columnNum","locationStr","locationLine","sublineIndex","sublineColumnNum","printPrefixedLines","subline","existingLines","padLen","punycode","Url","slashes","auth","port","hostname","urlParse","resolveObject","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","querystring","parseQueryString","slashesDenoteHost","queryIndex","splitter","uSplit","simplePath","lowerProto","atSign","hostEnd","hec","decodeURIComponent","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","toASCII","escape","qm","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","removeAllDots","srcPath","psychotic","authInHost","_implementation2","timeoutDuration","longerTimeoutBrowsers","isBrowser","scheduled","functionToCheck","getStyleComputedProperty","getParentNode","getReferenceNode","reference","isIE11","isIE10","getOffsetParent","noOffsetParent","getRoot","findCommonOffsetParent","element1","element2","Node","isOffsetContainer","element1root","getScroll","upperSide","html","includeScroll","getBordersSize","sideA","sideB","getSize","getWindowSizes","getClientRect","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","runIsIE","isHTML","childrenRect","parentRect","borderTopWidth","borderLeftWidth","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","getFixedPositionOffsetParent","getBoundaries","boundaries","boundariesNode","isPaddingNumber","getArea","computeAutoPlacement","refRect","sortedAreas","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","getOppositePlacement","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","runModifiers","ends","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","toCheck","getWindow","setupEventListeners","scrollElement","attachToScrollParents","scrollParents","isBody","removeEventListeners","isNumeric","setStyles","isFirefox","isModifierRequired","requesting","requested","validPlacements","clockwise","BEHAVIORS","parseOffset","useHeight","basePlacement","splitRegex","mergeWithPrevious","toValue","index2","shiftvariation","isVertical","shiftOffsets","transformProp","popperStyles","opSide","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","placementOpposite","flipOrder","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flippedVariationByContent","flippedVariation","getOppositeVariation","subtractLength","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","bothOddWidth","getRoundedOffsets","prefixedProperty","invertTop","invertLeft","modifierOptions","Utils","PopperUtils","Quill","Mixin","Toolbar","UniqueOperationNames","LoneAnonymousOperation","SingleFieldSubscriptions","KnownTypeNames","FragmentsOnCompositeTypes","VariablesAreInputTypes","ScalarLeafs","FieldsOnCorrectType","UniqueFragmentNames","KnownFragmentNames","NoUnusedFragments","PossibleFragmentSpreads","NoFragmentCycles","UniqueVariableNames","NoUndefinedVariables","NoUnusedVariables","KnownDirectives","UniqueDirectivesPerLocation","KnownArgumentNames","UniqueArgumentNames","ProvidedRequiredArguments","VariablesInAllowedPosition","OverlappingFieldsCanBeMerged","UniqueInputFieldNames","LoneSchemaDefinition","UniqueOperationTypes","UniqueTypeNames","UniqueEnumValueNames","UniqueFieldDefinitionNames","UniqueDirectiveNames","PossibleTypeExtensions","KnownArgumentNamesOnDirectives","ProvidedRequiredArgumentsOnDirectives","existingTypesMap","definedTypes","_context$getDocument$2","typeNames","_1","_2","isSDL","isSDLNode","specifiedScalarsNames","isSpecifiedScalarName","suggestedTypes","unknownTypeMessage","locationsMap","definedDirectives","astDefinitions","candidateLocation","appliedTo","getDirectiveLocationForASTPath","directiveName","misplacedDirectiveMessage","duplicateDirectiveMessage","uniqueDirectiveMap","knownDirectives","unknownDirectiveArgMessage","suggestedArgs","argNode","knownArgsNames","unknownArgMessage","directiveArgs","knownArgs","_directiveNode$argume2","knownArgNames","duplicateArgMessage","missingDirectiveArgMessage","argNodes","_fieldDef$args2","requiredArgsMap","isRequiredArgumentNode","knownNameStack","knownNames","duplicateInputFieldMessage","$getOwnPropertyDescriptor","$getPrototypeOf","gOPN","windowNames","getWindowNames","$freeze","$seal","$preventExtensions","$isFrozen","$isSealed","$isExtensible","un","arrayJoin","arraySlice","klass","upTo","cloned","$sort","comparefn","$forEach","STRICT","$map","$filter","$some","$every","$reduce","aLen","reduceRight","$indexOf","NEGATIVE_ZERO","searchElement","unicode","addToUnscopables","_k","Arguments","IS_CONCAT_SPREADABLE","flattenIntoArray","sourceLen","mapper","spreadable","sourceIndex","$fails","wksExt","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","$Symbol","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","isEnum","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","findChild","setSymbolDesc","protoDesc","$defineProperties","$propertyIsEnumerable","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","FAILS_ON_PRIMITIVES","replacer","$replacer","buggy","isEntries","redefineAll","forOf","anInstance","$iterDetect","inheritIfRequired","common","IS_WEAK","ADDER","fixMethod","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","getConstructor","setStrong","defer","cel","setTask","clearTask","clearImmediate","MessageChannel","Dispatch","port2","port1","importScripts","PromiseCapability","$$resolve","$$reject","runtime","Op","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","isGeneratorFunction","genFun","awrap","skipTempReset","rootRecord","rval","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","maxInt","regexPunycode","regexNonASCII","regexSeparators","stringFromCharCode","mapDomain","ucs2decode","ucs2encode","digitToBasic","digit","flag","adapt","numPoints","baseMinusTMin","oldi","baseMinusT","inputLength","handledCPCount","basicLength","handledCPCountPlusOne","qMinusT","isArgs","origKeys","keysShim","originalKeys","shim","numberIsNaN","$Object","$TypeError","dotAll","$gOPD","EXITING","ENTERED","ENTERING","EXITED","UNMOUNTED","newObj","desc","_interopRequireWildcard","_reactDom","_reactLifecyclesCompat","initialStatus","parentGroup","transitionGroup","isMounting","appearStatus","unmountOnExit","mountOnEnter","nextCallback","updateStatus","nextStatus","cancelNextCallback","getTimeouts","mounting","performEnter","performExit","appearing","timeouts","enterTimeout","onEnter","safeSetState","onEntering","onTransitionEnd","onEntered","onExit","onExiting","setNextCallback","doesNotHaveTimeoutOrListener","addEndListener","Children","only","polyfill","componentWillMount","componentWillUpdate","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","isReactComponent","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","newApiName","maybeSnapshot","__suppressDeprecationWarning","classNamesShape","timeoutsShape","_ChildMapping","handleExited","firstRender","appeared","prevChildMapping","getInitialChildMapping","getNextChildMapping","currentChildMapping","getChildMapping","childFactory","modules","installedModules","__webpack_require__","moduleId","container_1","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","attributor_1","class_1","style_1","store_1","Registry","Parchment","Format","Leaf","Embed","Scroll","Inline","Text","Attributor","Attribute","Class","Style","Store","ParchmentError","ANY","TEXT_NODE","LEVEL","BLOCK","INLINE","DATA_KEY","BlotClass","bubble","blot","Definitions","Definition","blotName","attrName","tagNames","NULL_CHARACTER","Delta","newOp","retain","chop","partition","failed","initial","changeLength","hasNext","nextOp","compose","thisIter","otherIter","firstOther","firstLeft","peekType","peekLength","thisOp","otherOp","opLength","INSERT","DELETE","EQUAL","newline","transformPosition","nextType","hasOwnConstructor","hasIsPrototypeOf","setProperty","getProperty","copyIsArray","deep","BlockEmbed","bubbleFormats","_get","_extend2","_quillDelta2","_parchment2","_break2","_inline2","_text2","_Parchment$Embed","domNode","attribute","BLOCK_ATTRIBUTE","endsWith","BLOCK_BLOT","_Parchment$Block","descendants","tail","statics","defaultChild","allowedChildren","overload","expandConfig","sliceIterator","_editor2","_emitter4","_module2","_selection","_selection2","_logger2","_theme2","__quill","addContainer","scrollingContainer","whitelist","keyboard","addModule","clipboard","EDITOR_CHANGE","TEXT_CHANGE","SCROLL_UPDATE","lastRange","modify","contents","setContents","imports","startsWith","refNode","setRange","_overload","_overload2","deleteText","API","formatLine","formatText","SILENT","_overload3","_overload4","_overload5","_overload6","bounds","getBounds","containerBounds","getLength","_overload7","_overload8","getContents","MAX_VALUE","_overload9","_overload10","getText","embed","insertEmbed","_this8","_overload11","_overload12","insertText","dangerouslyPasteHTML","_this9","_overload13","_overload14","removeFormat","_this10","applyDelta","_overload15","_overload16","USER","_this11","userConfig","DEFAULTS","import","themeConfig","moduleConfig","moduleClass","toolbar","oldDelta","shiftRange","_emitter","_emitter2","_map2","_map3","_map4","_Parchment$Inline","BLOT","isolate","moveChildren","selfIndex","otherIndex","_parchment","TextBlot","_Parchment$Text","_eventemitter2","_node$__quill$emitter","handleDOM","Emitter","_EventEmitter","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","Module","quill","levels","_console","namespace","newLevel","isUndefinedOrNull","attributeBit","ATTRIBUTE","canAdd","Code","_block2","_Inline","CodeBlock","_Block","_descendant","descendant","deleteAt","nextNewline","newlineIndex","prevNewline","isolateLength","formatAt","_descendant3","_descendant4","optimize","TAB","_op2","_code2","_cursor2","_block","_clone2","_deepEqual2","ASCII","Editor","getDelta","consumeNextNewline","scrollLength","batchStart","image","bullet","normalizeDelta","_scroll$line","_scroll$line2","_line$descendant","batchEnd","lengthRemaining","codeIndex","codeLength","leaves","formatsArr","blots","combineFormats","_scroll$line3","_scroll$line4","suffixLength","cursorIndex","textBlot","CONTENTS","diffDelta","mouseDown","savedRange","handleComposition","handleDragging","listenDOM","native","getNativeRange","setNativeRange","ignored","_context$range","startNode","startOffset","endOffset","nativeRange","_scroll$leaf","_scroll$leaf2","_leaf$position","_leaf$position2","_scroll$leaf3","_scroll$leaf4","_leaf$position3","_leaf$position4","normalizeNative","normalizedToRange","indexes","_position","startContainer","endContainer","_scroll$leaf5","_scroll$leaf6","_leaf$position5","_leaf$position6","scrollBounds","rangeToNative","_getRange","_getRange2","Break","linked_list_1","shadow_1","ContainerBlot","build","makeBlot","forEachAt","criteria","lengthLeft","childBlot","refBlot","insertInto","targetParent","inclusive","addedNodes","removedNodes","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","FormatBlot","replaceWith","replacement","LeafBlot","INLINE_BLOT","keepNull","Iterator","retOp","_instanceof","nativeMap","nativeSet","nativePromise","circular","includeNonEnumerable","allParents","allChildren","useBuffer","_clone","__isArray","__isRegExp","__getRegExpFlags","__isDate","keyChild","valueChild","entryChild","allPropertyNames","propertyName","__objToStr","clonePrototype","_container2","_Parchment$Scroll","batch","_line","_line2","_line3","_newlineIndex","takeRecords","SHORTKEY","_quill2","Keyboard","_Module","bindings","addBinding","ENTER","handleEnter","BACKSPACE","handleBackspace","handleDelete","handleDeleteRange","_quill$getLine","_quill$getLine2","_quill$getLeaf","getLeaf","_quill$getLeaf2","leafStart","offsetStart","leafEnd","offsetEnd","prefixText","suffixText","curContext","makeEmbedArrowHandler","LEFT","RIGHT","_quill$getLeaf3","_quill$getLine11","_quill$getLine13","curFormats","prevFormats","nextLength","_quill$getLine15","_quill$getLine17","nextFormats","firstFormats","lastFormats","lineFormats","makeCodeBlockHandler","_quill$scroll$descend","_quill$scroll$descend2","scrollIndex","makeFormatHandler","shortKey","ESCAPE","UP","DOWN","cutoff","updateContents","_quill$getLine3","_quill$getLine4","_quill$getLine5","_quill$getLine6","_quill$getLine7","_quill$getLine8","_quill$getLine9","_quill$getLine10","Cursor","_length","restoreText","_Parchment$Container","ColorStyle","ColorClass","ColorAttributor","_Parchment$Attributor","sanitize","_inline","_sanitize","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","_keyboard2","_dropdown2","optionsCounter","toggleAriaAttribute","buildPicker","togglePicker","hasAttribute","selectItem","buildItem","buildLabel","buildOptions","trigger","_embed2","_scroll2","_clipboard2","_history2","ShadowBlot","parentBlot","refDomNode","AttributorStore","ClassAttributor","camelize","StyleAttributor","Theme","themes","contentNode","childNode","leftGuard","rightGuard","prevLength","AlignStyle","AlignClass","AlignAttribute","BackgroundStyle","BackgroundClass","_color","DirectionStyle","DirectionClass","DirectionAttribute","FontClass","FontStyle","FontStyleAttributor","SizeStyle","SizeClass","getLastChangeIndex","lastRecorded","ignoreChange","userOnly","changeDelta","undoDelta","maxStack","deleteLength","changeIndex","endsWithNewlineChange","BaseTooltip","_colorPicker2","_iconPicker2","_picker2","_tooltip2","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","tooltip","textbox","pickers","extendToolbar","icons","selects","fillSelect","formula","edit","fileInput","readAsDataURL","click","video","_Tooltip","boundsContainer","preview","linkRange","restoreFocus","extractVideoUrl","LinkedList","append","curIndex","curLength","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","ScrollBlot","MutationObserver","observe","disconnect","records","markParent","grandChild","InlineBlot","BlockBlot","EmbedBlot","splitText","_toggle","searchString","subjectString","diff_main","text1","text2","cursor_pos","commonlength","diff_commonPrefix","commonprefix","diff_commonSuffix","commonsuffix","longtext","shorttext","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","best_common","prefixLength","text1_a","text1_b","text2_a","text2_b","hm1","hm2","mid_common","diff_halfMatch_","diffs_a","diffs_b","text1_length","text2_length","max_d","v_offset","v_length","v1","v2","front","k1start","k1end","k2start","k2end","k1","k1_offset","y1","x1","k2_offset","x2","diff_bisectSplit_","k2","y2","diff_bisect_","diff_compute_","diff_cleanupMerge","count_delete","count_insert","text_delete","text_insert","norm","current_pos","next_pos","split_pos","d_left","d_right","cursor_normalize_diff","ndiffs","cursor_pointer","d_next","merge_tuples","fix_cursor","starts_with_pair_end","fixed_diffs","fix_emoji","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","pointerend","left_d","right_d","supportsArgumentsClass","supported","unsupported","Events","EE","exists","available","prefixed","matchText","matchSpacing","matchNewline","matchBlot","matchAttributor","_extend3","_align","_background","_direction","_font","_size","DOM_KEY","CLIPBOARD_CONFIG","deltaEndsWith","ELEMENT_NODE","computeStyle","italic","bold","applyFormat","textIndent","matchAlias","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","Clipboard","matchVisual","addMatcher","innerText","_prepareMatching","prepareMatching","_prepareMatching2","elementMatchers","textMatchers","traverse","childrenDelta","pair","_pair","endText","nextElementSibling","nodeHeight","Bold","addControls","_ret","addHandler","_this$quill$selection","_quill$selection$getR","addButton","addSelect","_picker","_Picker","colorLabel","stroke","IconPicker","defaultItem","Tooltip","TEMPLATE","rootBounds","verticalShift","_base","_base2","_link2","_icons2","TOOLBAR_CONFIG","SnowTheme","_BaseTheme","buildButtons","buildPickers","SnowTooltip","_BaseTooltip","show","_core2","_indent","_blockquote2","_header2","_list","_list2","_bold2","_italic2","_script2","_strike2","_underline2","_image2","_video2","_code","_formula2","_syntax2","_toolbar2","_bubble2","_snow2","IndentClass","ListItem","IdentAttributor","Blockquote","Header","List","_Container","listEventHandler","_bold","Italic","_Bold","Script","Strike","Underline","_link","ATTRIBUTES","Image","Video","_BlockEmbed","FormulaBlot","_Embed","katex","throwOnError","errorColor","Formula","CodeToken","SyntaxCodeBlock","_CodeBlock","_highlight","cachedText","Syntax","timer","hljs","highlightAuto","BubbleTooltip","BubbleTheme","_bounds","ReactNoopUpdateQueue","QuillMixin","createEditor","$el","setEditorTabIndex","hookEditor","unprivilegedEditor","makeUnprivilegedEditor","handleTextChange","onEditorChangeText","onEditorChangeSelection","handleSelectionChange","eventType","rangeOrDelta","oldRangeOrOldDelta","unhookEditor","setEditorReadOnly","setEditorContents","setEditorSelection","getHTML","createFind","arrStacked","othStacked","createDOMFactory","address","area","article","aside","audio","bdi","bdo","big","blockquote","br","caption","cite","colgroup","datalist","del","details","dfn","dl","em","fieldset","figcaption","figure","footer","h1","h2","h3","h4","h5","h6","hgroup","hr","ins","kbd","keygen","legend","li","main","menuitem","meter","nav","noscript","ol","optgroup","picture","progress","rp","ruby","samp","script","section","small","summary","sup","table","tbody","td","tfoot","thead","tr","track","ul","var","wbr","clipPath","defs","ellipse","linearGradient","mask","polygon","polyline","radialGradient","tspan","getSymbolsIn","ReadableState","EElistenerCount","debugUtil","debuglog","BufferList","kProxyEvents","readableObjectMode","readableHwm","readableHighWaterMark","pipes","pipesCount","flowing","endEmitted","reading","needReadable","emittedReadable","readableListening","resumeScheduled","awaitDrain","readingMore","decoder","_read","readableAddChunk","addToFront","skipChunkCheck","emitReadable","onEofChunk","chunkInvalid","addChunk","maybeReadMore","needMoreData","isPaused","setEncoding","howMuchToRead","computeNewHighWaterMark","emitReadable_","flow","maybeReadMore_","nReadingNextTick","resume_","fromList","hasStrings","copyFromBufferString","copyFromBuffer","fromListPartial","endReadable","endReadableNT","xs","nOrig","doRead","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","onclose","onfinish","ondrain","ondata","cleanedUp","pipeOnDrain","increasedAwaitDrain","pause","resume","dests","paused","_fromList","emitErrorNT","readableDestroyed","writableDestroyed","afterTransform","ts","_transformState","transforming","writechunk","rs","needTransform","writeencoding","_transform","_flush","err2","descriptors","formatRegExp","objects","noDeprecation","throwDeprecation","traceDeprecation","debugEnviron","debugs","stylize","stylizeNoColor","showHidden","_extend","customInspect","stylizeWithColor","styleType","recurseTimes","primitive","simple","formatPrimitive","visibleKeys","arrayToHash","braces","toUTCString","formatProperty","numLinesEst","reduceToSingleString","NODE_DEBUG","pid","getSeconds","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","promisify","promiseResolve","promiseReject","callbackify","callbackified","maybeCb","open_tag","close_tag","HTML_TAG_RE","HTML_OPEN_CLOSE_TAG_RE","postProcess","delimiters","startDelim","endDelim","loneMarkers","tokenize","silent","scanned","scanDelims","jump","can_open","can_close","tokens_meta","onHintInformationRender","information","deprecation","onRemoveFn","hintsUl","Completion","startLen","activityFunc","showHint","getHints","newOpts","hintOptions","parseOptions","supportsSelection","completionActive","cancelAnimationFrame","getHintElement","hintsElement","Widget","picked","parentWindow","hints","selectedHint","completions","hintId","alignWithWord","below","offsetParentPosition","bodyPosition","winW","winH","overlapY","scrolls","startScroll","closingOnBlur","overlapX","Up","moveFocus","Down","PageUp","menuSize","PageDown","Home","End","Enter","Tab","Esc","customKeys","ourMap","buildKeyMap","avoidWrap","changeActive","screenAmount","closeOnUnfocus","curScroll","completeOnSingleClick","scrollToActive","fetchHints","identStart","closeCharacters","myTick","finishUpdate","completeSingle","scrollMargin","node1","node2","firstNode","words","app","applicableHelpers","anyword","term","autocomplete","auto","closeBefore","triples","explode","conf","closeBrackets","ensureBound","Backspace","getConfig","around","charsAround","linesep","chars","identical","curType","stringStartsAfter","contractSelection","handleChar","inverted","SearchState","posFrom","posTo","lastQuery","getSearchState","queryCaseInsensitive","parseString","parseQuery","isRE","startSearch","queryText","searchOverlay","showMatchesOnScrollbar","annotate","doSearch","rev","persistent","immediate","hiding","searchNext","clearSearch","persistentDialog","getQueryDialog","replaceAll","dialogText","getReplaceQueryDialog","getReplacementQueryDialog","openConfirm","confirmDialog","getDoReplaceConfirm","doReplace","findPersistent","findPersistentNext","findPersistentPrev","findPrev","GUTTER_ID","showTooltipFor","lint","selfContain","showTooltip","LintState","hasGutter","marked","annotations","ann","__annotation","annotationTooltip","popupTooltips","waitingFor","clearMarks","makeMarker","labels","severity","multiple","tooltips","tip","messageHTML","startLinting","passOptions","getAnnotations","abort","updateLinting","lintAsync","issues","annotationsNotSorted","groupByLine","anns","maxSeverity","tipLabel","formatAnnotation","onUpdateLinting","lintOnChange","hasLintGutter","tokenState","argDefs","objectFieldDefs","_forEachState","parentDef","_introspection","reverseStateStack","getFieldReference","isMetaField","getDirectiveReference","getArgumentReference","getEnumValueReference","getTypeReference","_codemirror","hoverTimeout","hoverTime","popup","popupBox","popupStyle","popupWidth","popupHeight","topPos","popupTimeout","onMouseOverPopup","hidePopup","showPopup","onMouseHover","getHoverTime","oldOnMouseOver","createState","DefaultValue","arrayWithoutHoles","iterableToArray","nonIterableSpread","Position","Location","LocationLink","Color","ColorInformation","ColorPresentation","FoldingRangeKind","FoldingRange","DiagnosticRelatedInformation","DiagnosticSeverity","DiagnosticTag","Diagnostic","Command","TextEdit","TextDocumentEdit","CreateFile","RenameFile","DeleteFile","WorkspaceEdit","character","Is","objectLiteral","two","three","four","uri","targetUri","targetRange","targetSelectionRange","originSelectionRange","textEdit","additionalTextEdits","endLine","startCharacter","endCharacter","Warning","Information","Hint","Unnecessary","Deprecated","relatedInformation","textDocument","VersionedTextDocumentIdentifier","ignoreIfExists","boolean","oldUri","newUri","recursive","ignoreIfNotExists","documentChanges","TextDocumentIdentifier","TextDocumentItem","MarkupKind","MarkupContent","CompletionItemKind","InsertTextFormat","CompletionItemTag","CompletionItem","CompletionList","MarkedString","Hover","ParameterInformation","SignatureInformation","DocumentHighlightKind","DocumentHighlight","SymbolKind","SymbolTag","SymbolInformation","DocumentSymbol","CodeActionKind","CodeActionContext","CodeAction","CodeLens","FormattingOptions","DocumentLink","SelectionRange","TextEditChangeImpl","WorkspaceChange","workspaceEdit","_textEditChanges","_workspaceEdit","textEditChange","getTextEditChange","textDocumentEdit","createFile","checkDocumentChanges","renameFile","deleteFile","languageId","PlainText","Markdown","Method","Interface","Property","Unit","Value","Enum","Keyword","Snippet","Folder","EnumMember","Constant","Struct","Operator","TypeParameter","isIncomplete","fromPlainText","plainText","language","documentation","parameters","Read","Write","Namespace","Package","Key","Null","containerName","selectionRange","QuickFix","Refactor","RefactorExtract","RefactorInline","RefactorRewrite","SourceOrganizeImports","SourceFixAll","diagnostics","commandOrEdit","isPreferred","insertSpaces","TextDocument","FullTextDocument","positionAt","offsetAt","applyEdits","sortedEdits","mergeSort","leftIdx","rightIdx","lastModifiedOffset","_uri","_languageId","_version","_content","_lineOffsets","getLineOffsets","lineOffsets","isLineStart","low","high","nextLineOffset","getFirstMatch","getSecondMatch","matchAndReturnConst","getWindowsVersionName","getMacOSVersionName","getAndroidVersionName","getVersionPrecision","compareVersions","getBrowserAlias","BROWSER_ALIASES_MAP","getBrowserTypeByAlias","BROWSER_MAP","ENGINE_MAP","OS_MAP","PLATFORMS_MAP","Bada","BlackBerry","Chromium","Electron","Epiphany","Firefox","Generic","Googlebot","Maxthon","Opera","PhantomJS","Puffin","QupZilla","QQ","QQLite","Safari","Sailfish","SeaMonkey","Sleipnir","Swing","Tizen","Vivaldi","WeChat","Roku","amazon_silk","bada","blackberry","chromium","electron","epiphany","firefox","generic","googlebot","google_search","k_meleon","maxthon","mz","naver","opera","opera_coast","phantomjs","puffin","qupzilla","qq","qqlite","sailfish","samsung_internet","seamonkey","sleipnir","swing","tizen","uc","vivaldi","webos","wechat","yandex","tablet","desktop","tv","WindowsPhone","Windows","MacOS","iOS","Android","WebOS","Linux","ChromeOS","PlayStation4","EdgeHTML","Blink","Trident","Presto","Gecko","WebKit","90","getParser","getResult","_ua","parsedResult","getUA","parseBrowser","describe","getBrowser","getBrowserName","getBrowserVersion","getOS","os","parseOS","getOSName","getOSVersion","getPlatform","parsePlatform","getPlatformType","getEngine","engine","parseEngine","getEngineName","satisfies","isOS","isPlatform","compareVersion","isEngine","versionName","94","95","_hasWeakSet","WeakSet","_inner","nullptn","formatptn","colonptn","cursorptn","transformptn","animationptn","propertiesptn","elementptn","selectorptn","andptn","escapeptn","invalidptn","keyframeptn","plcholdrptn","readonlyptn","beforeptn","afterptn","tailptn","whiteptn","pseudoptn","writingptn","supportsptn","propertyptn","selfptn","pseudofmt","dimensionptn","imgsrcptn","moz","cascade","compress","semicolon","preserve","plugins","plugged","should","unkwn","keyed","nscopealt","nscope","bracket","comment","parentheses","trail","peak","atrule","pseudo","caret","eof","char","flat","delimited","proxy","supports","elements","declare","minify","cycles","aobj","bobj","seenIndex","ponyfill","symbolObservablePonyfill","curryN","_extends2","_require","_require2","selectURI","selectHttpOptionsAndBody","fallbackHttpConfig","serializeFetchParameter","createSignalIfSupported","parseAndCheckHttpResponse","_require3","extractFiles","ReactNativeFile","createUploadLink","_ref$uri","fetchUri","_ref$fetch","fetch","linkFetch","fetchOptions","credentials","headers","linkConfig","http","includeExtensions","_context$clientAwaren","contextConfig","_selectHttpOptionsAnd","_extractFiles","FormData","abortController","controller","_globals","doT","templateSettings","evaluate","interpolate","defineParams","conditional","iterate","varname","strip","selfcontained","doNotSkipEncoded","encodeHTMLSource","encodeHTMLRules","matchHTML","eval","startend","startencode","unescape","tmpl","needhtmlencode","indv","cse","sid","resolveDefs","rw","__exp","elsecase","vname","iname","_encodeHTML","Button","ariaLabel","btnOutlineColor","defaultAriaLabel","isRegex","aIsRegex","bIsRegex","aIsBuffer","bIsBuffer","_ref$fill","_ref$width","_ref$height","_ref$style","resetWarningCache","elementType","objectOf","checkPropTypes","ALL","PARENT","LEAF","flatNodes","noCascade","nodeHasChildren","isChild","isLeaf","showCheckbox","getDisabledState","treeDepth","flattenNodes","expanded","toggleNode","toggleChecked","toggleParentStatus","isEveryChildChecked","getNode","updateDeterminateProperty","indeterminate","checkbox","uncheck","halfCheck","expandClose","expandOpen","expandAll","collapseAll","parentClose","parentOpen","onCheck","onExpand","getCheckState","expandOnClick","optimisticToggle","expandDisabled","renderCollapseIcon","treeId","renderCheckboxIcon","showNodeIcon","renderNodeIcon","renderCheckboxLabel","renderBareLabel","renderCollapseButton","renderLabel","renderChildren","deserializeLists","onNodeClick","onExpandAll","onCollapseAll","setProps","checkModel","serializeList","expandAllNodes","isSomeChildChecked","checkState","onlyLeafCheckboxes","showNodeTitle","renderTreeNodes","determineShallowCheckState","showExpandAll","nameAsArray","renderArrayHiddenInput","renderJoinedHiddenInput","iconsClass","nativeCheckboxes","renderExpandAll","renderHiddenInput","InputGroupText","genericHashLink","HashLink","NavHashLink","_reactRouterDom","hashFragment","asyncTimerId","scrollFunction","getElAndScroll","As","smooth","filteredProps","stringifier","Stringifier","GraphiQL","NAME_RX","assertValidName","knownOperationNames","duplicateOperationNameMessage","operationCount","inlineFragmentOnNonCompositeErrorMessage","fragmentOnNonCompositeErrorMessage","nonInputTypeOnVarMessage","noSubselectionAllowedMessage","requiredSubselectionMessage","suggestedTypeNames","suggestedObjectTypes","interfaceUsageCount","_schema$getPossibleTy2","_possibleType$getInte2","possibleInterface","getSuggestedTypeNames","suggestedFieldNames","possibleFieldNames","getSuggestedFieldNames","quotedTypeNames","quotedFieldNames","undefinedFieldMessage","knownFragmentNames","unusedFragMessage","operationDefs","fragmentDefs","fragmentNameUsed","_context$getRecursive2","fragType","typeIncompatibleAnonSpreadMessage","getFragmentType","typeIncompatibleSpreadMessage","cycleErrorMessage","spreadNames","via","visitedFrags","spreadPath","spreadPathIndexByName","spreadNodes","spreadNode","spreadName","spreadFragment","fragmentNames","knownVariableNames","duplicateVariableMessage","undefinedVarMessage","variableNameDefined","unusedVariableMessage","variableDefs","variableNameUsed","_variableDefs2","variableDef","badVarPosMessage","expectedType","varDefMap","allowedVariableUsage","varDefaultValue","locationDefaultValue","nullableLocationType","fieldsConflictMessage","reasonMessage","subreason","comparedFragmentPairs","PairSet","cachedFieldsAndFragmentNames","conflicts","_getFieldsAndFragment","getFieldsAndFragmentNames","_i5","conflict","findConflict","collectConflictsWithin","comparedFragments","collectConflictsBetweenFieldsAndFragment","collectConflictsBetweenFragments","findConflictsWithinSelectionSet","_ref2$","fields1","fields2","areMutuallyExclusive","_getReferencedFieldsA","getReferencedFieldsAndFragmentNames","fieldMap2","fragmentNames2","collectConflictsBetween","fragmentName1","fragmentName2","fragment1","fragment2","_getReferencedFieldsA2","fieldMap1","fragmentNames1","_getReferencedFieldsA3","parentFieldsAreMutuallyExclusive","_i7","field1","field2","parentType1","def1","parentType2","def2","name1","name2","arguments1","arguments2","argument1","value1","value2","argument2","sameArguments","doTypesConflict","selectionSet1","selectionSet2","allFields","subfieldConflicts","_getFieldsAndFragment2","_getFieldsAndFragment3","_comparedFragments","findConflictsBetweenSubSelectionSets","nodeAndDefs","_collectFieldsAndFragmentNames","inlineFragmentType","fragmentType","_pairSetAdd","alreadyDefined","schemaDefinitionsCount","duplicateOperationTypeMessage","existedOperationTypeMessage","definedOperationTypes","existingOperationTypes","checkOperationTypes","alreadyDefinedOperationType","knownTypeNames","checkTypeName","duplicateTypeNameMessage","existedTypeNameMessage","duplicateEnumValueNameMessage","existedEnumValueNameMessage","existingTypeMap","knownValueNames","checkValueUniqueness","valueNames","_node$values2","valueDef","duplicateFieldDefinitionNameMessage","existedFieldDefinitionNameMessage","knownFieldNames","checkFieldUniqueness","fieldNames","_node$fields2","hasField","knownDirectiveNames","duplicateDirectiveNameMessage","existedDirectiveNameMessage","_defKindToExtKind","extendingDifferentTypeKindMessage","checkExtension","defNode","expectedKind","defKindToExtKind","extensionKindToTypeName","_expectedKind","typeToExtKind","allTypeNames","extendingUnknownTypeMessage","RE_INI_KEY_VAL","RE_NEWLINES","NEWLINES_MATCH","DotenvModule","envPath","dotenvPath","homedir","readFileSync","keyValueArr","isDoubleQuoted","isSingleQuoted","isMultilineDoubleQuoted","isMultilineSingleQuoted","quoteChar","trimmedLine","_pipe","_checkForMethod","methodname","XMap","_xfBase","_xmap","functor","_identity","factories","partArgs","aNumberValue","$toFixed","ERROR","multiply","divide","numToString","fractionDigits","$toPrecision","toPrecision","precision","$toISOString","lz","getUTCMilliseconds","getUTCHours","getUTCSeconds","pv","$parseInt","$trim","radix","$parseFloat","$flags","TO_STRING","createProperty","arrayLike","mapfn","mapping","copyWithin","inc","endPos","$find","forced","$includes","arraySpeciesCreate","flatten","depthArg","gOPS","$assign","getDesc","$values","__defineGetter__","__lookupGetter__","__lookupSetter__","$iterDefine","setSpecies","SIZE","createArrayMethod","$has","arrayFind","arrayFindIndex","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","ufstore","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","task","microtask","newPromiseCapabilityModule","perform","v8","$Promise","newPromiseCapability","FakePromise","PromiseRejectionEvent","notify","isReject","_v","reaction","exited","domain","onHandleUnhandled","onUnhandled","unhandled","isUnhandled","onunhandledrejection","onrejectionhandled","$reject","$resolve","onFulfilled","onRejected","capability","$index","alreadyCalled","race","macrotask","Observer","WebKitMutationObserver","standalone","promiseCapability","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","isPureReactComponent","__self","__source","_owner","keyPrefix","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Fragment","Profiler","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","_context","createFactory","_ctor","_status","useCallback","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","registrationName","va","wa","xa","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","Ua","Va","xlinkHref","Wa","Xa","Sa","Ta","Ra","setAttributeNS","Ya","Za","$a","ab","bb","eb","fb","gb","hb","ib","jb","lb","mb","pb","qb","_debugOwner","_debugSource","fileName","rb","sb","xb","_valueTracker","stopTracking","tb","yb","zb","defaultChecked","_wrapperState","initialChecked","Ab","controlled","Bb","Cb","Db","Eb","Gb","Fb","Hb","defaultSelected","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","namespaceURI","Rb","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","cc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","nc","correspondingUseElement","oc","pc","qc","topLevelType","nativeEvent","targetInst","rc","eventSystemFlags","sc","containerInfo","tc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","Lc","pointerId","Mc","Nc","Pc","unstable_runWithPriority","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","lineClamp","kd","ld","nd","od","pd","qd","rd","sd","ud","vd","xd","HTMLIFrameElement","yd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","eventPool","destructor","getPooled","persist","eventPhase","bubbles","cancelable","timeStamp","isTrusted","beforeInput","compositionEnd","compositionStart","compositionUpdate","datetime","email","password","tel","_isInputEventSupported","Alt","Meta","Shift","getModifierState","screenX","screenY","fromElement","toElement","movementY","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","mouseEnter","mouseLeave","pointerEnter","pointerLeave","af","bf","cf","df","ef","ff","gf","hf","jf","kf","lf","animationName","elapsedTime","pseudoElement","mf","nf","pf","Spacebar","Left","Right","Del","Win","Apps","MozPrintableKey","qf","12","112","113","114","115","116","117","118","119","120","121","122","123","144","rf","sf","tf","targetTouches","uf","vf","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","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","pending","effects","vg","wg","suspenseConfig","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","Lg","Mg","Ng","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","dh","eh","fh","gh","memoizedProps","revealOrder","ih","responder","jh","kh","mh","nh","oh","ph","qh","rh","sh","uh","vh","wh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","dispatch","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","gi","pendingContext","ni","pi","qi","retryTime","ji","fallback","unstable_avoidThisFallback","ki","isBackwards","rendering","renderingStartTime","tailExpiration","tailMode","mi","ri","si","wasMultiple","onclick","createElementNS","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","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","$i","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","wb","activeElementDetached","focusedElem","Tj","wd","vb","Uj","Vj","Wj","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","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","unstable_forceFrameRate","performance","sortIndex","startTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","sendBeacon","xhr","XMLHttpRequest","ActiveXObject","withCredentials","setRequestHeader","responseType","Blob","isBlob","isSupported","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","propFullName","secret","getShim","ReactPropTypes","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","singleMatcher","multiMatcher","decodeComponents","encodedURI","replaceMap","customDecodeURIComponent","hasSymbol","getSymbol","SymbolIterator","SymbolObservable","SymbolSpecies","getSpecies","isObservable","hostReportError","enqueue","cleanupSubscription","_cleanup","closeSubscription","_queue","notifySubscription","onNotify","flushSubscription","subscriber","subscriptionObserver","SubscriptionObserver","_subscriber","hasSeed","startNext","completeIfDone","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_item","qs","sep","maxKeys","kstr","vstr","stringifyPrimitive","_gud2","_temp2","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","hasToStringTag","isStandardArguments","isLegacyArguments","supportsStandardArguments","callBind","getPolyfill","GetIntrinsic","$apply","$call","$reflectApply","applyBind","ERROR_MESSAGE","binder","boundLength","boundArgs","$SyntaxError","SyntaxError","$Function","getEvalledConstructor","expressionSyntax","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","asyncGenFunction","asyncGenFunctionPrototype","asyncGenPrototype","TypedArray","INTRINSICS","AggregateError","Atomics","BigInt","EvalError","FinalizationRegistry","Int8Array","Int16Array","Int32Array","SharedArrayBuffer","Uint8ClampedArray","Uint32Array","WeakRef","LEGACY_ALIASES","$concat","$spliceApply","$replace","getBaseIntrinsic","allowMissing","intrinsicName","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","symObj","syms","regexExec","isRegexMarker","badStringifier","throwRegexMarker","flagsBound","asyncGenIterator","TypeErr","tryDateObject","subMinutes","subHours","subDays","subWeeks","subMonths","subYears","getQuarter","getYear","dirtySeconds","dirtyMinutes","dirtyHours","setQuarter","dirtyQuarter","oldQuarter","setYear","dirtyYear","dirtyDatesArray","datesArray","differenceInCalendarDays","dirtyDateLeft","dirtyDateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","differenceInCalendarMonths","dateLeft","dateRight","yearDiff","differenceInCalendarWeeks","startOfWeekLeft","startOfWeekRight","differenceInCalendarYears","startOfMonth","startOfYear","cleanDate","endOfDay","endOfWeek","endOfMonth","dirtyLeftDate","dirtyRightDate","dateLeftStartOfDay","dateRightStartOfDay","isSameMonth","isSameYear","isSameQuarter","dateLeftStartOfQuarter","dateRightStartOfQuarter","dirtyDateToCompare","dateToCompare","isWithinInterval","dirtyInterval","endTime","patterns","dateTimeDelimiter","timeZoneDelimiter","timezone","dateRegex","timeRegex","timezoneRegex","parseISO","additionalDigits","dateStrings","splitDateString","parseYearResult","parseYear","parseDate","restDateString","parseTime","parseTimezone","dateString","captures","century","isWeekDate","parseDateUnit","dayOfWeek","_year","validateWeekDate","fourthOfJanuaryDay","dayOfISOWeekYear","daysInMonths","isLeapYearIndex","validateDate","validateDayOfYearDate","parseTimeUnit","validateTime","timezoneString","_hours","validateTimezone","isNodeFound","ignoreClass","correspondingElement","passiveEventSupport","handlersMap","enabledInstances","touchEvents","IGNORE_CLASS_NAME","getEventHandlerOptions","handlerOptions","onClickOutsideHOC","__outsideClickHandler","__clickOutsideHandlerProp","getInstance","handleClickOutside","__getComponentNode","setClickOutsideRef","enableOnClickOutside","_uid","testPassiveEventSupport","findHighest","disableOnClickOutside","getRef","instanceRef","wrappedRef","getClass","objectWithoutPropertiesLoose","arrayWithHoles","iterableToArrayLimit","nonIterableRest","_addClass","_removeClass","removeClass","removeClasses","reflowAndAddClass","appearClassName","doneClassName","enterClassName","isStringClassNames","_this$getClassNames6","_hasClass","baseVal","replaceClassName","origClass","classToRemove","_args","handleLifecycle","handleEntering","_len3","_key3","handleEntered","_len4","_key4","handleExit","_len5","_key5","handleExiting","_len6","_key6","_len7","_key7","originalArgs","_child$props","inProp","_React$Children$toArr","mergeChildMappings","nextChildMapping","hasPrev","prevChild","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","LN2","ReactDOM","createClass","DOM","QuillComponent","onChangeSelection","preserveWhitespace","isNotObject","isNotArrayOfString","isNotASingleElement","dirtyProps","isControlled","getInitialState","currentContents","getEditorContents","nextContents","lastDeltaChangeSet","isEqualValue","shouldComponentRegenerate","regenerate","getEditingArea","getEditorConfig","quillDelta","quillSelection","editingArea","getEditorSelection","isDelta","nextValue","renderEditingArea","customElement","defaultElement","nextSelection","currentSelection","hasGainedFocus","hasLostFocus","_assign","emptyObject","_invariant","ReactComponent","injectedMixins","ReactClassInterface","updateComponent","ReactClassStaticInterface","RESERVED_SPEC_KEYS","mixSpecIntoComponent","createMergedResultFunction","mixStaticSpecIntoComponent","autobind","validateMethodOverride","isAlreadyDefined","specPolicy","ReactClassMixin","autoBindPairs","__reactAutoBindPairs","isReactClassMethod","createChainedFunction","mergeIntoWithNoDuplicateKeys","bindAutoBindMethod","IsMountedPreMixin","__isMounted","IsMountedPostMixin","newState","ReactClassComponent","autoBindKey","bindAutoBindMethods","initialState","findIndexFunc","objectTag","objStacked","baseFindIndex","toFinite","remainder","baseSome","ReactDOMServer","defaultColors","defaultItems","QuillToolbar","renderGroup","renderItem","renderChoiceItem","renderChoices","choiceItems","selectedItem","renderButton","renderAction","getClassName","renderToStaticMarkup","listing","suppressContentEditableWarning","suppressHydrationWarning","domNamespace","childIndex","threadID","exhausted","currentSelectValue","previousWasTextNode","makeStaticMarkup","suspenseDepth","contextIndex","contextStack","contextValueStack","clearProviders","pushProvider","popProvider","fallbackFrame","renderDOM","renderToString","renderToNodeStream","renderToStaticNodeStream","defaultTags","attrRegexpCache","getAttrValue","getAttrRegexp","getTagRegexp","anchored","addTags","parserConfig","htmlMode","multilineTagIndentFactor","multilineTagIndentPastTag","allowMissingTagName","configTags","configScript","scriptTypes","htmlState","inTag","tagInfo","tagText","findMatchingMode","endTagA","endTag","localMode","pat","maybeBackup","textAfter","htmlConfig","autoSelfClosers","implicitlyClosed","contextGrabbers","doNotIndent","allowUnquoted","xmlConfig","editorConf","config_","setStyle","inText","inBlock","doctype","tagStart","closure","isInAttribute","inAttribute","stringStartCol","terminator","startOfLine","noIndent","popContext","maybePopContext","nextTagName","parentTagName","tagNameState","closeTagNameState","attrState","matchClosing","closeState","closeStateErr","_stream","attrEqState","attrValueState","attrContinuedState","isInText","baseIndent","fullLine","alignCDATA","tagAfter","grabbers","blockCommentStart","blockCommentEnd","configuration","skipAttribute","xmlCurrentTag","xmlCurrentContext","statementIndent","jsonldMode","jsonld","jsonMode","isTS","typescript","wordRE","wordCharacters","keywords","kw","atom","isOperatorChar","isJsonldKeyword","tp","cont","tokenBase","tokenComment","expressionAllowed","inSet","readRegexp","tokenQuasi","lexical","lastType","maybeEnd","findFatArrow","fatArrowAt","sawSomething","atomicTypes","JSLexical","inScope","localVars","vars","inList","registerVarScoped","Var","globalVars","isModifier","pushcontext","pushblockcontext","popcontext","pushlex","lex","poplex","expect","wanted","vardef","parenExpr","maybeexpression","maybeelse","functiondef","forspec","enumdef","typeexpr","expression","maybelabel","maybeCatchBinding","afterExport","afterImport","funarg","expressionInner","expressionNoComma","noComma","arrowBodyNoComma","arrowBody","commasep","maybeop","maybeoperatorNoComma","maybeoperatorComma","classExpression","arrayLiteral","contCommasep","objprop","quasi","targetNoComma","maybeTypeArgs","maybeTarget","expr","continueQuasi","getterSetter","afterprop","maybetype","what","proceed","maybetypeOrIn","mayberettype","isKW","afterType","typeprop","typearg","maybeReturnType","functiondecl","typeparam","maybeTypeDefault","maybeAssign","vardefCont","eltpattern","proppattern","forspec1","forspec2","classNameAfter","classBody","classfield","maybeFrom","exportField","importSpec","maybeMoreImports","maybeAs","enummember","basecolumn","parseJS","firstChar","isContinuedStatement","doubleIndentSwitch","blockCommentContinue","lineComment","skipExpression","keySet","propertyKeywords","tokenHooks","documentTypes","mediaTypes","mediaFeatures","mediaValueKeywords","nonStandardPropertyKeywords","fontProperties","counterDescriptors","colorKeywords","valueKeywords","allowNested","supportsAtComponent","highlightNonStandardPropertyKeywords","tokenString","tokenParenthesized","pushContext","states","popAndPass","wordAsValue","stateArg","atBlock","documentTypes_","mediaTypes_","mediaFeatures_","mediaValueKeywords_","propertyKeywords_","nonStandardPropertyKeywords_","colorKeywords_","valueKeywords_","allWords","tokenCComment","flattenNames","_isString3","_forOwn3","_isPlainObject3","things","thing","mergeClasses","_cloneDeep3","toMerge","baseClone","CLONE_DEEP_FLAG","baseAssign","baseAssignIn","copySymbols","copySymbolsIn","getAllKeysIn","initCloneArray","initCloneByTag","isSet","cloneableTags","isFlat","isFull","isFunc","subValue","cloneDataView","cloneRegExp","cloneSymbol","dataView","reFlags","baseIsMap","nodeIsMap","baseIsSet","nodeIsSet","autoprefix","_forOwn2","transforms","msBorderRadius","MozBorderRadius","OBorderRadius","WebkitBorderRadius","msBoxShadow","MozBoxShadow","OBoxShadow","WebkitBoxShadow","WebkitTouchCallout","KhtmlUserSelect","MozUserSelect","msUserSelect","WebkitUserSelect","WebkitBoxFlex","MozBoxFlex","WebkitFlex","msFlex","flexBasis","WebkitFlexBasis","WebkitJustifyContent","msTransition","MozTransition","OTransition","WebkitTransition","msTransform","MozTransform","OTransform","WebkitTransform","otherElementStyles","otherStyle","handleMouseOver","handleMouseOut","Active","onMouseUp","setProp","chunks","base1","base10","base11","base12","base13","base2","base3","base4","base5","base6","base7","base8","base9","quoted","quotedEmpty","quotedString","formatters","rowDelimiter","countWriten","containsEscape","containsQuote","containsRowDelimiter","containsdelimiter","ref1","shouldQuote","_isStdio","didOnEnd","Timeout","clearFn","_clearFn","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","runIfPresent","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","messagePrefix","onGlobalMessage","installPostMessageImplementation","installMessageChannelImplementation","onreadystatechange","installReadyStateChangeImplementation","reLeadingDot","arrayProto","isHostObject","_copyToClipboard","_ExecuteButton","_ImagePreview","_ToolbarButton","_ToolbarGroup","_ToolbarMenu","_ToolbarSelect","_QueryEditor","_VariableEditor","_ResultViewer","_DocExplorer","_QueryHistory","_CodeMirrorSizer","_StorageAPI","_getQueryFacts","_getSelectedOperationName","_debounce","_find","_fillLeafs","_elementPosition","_mergeAst","_introspectionQueries","docExplorerOpen","docExplorerComponent","showDocForReference","selectedOperationName","_editorQueryID","queryID","editedQuery","autoCompleteLeafs","handleEditOperationName","isWaitingForResponse","_fetchQuery","formatResult","getQueryEditor","editorContent","prettifiedEditorContent","variableEditor","getVariableEditor","variableEditorContent","prettifiedVariableEditorContent","mergeAst","queryFacts","_updateQueryFacts","onEditQuery","onCopyQuery","prevOperations","updatedOperationName","onEditOperationName","onEditVariables","_onClickHintInformation","_runQueryAtCursor","showDoc","onToggleDocs","onToggleHistory","historyPaneOpen","handleEditQuery","handleEditVariables","downEvent","_didClickDragBar","getLeft","moveEvent","editorBar","editorBarComponent","leftSize","rightSize","editorFlex","hadWidth","docExplorerWidth","cursorPos","docsSize","didMove","wasOpen","variableEditorOpen","hadHeight","variableEditorHeight","getTop","topSize","bottomSize","fetcher","_storage","storage","_query","defaultQuery","_queryFacts","_operationName","defaultVariableEditorOpen","_fetchSchema","codeMirrorSizer","nextSchema","nextQuery","nextVariables","nextOperationName","nextResponse","updatedQueryAttributes","updateSizes","queryEditorComponent","variableEditorComponent","resultComponent","logo","Logo","ToolbarButton","handlePrettifyQuery","handleMergeQuery","handleCopyQuery","handleToggleHistory","Footer","queryWrapStyle","docWrapStyle","docExplorerWrapClasses","historyPaneStyle","variableOpen","variableStyle","QueryHistory","onSelectQuery","handleSelectHistoryQuery","ExecuteButton","isRunning","onRun","handleRunQuery","onStop","handleStopQuery","handleToggleDocs","onDoubleClick","handleResetResize","handleResizeStart","QueryEditor","onEdit","handleHintInformationRender","onClickReference","handleClickReference","onPrettifyQuery","onMergeQuery","onRunQuery","handleEditorRunQuery","editorTheme","handleVariableResizeStart","VariableEditor","variableToType","ResultViewer","ResultsTooltip","ImagePreview","handleDocsResetResize","handleDocsResizeStart","DocExplorer","getCodeMirror","fillLeafs","getDefaultFieldNames","insertions","newCursorIndex","observableToPromise","introspectionQueryName","fetch2","introspectionQuerySansSubscriptions","responseString","jsonVariables","resultWindow","getItem","ToolbarGroup","ToolbarMenu","MenuItem","ToolbarMenuItem","ToolbarSelect","SelectOption","ToolbarSelectOption","formatSingleError","deselectCurrent","clipboardToIE11Formatting","reselectPrevious","success","clip","webkitUserSelect","selectNodeContents","copyKey","removeRange","optionsOpen","initialPress","downTarget","upEvent","_onOptionSelected","_onClick","_onOptionsOpen","pathJSX","tokenToURL","URL","isImageURL","_updateMetadata","onLoad","naturalWidth","naturalHeight","_subscribe","_release","handleOpen","_listener","selectedChild","optionChildren","onChildSelect","points","_markdownIt","_normalizeWhitespace","_onHasCompletion","_commonKeys","AUTO_COMPLETE_AFTER_KEY","ignoreChangeEvent","autoCloseBrackets","minFoldSize","renderDescription","_onEdit","_onKeyUp","_onBeforeChange","normalizeWhitespace","utils","Renderer","ParserCore","ParserBlock","ParserInline","LinkifyIt","zero","commonmark","BAD_PROTO_RE","GOOD_DATA_RE","validateLink","RECODE_HOSTNAME_FOR","normalizeLink","normalizeLinkText","toUnicode","MarkdownIt","presetName","renderer","linkify","configure","presets","ruler","rules2","ruler2","parseInline","inlineMode","renderInline","encodeCache","exclude","keepEscaped","nextCode","defaultChars","getEncodeCache","componentChars","decodeCache","getDecodeCache","b1","b2","b3","b4","chr","Any","parseLinkLabel","parseLinkDestination","parseLinkTitle","disableNested","prevPos","labelEnd","posMax","skipToken","default_rules","code_inline","slf","renderAttrs","code_block","fence","tmpAttrs","tmpToken","langName","langPrefix","renderInlineAsText","renderToken","hardbreak","xhtmlOut","softbreak","breaks","html_block","html_inline","nextToken","needLf","_rules","Core","NEWLINES_RE","NULL_RE","isLinkClose","ln","htmlLinkLevel","fullUrl","urlText","blockTokens","pretest","RARE_RE","SCOPED_ABBR_TEST_RE","SCOPED_ABBR_RE","SCOPED_ABBR","tm","replaceFn","replace_scoped","inlineTokens","inside_autolink","replace_rare","blkIdx","typographer","QUOTE_TEST_RE","QUOTE_RE","replaceAt","process_inlines","thisLevel","nextChar","isLastPunctChar","isNextPunctChar","isLastWhiteSpace","isNextWhiteSpace","canOpen","canClose","isSingle","openQuote","closeQuote","OUTER","quotes","StateCore","hasEmptyLines","maxNesting","skipEmptyLines","sCount","blkIndent","tight","outTokens","lineMax","bMarks","eMarks","escapedSplit","escapes","backTicked","lastBackTick","aligns","tableLines","tbodyLines","tShift","mem","haveEndMarker","skipChars","skipSpaces","adjustTab","lastLineEmpty","oldBMarks","oldBSCount","oldIndent","oldParentType","oldSCount","oldTShift","spaceAfterMarker","terminate","terminatorRules","wasOutdented","oldLineMax","bsCount","cnt","skipBulletListMarker","skipOrderedListMarker","contentStart","indentAfterMarker","isOrdered","itemLines","listLines","listTokIdx","markerCharCode","markerValue","oldListIndent","oldTight","posAfterMarker","prevEmptyEnd","isTerminatingParagraph","listIndent","markTightParagraphs","_endLine","destEndPos","destEndLineNo","references","skipSpacesBack","skipCharsBack","block_names","HTML_SEQUENCES","StateBlock","indent_found","ddIndent","keepLastLF","lineIndent","_rules2","pushPending","isTerminatorChar","pmax","ESCAPED","matchStart","matchEnd","labelStart","parseReference","EMAIL_RE","AUTOLINK_RE","linkMatch","emailMatch","isLetter","DIGITAL_RE","NAMED_RE","processDelimiters","closerIdx","openerIdx","closer","opener","minOpenerIdx","newMinOpenerIdx","isOddMatch","lastJump","openersBottom","StateInline","pendingLevel","_prev_delimiters","token_meta","canSplitWord","left_flanking","right_flanking","fuzzyLink","fuzzyEmail","fuzzyIP","defaultSchemas","src_auth","src_host_port_strict","src_path","no_http","src_domain","src_domain_root","src_port","src_host_terminator","mailto","src_email_name","src_host_strict","tlds_default","__opts__","tlds","__tlds__","untpl","tpl","src_tlds","onCompile","__tlds_replaced__","src_xn","email_fuzzy","tpl_email_fuzzy","link_fuzzy","tpl_link_fuzzy","link_no_ip_fuzzy","tpl_link_no_ip_fuzzy","host_fuzzy_test","tpl_host_fuzzy_test","schemaError","__compiled__","__schemas__","compiled","createValidator","slist","schema_test","src_ZPCc","schema_search","__index__","__text_cache__","resetScanCache","Match","__last_index__","__schema__","createMatch","schemas","ml","tld_pos","testSchemaAt","keepOld","src_Any","src_Cc","src_Z","src_P","src_ZCc","src_pseudo_letter","src_ip4","src_host","tpl_host_fuzzy","tpl_host_no_ip_fuzzy","tpl_host_fuzzy_strict","tpl_host_port_fuzzy_strict","tpl_host_port_no_ip_fuzzy_strict","sanitizeRegex","invalidCharacters","noOptions","nonWS","useInnerComments","minLine","uncomment","commentString","blankLines","commentBlankLines","baseString","fullLines","blockComment","startString","lastLineHasText","lead","blockCommentLead","atCursor","didSomething","lineString","insideStart","insideEnd","lastStart","firstEnd","almostLastStart","foundEnd","finder","allowFolded","cleared","myWidget","makeWidget","myRange","newFoldFunction","rangeFinder","toggleFold","unfold","foldAll","unfoldAll","scanUp","editorOptions","foldOptions","_graphqlLanguageServiceInterface","rawResults","getAutocompleteSuggestions","tokenStart","SEVERITY","getDiagnostics","_getTypeInfo","_SchemaReference","renderQualifiedField","into","renderDirective","renderTypeAnnotation","descriptionDiv","deprecationDiv","renderDeprecation","renderField","renderArg","renderEnumValue","isHoldingModifier","enableJumpMode","disableJumpMode","isMac","clickEvent","destination","oldOnMouseOut","appVersion","getDestination","_graphqlLanguageServiceParser","indentLevel","onlineParser","eatWhitespace","isIgnored","lexRules","LexRules","parseRules","ParseRules","editorConfig","thisValue","_hintList","getTypeInfo","variableNames","namedInputType","getVariablesHint","filterNonEmpty","filtered","normalizeText","getProximity","suggestion","proximity","filterAndSortList","_jsonParse","lintError","mapCat","variablesAST","members","member","validateValue","providedFields","fieldErrors","validateVariables","lastEnd","parseObj","nodeStart","parseMember","curToken","parseVal","parseArr","readHex","Punctuation","namedKey","NumberValue","tooltipDiv","infoElements","shouldRender","viewer","_FieldDoc","_SchemaDoc","_SearchBox","_SearchResults","_TypeDoc","initialNav","navStack","typeOrField","showSearch","navItem","searchValue","withinType","handleClickTypeOrField","onClickField","prevName","shouldSearchBoxAppear","handleNavBackClick","onSearch","handleSearch","topNav","_Argument","_MarkdownContent","FieldDoc","argsDef","SchemaDoc","SearchBox","debouncedOnSearch","handleClear","SearchResults","matchedWithin","matchedTypes","matchedFields","isMatch","matchingArgs","sourceText","normalCompletion","didErr","_e2","TypeDoc","showDeprecated","typesTitle","typesDef","fieldsDef","deprecatedFieldsDef","valuesDef","deprecatedValuesDef","subtype","deprecatedFields","handleShowDeprecated","deprecatedValues","_QueryStore","_HistoryQuery","favorite","favoriteStore","historyStore","historyQueries","fetchAll","favoriteQueries","lastQuerySaved","shouldSaveQuery","fetchRecent","queryNodes","handleEditLabel","editLabel","handleToggleFavorite","toggleFavorite","attempts","isQuotaError","HistoryQuery","editable","starIcon","editField","handleFieldBlur","handleFieldKeyDown","handleEditClick","handleStarClick","favoriteSize","CodeMirrorSizer","getClientHeight","StorageAPI","quotaError","DOMException","documentStr","collectVariables","prevSelectedOperationName","docString","fieldNameFn","defaultGetDefaultFieldNames","buildSelectionSet","indentStart","indentEnd","getIndentation","withInsertions","leafFieldNames","edited","initialElem","queryAst","_kinds","copyFragment","copyAst","resolveDefinition","support","viewClasses","isArrayBufferView","normalizeName","iteratorFor","Headers","consumed","bodyUsed","fileReaderReady","readBlobAsArrayBuffer","blob","readAsArrayBuffer","bufferClone","Body","_initBody","_bodyInit","_bodyText","_bodyBlob","_bodyFormData","URLSearchParams","_bodyArrayBuffer","isConsumed","readBlobAsText","readArrayBufferAsText","formData","Request","upcased","normalizeMethod","referrer","reParamSearch","parseHeaders","rawHeaders","Response","bodyInit","statusText","redirectStatuses","redirect","aborted","abortXhr","getAllResponseHeaders","responseURL","responseText","ontimeout","onabort","fixUrl","readyState","normalizeArray","allowAboveRoot","resolvedPath","resolvedAbsolute","trailingSlash","samePartsLength","outputParts","dirname","hasRoot","matchedSlash","extname","startDot","startPart","preDotState","endianness","loadavg","uptime","freemem","totalmem","cpus","networkInterfaces","getNetworkInterfaces","arch","tmpdir","tmpDir","EOL","dirtyObject","setUTCDay","dirtyDay","currentDay","dayIndex","numericPatterns","timezonePatterns","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","parsers","incompatibleTokens","isTwoDigitYear","normalizedTwoDigitYear","_match","_flags","firstWeekOfYear","setUTCMonth","dirtyWeek","setUTCWeek","dirtyISOWeek","setUTCISOWeek","subPriority","wholeWeekDays","setUTCISODay","setUTCSeconds","setUTCMilliseconds","timestampIsSet","_token","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","notWhitespaceRegExp","unescapedLatinCharacterRegExp","dirtyDateString","dirtyFormatString","dirtyReferenceDate","formatString","defaultLocale","subFnOptions","setters","dateToSystemTimezone","firstCharacter","longFormatter","usedTokens","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","incompatibleToken","usedToken","fullToken","cleanEscapedString","uniquePrioritySetters","setterArray","utcDate","convertedDate","addLeadingZeros","signedYear","dayPeriodEnumValue","numberOfDigits","dayPeriodEnum","formatTimezoneShort","dirtyDelimiter","absOffset","formatTimezoneWithOptionalMinutes","formatTimezone","lightFormatters","signedWeekYear","startOfYearTimestamp","difference","getUTCDayOfYear","localDayOfWeek","isoDayOfWeek","_localize","timezoneOffset","_originalDate","originalDate","dirtyFormatStr","formatStr","formatterOptions","addFile","storedPaths","getWeekYear","startOfWeekYear","getWeek","dateTimestampSource","nowSeconds","platformPerformance","getNodePerformance","timeOrigin","getBrowserPerformance","timestampSource","dateTimestampInSeconds","_stack","getStackTop","bindClient","isOlderThan","setupIntegrations","pushScope","getScope","getStack","getClient","popScope","withScope","captureException","eventId","_lastEventId","finalHint","syntheticException","originalException","_invokeClient","captureMessage","captureEvent","lastEventId","beforeBreadcrumb","finalBreadcrumb","configureScope","oldHub","makeMain","getIntegration","integration","startSpan","_callExtensionMethod","startTransaction","customSamplingContext","traceHeaders","captureSession","endSession","_sendSessionUpdate","startSession","environment","currentSession","Ok","Exited","carrier","getMainCarrier","sentry","hub","registry","getHubFromCarrier","setHubOnCarrier","getCurrentHub","hasHubOnCarrier","activeDomain","registryHubTopStack","getHubFromActiveDomain","navigationStart","pill","Badge","SessionStatus","memoizeWith","mFn","nth","_path","inverse","Card","CardBody","a11y","isOpen","addonType","inNavbar","setActiveFromChild","preventDefaultKeys","Dropdown","addEvents","handleDocumentClick","removeEvents","getContextValue","dropup","handleProps","getMenuCtrl","_$menuCtrl","getMenuItems","$menuitems","_$menuitems","_$menuitems3","charPressed","_classNames","_omit","subItemIsActive","dropdownItem","dropdown","DropdownToggle","noFlipModifier","directionPositionMap","DropdownMenu","poperPlacement","poperModifiers","popperPositionFixed","combinedStyle","DropdownItem","rowColsPropType","noGutters","sm","xl","widths","Row","colClasses","colWidth","colSize","isXs","stringOrNumberProp","columnProps","getColumnSizeClass","Col","columnProp","colSizeInterfix","colClass","_colClass","bsSize","plaintext","addon","checkInput","isNotaNumber","formControlClass","row","FormGroup","always","FormFeedback","validMode","FormText","fromPairs","Form","assoc","ModalBody","ModalFooter","bordered","borderless","striped","dark","responsive","responsiveTag","Table","ResponsiveTag","responsiveClassName","tabs","pills","horizontal","justified","navbar","Nav","getVerticalClass","NavItem","activeTab","TabContent","activeTabId","tabId","TabPane","getClasses","CardText","CardFooter","wrapTag","closeAriaLabel","ModalHeader","closeButton","WrapTag","closeIcon","closeClassName","fade","Alert","closeClasses","alertTransition","CardTitle","isNil","InputGroup","InputGroupAddon","defaultMapPropsToOptions","defaultMapPropsToSkip","getDisplayName","calculateVariablesFromProps","variableProp","setWrappedInstance","operationOptions","mapPropsToOptions","graphQLDisplayName","GraphQL","ownProps","GraphQLBase","withMutation","lastResultProps","mapPropsToSkip","resubscribe","componentDidUpate","shouldSkip","withSubscription","withQuery","findDeprecatedUsages","enumVal","originalFunctionToString","FunctionToString","setupOnce","DEFAULT_IGNORE_ERRORS","InboundFilters","clientOptions","_mergeOptions","_shouldDropEvent","_isSentryError","_isIgnoredError","_isDeniedUrl","_getEventFilterUrl","_isAllowedUrl","ignoreInternal","_getPossibleEventMessages","denyUrls","allowUrls","whitelistUrls","blacklistUrls","stacktrace","frames","filename","supportsFetch","isNativeFetch","supportsReferrerPolicy","referrerPolicy","lastHref","instrumented","instrument","originalConsoleLevel","triggerHandlers","instrumentConsole","triggerDOMHandler","globalDOMEventHandler","makeDOMEventHandler","originalAddEventListener","__sentry_instrumentation_handlers__","handlerForType","refCount","originalRemoveEventListener","instrumentDOM","requestKeys","requestValues","xhrproto","originalOpen","__sentry_xhr__","__sentry_own_request__","onreadystatechangeHandler","status_code","requestPos","endTimestamp","startTimestamp","readyStateArgs","originalSend","instrumentXHR","sandbox","supportsNativeFetch","originalFetch","handlerData","getFetchMethod","getFetchUrl","instrumentFetch","isChromePackagedApp","hasHistoryApi","oldOnPopState","onpopstate","historyReplacementFunction","originalHistoryFunction","instrumentHistory","_oldOnErrorHandler","_oldOnUnhandledRejectionHandler","addInstrumentationHandler","fetchArgs","debounceTimerID","lastCapturedEvent","globalListener","isContentEditable","shouldSkipDOMEvent","shouldShortcircuitPreviousDebounce","DSN_REGEX","_fromString","_fromComponents","_validate","withPassword","projectId","publicKey","projectMatch","installedIntegrations","integrations","defaultIntegrations","userIntegrations","defaultIntegration","userIntegration","integrationsNames","getIntegrationsToSetup","setupIntegration","Status","backendClass","_integrations","_processing","_backend","dsn","_dsn","_process","_getBackend","eventFromException","_captureEvent","promisedEvent","eventFromMessage","_sendSession","getDsn","_isClientProcessing","getTransport","transportFlushed","_isEnabled","_updateSessionFromEvent","crashed","errored","exceptions","Crashed","sendSession","ticked","_prepareEvent","normalizeDepth","_applyClientOptions","_applyIntegrationsMetadata","finalScope","_normalizeEvent","maxValueLength","sdkInfo","sdk","integrationsArray","_sendEvent","sendEvent","_processEvent","finalEvent","beforeSend","sampleRate","isTransaction","__sentry__","beforeSendResult","processedEvent","fromHttpCode","Success","RateLimit","Invalid","Failed","Unknown","Severity","Skipped","_transport","_setupTransport","_exception","_hint","Debug","Info","Fatal","Critical","Log","winjs","geckoEval","chromeEval","reactMinifiedRegexp","computeStackTrace","popSize","opera10Regex","opera11Regex","extractMessage","computeStackTraceFromStacktraceProp","popFrames","submatch","isNative","columnNumber","computeStackTraceFromStackProp","exceptionFromStacktrace","prepareFramesForEvent","eventFromStacktrace","localStack","firstFrameFunction","lastFrameFunction","frame","function","in_app","lineno","eventFromUnknownInput","domException","eventFromString","rejection","__serialized__","eventFromPlainObject","synthetic","attachStacktrace","getSdkMetadataForEnvelopeHeader","api","enhanceEventWithSdkInfo","packages","sessionToSentryRequest","sent_at","getEnvelopeEndpointWithUrlEncodedAuth","eventToSentryRequest","useEnvelope","transactionSampling","rate","debug_meta","req","getStoreEndpointWithUrlEncodedAuth","envelope","sample_rates","samplingMethod","_dsnObject","getBaseApiEndpoint","getStoreEndpoint","_getIngestEndpoint","_encodedAuth","_getEnvelopeEndpoint","getStoreEndpointPath","getRequestHeaders","clientName","clientVersion","getReportDialogEndpoint","dialogOptions","endpoint","encodedOptions","sentry_key","sentry_version","_limit","_buffer","drain","capturedSetTimeout","CATEGORY_MAPPING","_rateLimits","_api","_metadata","_handleResponse","requestType","_handleRateLimit","_disabledUntil","_isRateLimited","rlHeader","raHeader","fetchImpl","getNativeFetchImplementation","_fetch","_sendRequest","sentryRequest","originalPayload","fetchParameters","getResponseHeader","transportOptions","ignoreOnError","shouldIgnoreOnError","ignoreNextOnError","__sentry_wrapped__","sentryWrapped","wrappedArguments","handleEvent","injectReportDialog","Breadcrumbs","dom","addSentryBreadcrumb","_consoleBreadcrumb","_domBreadcrumb","_xhrBreadcrumb","_fetchBreadcrumb","_historyBreadcrumb","parsedLoc","parsedFrom","parsedTo","showReportDialog","DEFAULT_EVENT_TARGET","TryCatch","eventTarget","_wrapTimeFunction","_wrapRAF","_wrapXHR","_wrapEventTarget","originalCallback","wrappedEventHandler","originalEventHandler","xmlHttpRequestProps","wrapOptions","GlobalHandlers","_onErrorHandlerInstalled","_onUnhandledRejectionHandlerInstalled","stackTraceLimit","_installGlobalOnErrorHandler","_installGlobalOnUnhandledRejectionHandler","currentHub","hasIntegration","isFailedOwnDelivery","_eventFromIncompleteOnError","_enhanceEventWithInitialFrame","_eventFromRejectionWithPrimitive","LinkedErrors","_handler","linkedErrors","_walkErrorTree","UserAgent","Referer","SENTRY_RELEASE","autoSessionTracking","initAndBind","startSessionTracking","_concat","set1","set2","len1","_arrayFromIterator","_includesWith","_uniqContentEquals","bIterator","stackA","stackB","_equals","aItem","_objectIs","_functionName","keysA","extendedStackA","extendedStackB","_includes","inf","_indexOf","hasOrAdd","shouldAdd","prevSize","_items","_nativeSet","bIdx","_Set","uniq","appliedItem","uniqBy","defaultNode","renderPortal","portal","Portalv4","LegacyPortal","XFilter","_xfilter","filterable","_filter","placementPrefix","arrowClassName","hideArrow","fallbackPlacement","onClosed","PopperContent","setTargetNode","getTargetNode","_element","getContainerNode","_arrowClassName","_popperClassName","extendedModifiers","popperTransition","ReactPopper","innerClassName","autohide","DEFAULT_DELAYS","isInDOMSubtree","subtreeRoot","isInDOMSubtrees","subtreeRoots","subTreeRoot","TooltipPopoverWrapper","_targets","currentTargetElement","addTargetEvents","removeTargetEvents","showWithDelay","hideWithDelay","onMouseOverTooltipContent","onMouseLeaveTooltipContent","onEscKeyDown","_isMounted","updateTarget","clearShowTimeout","clearHideTimeout","_hideTimeout","_showTimeout","getDelay","_popover","composedPath","triggers","addEventOnTargets","isBubble","removeEventOnTargets","newTarget","popperClasses","XReduceBy","valueFn","valueAcc","_xreduceBy","countBy","reduceBy","FadePropTypes","centered","scrollable","labelledBy","backdrop","onOpened","wrapClassName","modalClassName","backdropClassName","contentClassName","external","backdropTransition","modalTransition","unmountOnClose","returnFocusAfterClose","propsToOmit","_originalBodyPadding","getFocusableChildren","handleBackdropClick","handleBackdropMouseDown","handleEscape","handleStaticBackdropAnimation","handleTab","manageFocusAfterClose","clearBackdropAnimationTimeout","showStaticBackdropAnimation","isAppearing","_dialog","getFocusedChild","currentFocus","focusableChildren","_mouseDownElement","totalFocusable","_backdropAnimationTimeout","_triggeringElement","_mountContainer","openCount","modalOpenClassName","modalOpenClassNameRegex","renderModalDialog","dialogBaseClass","isModalHidden","modalAttributes","hasTransition","Backdrop","_isNumber","_makeFlat","flatt","jlen","ilen","cond"],"mappings":"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,SAAY,GACV,YACA,0BAFF,CAAY,MAAU,KA6DtB,SAAY,GACV,kBACA,4BACA,6BACA,kBAJF,CAAY,MAAgB,KAQ5B,SAAY,GACV,4BACA,oBACA,YACA,yBACA,wBACA,cACA,4BACA,4BARF,CAAY,MAAc,KA+F1B,SAAY,GACV,cACA,kCAFF,CAAY,MAAuB,KAmHnC,SAAY,GACV,kCACA,kBACA,+BACA,mCAJF,CAAY,MAAiB,KA6D7B,SAAY,GACV,4BACA,4BACA,kBAHF,CAAY,MAAkB,KAgF9B,SAAY,GACV,YACA,YACA,YAHF,CAAY,MAAY,KAOxB,SAAY,GACV,gBACA,gBACA,wBACA,sBACA,kCACA,+CANF,CAAY,MAAe,KAsX3B,SAAY,GACV,kBACA,kBACA,gBAHF,CAAY,MAAa,KAyIzB,SAAY,GACV,cACA,cAFF,CAAY,MAAkB,KA2C9B,SAAY,GACV,4BACA,oBACA,WACA,qCACA,oBACA,sBACA,qCACA,wBACA,sBACA,sBACA,uBACA,yBACA,0BACA,wBACA,gBACA,uCACA,+CACA,sBACA,sBACA,mCACA,0BACA,gBACA,gDACA,0BACA,gDACA,4BACA,wBACA,sBACA,6BACA,wDACA,wCACA,+BACA,2BACA,6BACA,mDACA,qDACA,8CACA,iCACA,wBACA,+CACA,4CACA,4BACA,iDACA,8BACA,uCA7CF,CAAY,MAAe,KAkI3B,SAAY,GACV,cACA,oBACA,iCACA,cAJF,CAAY,MAAwB,KAoLpC,SAAY,GACV,gBACA,wBACA,4BACA,oBAJF,CAAY,MAAoB,KAQhC,SAAY,GACV,wBADF,CAAY,MAAwB,KA+IpC,SAAY,GACV,cACA,gCACA,8BACA,wCACA,kBALF,CAAY,MAAoB,KAqchC,SAAY,GACV,cACA,oBAFF,CAAY,MAAW,KA+GvB,SAAY,GACV,gBACA,0BACA,0BAHF,CAAY,MAAQ,KAOpB,SAAY,GACV,gBACA,gBACA,gBAHF,CAAY,MAAQ,KAsDpB,SAAY,GACV,2BACA,qCACA,2CACA,mCACA,uBALF,CAAY,QAAgB,KAwI5B,SAAY,GAEV,2BAEA,iCAEA,0BAEA,oBAEA,oBAEA,wDAEA,iDAdF,CAAY,QAAyB,KAqDrC,SAAY,GACV,yCACA,2BAFF,CAAY,QAAa,KAOzB,SAAY,GACV,yBACA,2BACA,iCACA,mCACA,iCACA,mCACA,iCACA,mCACA,yBACA,2BAVF,CAAY,QAAkB,KAc9B,SAAY,GACV,cACA,YACA,YACA,4CACA,YACA,wCACA,gCAPF,CAAY,QAAiB,KAqR7B,SAAY,GACV,oCACA,4BAFF,CAAY,QAAe,KA4K3B,SAAY,GACV,oBACA,wBAFF,CAAY,QAAY,KAWxB,SAAY,GACV,cACA,yBACA,cACA,mBACA,2BACA,2BACA,2BACA,yCACA,6BACA,cACA,iCACA,yBACA,oCACA,mCACA,yBAfF,CAAY,QAAS,KAknCrB,SAAY,GACV,oBADF,CAAY,QAAsB,KA2KlC,SAAY,GACV,YACA,iBACA,yBACA,uCACA,uBALF,CAAY,QAAU,KAStB,SAAY,GACV,cACA,gBACA,2CACA,wBACA,kBACA,oBANF,CAAY,QAAU,KA8CtB,SAAY,GACV,kBACA,gBACA,yBACA,kBACA,wBACA,gBANF,CAAY,QAAmB,KAS/B,SAAY,GACV,4BACA,0CACA,wBACA,wBACA,gBACA,gCACA,4CACA,sCACA,4BACA,kBACA,0BACA,kBACA,gBACA,kCACA,wBACA,oCACA,oBACA,8BACA,8CACA,8BACA,8BACA,4BACA,oBACA,oBACA,kBACA,4CACA,sCACA,8BACA,4BACA,0BACA,cACA,wCACA,wBACA,kDACA,4BACA,kCACA,gCACA,cACA,wBACA,sDACA,0BACA,oCACA,8BACA,wBACA,sBACA,0CACA,oCACA,gCACA,gBACA,cACA,8BACA,0BACA,0BACA,oCACA,kDACA,gCACA,wBACA,kBACA,kCACA,sBACA,4BACA,gBACA,gCACA,sBACA,gCACA,oBACA,gCACA,cACA,YACA,sBACA,cACA,oCACA,sBACA,kDACA,kBA3EF,CAAY,QAAuB,KAqMnC,SAAY,GACV,0BACA,kBACA,6BAHF,CAAY,QAAY,KAuExB,SAAY,GACV,cACA,wBACA,gCACA,yCACA,oDACA,gEACA,4DAPF,CAA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,QAAmB,KAuJ/B,SAAY,GACV,cACA,cAFF,CAAY,QAAc,KA2C1B,SAAY,GACV,sDACA,2CACA,6BACA,qDACA,oBACA,gDACA,gBACA,+CACA,qCACA,iCACA,2BACA,0CACA,wCACA,yCACA,2CACA,iCACA,uCACA,wCACA,qCAnBF,CAAY,QAAW,KAuBvB,SAAY,GACV,kBACA,sBACA,sBAHF,CAAY,QAAU,KA8DtB,SAAY,GACV,cACA,oBACA,kBACA,wBACA,4BACA,oBANF,CAAY,QAAwB,KAcpC,SAAY,GACV,oBACA,0BAFF,CAAY,QAAW,KAKvB,SAAY,GACV,YACA,YACA,cACA,oBACA,kCACA,4BACA,0BAPF,CAAY,QAAU,KA6ItB,SAAY,GACV,0BACA,sBACA,oDACA,6CAJF,CAAY,QAAmB,KAuS/B,SAAY,GACV,oBACA,cACA,sBACA,8BACA,oBACA,4BANF,CAAY,QAAkB,KAyJ9B,SAAY,GACV,sBACA,kBAFF,CAAY,QAA0B,KAsBtC,SAAY,GACV,wBACA,sBACA,gBACA,kBACA,cACA,wBACA,wBAPF,CAAY,QAAW,KA0BvB,SAAY,GACV,sBACA,sBACA,sBACA,gBACA,kCACA,4BACA,0BACA,oBACA,sBATF,CAAY,QAAQ,KAapB,SAAY,GACV,6BACA,iCACA,kBACA,sBACA,oBALF,CAAY,QAAU,KAStB,SAAY,GACV,gCACA,qDACA,6CACA,2CACA,sCACA,mDACA,kCACA,uDACA,+CACA,6CACA,wCACA,qDAZF,CAAY,QAAmB,KAgB/B,SAAY,GACV,+BACA,uBACA,+BACA,yBAJF,CAAY,QAAc,KAO1B,SAAY,GACV,sBACA,cACA,kBACA,sBACA,mBACA,2BACA,4CAPF,CAAY,QAAc,KA8K1B,SAAY,GACV,sBACA,wBACA,uCACA,iCACA,yCACA,uCANF,CAAY,QAAc,KAS1B,SAAY,GACV,cACA,wBACA,kCACA,gCAJF,CAAY,QAAa,KAiEzB,SAAY,GACV,oBACA,wBACA,YACA,cACA,4CACA,wBACA,wBAPF,CAAY,QAAgB,KAW5B,SAAY,GACV,sBACA,oBACA,sBACA,0BACA,oBALF,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FACR,CACDxnI,KAAM,IACNwnI,QAAS,mFACR,CACDxnI,KAAM,IACNwnI,QAAS,+GACR,CACDxnI,KAAM,IACNwnI,QAAS,6BACR,CACDxnI,KAAM,IACNwnI,QAAS,mFACR,CACDxnI,KAAM,IACNwnI,QAAS,2GACR,CACDxnI,KAAM,KACNwnI,QAAS,UACR,CACDxnI,KAAM,KACNwnI,QAAS,UACR,CACDxnI,KAAM,IACNwnI,QAAS,+CACR,CACDxnI,KAAM,IACNwnI,QAAS,6FACR,CACDxnI,KAAM,KACNwnI,QAAS,UACR,CACDxnI,KAAM,KACNwnI,QAAS,UACR,CACDxnI,KAAM,IACNwnI,QAAS,qPACR,CACDxnI,KAAM,KACNwnI,QAAS,UACR,CACDxnI,KAAM,KACNwnI,QAAS,UACR,CACDxnI,KAAM,KACNwnI,QAAS,UACR,CACDxnI,KAAM,IACNwnI,QAAS,2DACR,CACDxnI,KAAM,IACNwnI,QAAS,mCACR,CACDxnI,KAAM,IACNwnI,QAAS,qGACR,CACDxnI,KAAM,IACNwnI,QAAS,qGACR,CACDxnI,KAAM,IACNwnI,QAAS,yFACR,CACDxnI,KAAM,KACNwnI,QAAS,UACR,CACDxnI,KAAM,IACNwnI,QAAS,mMACR,CACDxnI,KAAM,IACNwnI,QAAS,+CACR,CACDxnI,KAAM,KACNwnI,QAAS,UACR,CACDxnI,KAAM,IACNwnI,QAAS,2DACR,CACDxnI,KAAM,IACNwnI,QAAS,6BACR,CACDxnI,KAAM,IACNwnI,QAAS,uFACR,CACDxnI,KAAM,IACNwnI,QAAS,mFACR,CACDxnI,KAAM,IACNwnI,QAAS,qMACR,CACDxnI,KAAM,KACNwnI,QAAS,UACR,CACDxnI,KAAM,KACNwnI,QAAS,oBACR,CACDxnI,KAAM,KACNwnI,QAAS,UACR,CACDxnI,KAAM,KACNwnI,QAAS,UACR,CACDxnI,KAAM,KACNwnI,QAAS,gBACR,CACDxnI,KAAM,KACNwnI,QAAS,UACR,CACDxnI,KAAM,IACNwnI,QAAS,qDACR,CACDxnI,KAAM,IACNwnI,QAAS,2EACR,CACDxnI,KAAM,IACNwnI,QAA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","file":"static/js/2.65a2f955.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","export default function _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","/**\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","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\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 __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !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","/**\n * Returns the first argument it receives.\n */\nexport default function identityFunc(x) {\n return x;\n}\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport objectEntries from '../polyfills/objectEntries';\nimport inspect from '../jsutils/inspect';\nimport keyMap from '../jsutils/keyMap';\nimport mapValue from '../jsutils/mapValue';\nimport toObjMap from '../jsutils/toObjMap';\nimport devAssert from '../jsutils/devAssert';\nimport keyValMap from '../jsutils/keyValMap';\nimport instanceOf from '../jsutils/instanceOf';\nimport isObjectLike from '../jsutils/isObjectLike';\nimport identityFunc from '../jsutils/identityFunc';\nimport defineToJSON from '../jsutils/defineToJSON';\nimport defineToStringTag from '../jsutils/defineToStringTag';\nimport { Kind } from '../language/kinds';\nimport { valueFromASTUntyped } from '../utilities/valueFromASTUntyped';\nexport function isType(type) {\n return isScalarType(type) || isObjectType(type) || isInterfaceType(type) || isUnionType(type) || isEnumType(type) || isInputObjectType(type) || isListType(type) || isNonNullType(type);\n}\nexport function assertType(type) {\n if (!isType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL type.\"));\n }\n\n return type;\n}\n/**\n * There are predicates for each kind of GraphQL type.\n */\n\n// eslint-disable-next-line no-redeclare\nexport function isScalarType(type) {\n return instanceOf(type, GraphQLScalarType);\n}\nexport function assertScalarType(type) {\n if (!isScalarType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL Scalar type.\"));\n }\n\n return type;\n}\n// eslint-disable-next-line no-redeclare\nexport function isObjectType(type) {\n return instanceOf(type, GraphQLObjectType);\n}\nexport function assertObjectType(type) {\n if (!isObjectType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL Object type.\"));\n }\n\n return type;\n}\n// eslint-disable-next-line no-redeclare\nexport function isInterfaceType(type) {\n return instanceOf(type, GraphQLInterfaceType);\n}\nexport function assertInterfaceType(type) {\n if (!isInterfaceType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL Interface type.\"));\n }\n\n return type;\n}\n// eslint-disable-next-line no-redeclare\nexport function isUnionType(type) {\n return instanceOf(type, GraphQLUnionType);\n}\nexport function assertUnionType(type) {\n if (!isUnionType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL Union type.\"));\n }\n\n return type;\n}\n// eslint-disable-next-line no-redeclare\nexport function isEnumType(type) {\n return instanceOf(type, GraphQLEnumType);\n}\nexport function assertEnumType(type) {\n if (!isEnumType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL Enum type.\"));\n }\n\n return type;\n}\n// eslint-disable-next-line no-redeclare\nexport function isInputObjectType(type) {\n return instanceOf(type, GraphQLInputObjectType);\n}\nexport function assertInputObjectType(type) {\n if (!isInputObjectType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL Input Object type.\"));\n }\n\n return type;\n}\n// eslint-disable-next-line no-redeclare\nexport function isListType(type) {\n return instanceOf(type, GraphQLList);\n}\nexport function assertListType(type) {\n if (!isListType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL List type.\"));\n }\n\n return type;\n}\n// eslint-disable-next-line no-redeclare\nexport function isNonNullType(type) {\n return instanceOf(type, GraphQLNonNull);\n}\nexport function assertNonNullType(type) {\n if (!isNonNullType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL Non-Null type.\"));\n }\n\n return type;\n}\n/**\n * These types may be used as input types for arguments and directives.\n */\n\nexport function isInputType(type) {\n return isScalarType(type) || isEnumType(type) || isInputObjectType(type) || isWrappingType(type) && isInputType(type.ofType);\n}\nexport function assertInputType(type) {\n if (!isInputType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL input type.\"));\n }\n\n return type;\n}\n/**\n * These types may be used as output types as the result of fields.\n */\n\nexport function isOutputType(type) {\n return isScalarType(type) || isObjectType(type) || isInterfaceType(type) || isUnionType(type) || isEnumType(type) || isWrappingType(type) && isOutputType(type.ofType);\n}\nexport function assertOutputType(type) {\n if (!isOutputType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL output type.\"));\n }\n\n return type;\n}\n/**\n * These types may describe types which may be leaf values.\n */\n\nexport function isLeafType(type) {\n return isScalarType(type) || isEnumType(type);\n}\nexport function assertLeafType(type) {\n if (!isLeafType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL leaf type.\"));\n }\n\n return type;\n}\n/**\n * These types may describe the parent context of a selection set.\n */\n\nexport function isCompositeType(type) {\n return isObjectType(type) || isInterfaceType(type) || isUnionType(type);\n}\nexport function assertCompositeType(type) {\n if (!isCompositeType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL composite type.\"));\n }\n\n return type;\n}\n/**\n * These types may describe the parent context of a selection set.\n */\n\nexport function isAbstractType(type) {\n return isInterfaceType(type) || isUnionType(type);\n}\nexport function assertAbstractType(type) {\n if (!isAbstractType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL abstract type.\"));\n }\n\n return type;\n}\n/**\n * List Type Wrapper\n *\n * A list is a wrapping type which points to another type.\n * Lists are often created within the context of defining the fields of\n * an object type.\n *\n * Example:\n *\n * const PersonType = new GraphQLObjectType({\n * name: 'Person',\n * fields: () => ({\n * parents: { type: GraphQLList(PersonType) },\n * children: { type: GraphQLList(PersonType) },\n * })\n * })\n *\n */\n\n// eslint-disable-next-line no-redeclare\nexport function GraphQLList(ofType) {\n if (this instanceof GraphQLList) {\n this.ofType = assertType(ofType);\n } else {\n return new GraphQLList(ofType);\n }\n} // Need to cast through any to alter the prototype.\n\nGraphQLList.prototype.toString = function toString() {\n return '[' + String(this.ofType) + ']';\n}; // Conditionally apply `[Symbol.toStringTag]` if `Symbol`s are supported\n\n\ndefineToStringTag(GraphQLList);\ndefineToJSON(GraphQLList);\n/**\n * Non-Null Type Wrapper\n *\n * A non-null is a wrapping type which points to another type.\n * Non-null types enforce that their values are never null and can ensure\n * an error is raised if this ever occurs during a request. It is useful for\n * fields which you can make a strong guarantee on non-nullability, for example\n * usually the id field of a database row will never be null.\n *\n * Example:\n *\n * const RowType = new GraphQLObjectType({\n * name: 'Row',\n * fields: () => ({\n * id: { type: GraphQLNonNull(GraphQLString) },\n * })\n * })\n *\n * Note: the enforcement of non-nullability occurs within the executor.\n */\n\n// eslint-disable-next-line no-redeclare\nexport function GraphQLNonNull(ofType) {\n if (this instanceof GraphQLNonNull) {\n this.ofType = assertNullableType(ofType);\n } else {\n return new GraphQLNonNull(ofType);\n }\n} // Need to cast through any to alter the prototype.\n\nGraphQLNonNull.prototype.toString = function toString() {\n return String(this.ofType) + '!';\n}; // Conditionally apply `[Symbol.toStringTag]` if `Symbol`s are supported\n\n\ndefineToStringTag(GraphQLNonNull);\ndefineToJSON(GraphQLNonNull);\n/**\n * These types wrap and modify other types\n */\n\nexport function isWrappingType(type) {\n return isListType(type) || isNonNullType(type);\n}\nexport function assertWrappingType(type) {\n if (!isWrappingType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL wrapping type.\"));\n }\n\n return type;\n}\n/**\n * These types can all accept null as a value.\n */\n\nexport function isNullableType(type) {\n return isType(type) && !isNonNullType(type);\n}\nexport function assertNullableType(type) {\n if (!isNullableType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL nullable type.\"));\n }\n\n return type;\n}\n/* eslint-disable no-redeclare */\n\nexport function getNullableType(type) {\n /* eslint-enable no-redeclare */\n if (type) {\n return isNonNullType(type) ? type.ofType : type;\n }\n}\n/**\n * These named types do not include modifiers like List or NonNull.\n */\n\nexport function isNamedType(type) {\n return isScalarType(type) || isObjectType(type) || isInterfaceType(type) || isUnionType(type) || isEnumType(type) || isInputObjectType(type);\n}\nexport function assertNamedType(type) {\n if (!isNamedType(type)) {\n throw new Error(\"Expected \".concat(inspect(type), \" to be a GraphQL named type.\"));\n }\n\n return type;\n}\n/* eslint-disable no-redeclare */\n\nexport function getNamedType(type) {\n /* eslint-enable no-redeclare */\n if (type) {\n var unwrappedType = type;\n\n while (isWrappingType(unwrappedType)) {\n unwrappedType = unwrappedType.ofType;\n }\n\n return unwrappedType;\n }\n}\n/**\n * Used while defining GraphQL types to allow for circular references in\n * otherwise immutable type definitions.\n */\n\nfunction resolveThunk(thunk) {\n // $FlowFixMe(>=0.90.0)\n return typeof thunk === 'function' ? thunk() : thunk;\n}\n\nfunction undefineIfEmpty(arr) {\n return arr && arr.length > 0 ? arr : undefined;\n}\n/**\n * Scalar Type Definition\n *\n * The leaf values of any request and input values to arguments are\n * Scalars (or Enums) and are defined with a name and a series of functions\n * used to parse input from ast or variables and to ensure validity.\n *\n * If a type's serialize function does not return a value (i.e. it returns\n * `undefined`) then an error will be raised and a `null` value will be returned\n * in the response. If the serialize function returns `null`, then no error will\n * be included in the response.\n *\n * Example:\n *\n * const OddType = new GraphQLScalarType({\n * name: 'Odd',\n * serialize(value) {\n * if (value % 2 === 1) {\n * return value;\n * }\n * }\n * });\n *\n */\n\n\nexport var GraphQLScalarType =\n/*#__PURE__*/\nfunction () {\n function GraphQLScalarType(config) {\n var parseValue = config.parseValue || identityFunc;\n this.name = config.name;\n this.description = config.description;\n this.serialize = config.serialize || identityFunc;\n this.parseValue = parseValue;\n\n this.parseLiteral = config.parseLiteral || function (node) {\n return parseValue(valueFromASTUntyped(node));\n };\n\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);\n typeof config.name === 'string' || devAssert(0, 'Must provide name.');\n config.serialize == null || typeof config.serialize === 'function' || devAssert(0, \"\".concat(this.name, \" must provide \\\"serialize\\\" function. If this custom Scalar is also used as an input type, ensure \\\"parseValue\\\" and \\\"parseLiteral\\\" functions are also provided.\"));\n\n if (config.parseLiteral) {\n typeof config.parseValue === 'function' && typeof config.parseLiteral === 'function' || devAssert(0, \"\".concat(this.name, \" must provide both \\\"parseValue\\\" and \\\"parseLiteral\\\" functions.\"));\n }\n }\n\n var _proto = GraphQLScalarType.prototype;\n\n _proto.toConfig = function toConfig() {\n return {\n name: this.name,\n description: this.description,\n serialize: this.serialize,\n parseValue: this.parseValue,\n parseLiteral: this.parseLiteral,\n extensions: this.extensions,\n astNode: this.astNode,\n extensionASTNodes: this.extensionASTNodes || []\n };\n };\n\n _proto.toString = function toString() {\n return this.name;\n };\n\n return GraphQLScalarType;\n}(); // Conditionally apply `[Symbol.toStringTag]` if `Symbol`s are supported\n\ndefineToStringTag(GraphQLScalarType);\ndefineToJSON(GraphQLScalarType);\n\n/**\n * Object Type Definition\n *\n * Almost all of the GraphQL types you define will be object types. Object types\n * have a name, but most importantly describe their fields.\n *\n * Example:\n *\n * const AddressType = new GraphQLObjectType({\n * name: 'Address',\n * fields: {\n * street: { type: GraphQLString },\n * number: { type: GraphQLInt },\n * formatted: {\n * type: GraphQLString,\n * resolve(obj) {\n * return obj.number + ' ' + obj.street\n * }\n * }\n * }\n * });\n *\n * When two types need to refer to each other, or a type needs to refer to\n * itself in a field, you can use a function expression (aka a closure or a\n * thunk) to supply the fields lazily.\n *\n * Example:\n *\n * const PersonType = new GraphQLObjectType({\n * name: 'Person',\n * fields: () => ({\n * name: { type: GraphQLString },\n * bestFriend: { type: PersonType },\n * })\n * });\n *\n */\nexport var GraphQLObjectType =\n/*#__PURE__*/\nfunction () {\n function GraphQLObjectType(config) {\n this.name = config.name;\n this.description = config.description;\n this.isTypeOf = config.isTypeOf;\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);\n this._fields = defineFieldMap.bind(undefined, config);\n this._interfaces = defineInterfaces.bind(undefined, config);\n typeof config.name === 'string' || devAssert(0, 'Must provide name.');\n config.isTypeOf == null || typeof config.isTypeOf === 'function' || devAssert(0, \"\".concat(this.name, \" must provide \\\"isTypeOf\\\" as a function, \") + \"but got: \".concat(inspect(config.isTypeOf), \".\"));\n }\n\n var _proto2 = GraphQLObjectType.prototype;\n\n _proto2.getFields = function getFields() {\n if (typeof this._fields === 'function') {\n this._fields = this._fields();\n }\n\n return this._fields;\n };\n\n _proto2.getInterfaces = function getInterfaces() {\n if (typeof this._interfaces === 'function') {\n this._interfaces = this._interfaces();\n }\n\n return this._interfaces;\n };\n\n _proto2.toConfig = function toConfig() {\n return {\n name: this.name,\n description: this.description,\n interfaces: this.getInterfaces(),\n fields: fieldsToFieldsConfig(this.getFields()),\n isTypeOf: this.isTypeOf,\n extensions: this.extensions,\n astNode: this.astNode,\n extensionASTNodes: this.extensionASTNodes || []\n };\n };\n\n _proto2.toString = function toString() {\n return this.name;\n };\n\n return GraphQLObjectType;\n}(); // Conditionally apply `[Symbol.toStringTag]` if `Symbol`s are supported\n\ndefineToStringTag(GraphQLObjectType);\ndefineToJSON(GraphQLObjectType);\n\nfunction defineInterfaces(config) {\n var interfaces = resolveThunk(config.interfaces) || [];\n Array.isArray(interfaces) || devAssert(0, \"\".concat(config.name, \" interfaces must be an Array or a function which returns an Array.\"));\n return interfaces;\n}\n\nfunction defineFieldMap(config) {\n var fieldMap = resolveThunk(config.fields) || {};\n isPlainObj(fieldMap) || devAssert(0, \"\".concat(config.name, \" fields must be an object with field names as keys or a function which returns such an object.\"));\n return mapValue(fieldMap, function (fieldConfig, fieldName) {\n isPlainObj(fieldConfig) || devAssert(0, \"\".concat(config.name, \".\").concat(fieldName, \" field config must be an object\"));\n !('isDeprecated' in fieldConfig) || devAssert(0, \"\".concat(config.name, \".\").concat(fieldName, \" should provide \\\"deprecationReason\\\" instead of \\\"isDeprecated\\\".\"));\n fieldConfig.resolve == null || typeof fieldConfig.resolve === 'function' || devAssert(0, \"\".concat(config.name, \".\").concat(fieldName, \" field resolver must be a function if \") + \"provided, but got: \".concat(inspect(fieldConfig.resolve), \".\"));\n var argsConfig = fieldConfig.args || {};\n isPlainObj(argsConfig) || devAssert(0, \"\".concat(config.name, \".\").concat(fieldName, \" args must be an object with argument names as keys.\"));\n var args = objectEntries(argsConfig).map(function (_ref) {\n var argName = _ref[0],\n arg = _ref[1];\n return {\n name: argName,\n description: arg.description === undefined ? null : arg.description,\n type: arg.type,\n defaultValue: arg.defaultValue,\n extensions: arg.extensions && toObjMap(arg.extensions),\n astNode: arg.astNode\n };\n });\n return _objectSpread({}, fieldConfig, {\n name: fieldName,\n description: fieldConfig.description,\n type: fieldConfig.type,\n args: args,\n resolve: fieldConfig.resolve,\n subscribe: fieldConfig.subscribe,\n isDeprecated: Boolean(fieldConfig.deprecationReason),\n deprecationReason: fieldConfig.deprecationReason,\n extensions: fieldConfig.extensions && toObjMap(fieldConfig.extensions),\n astNode: fieldConfig.astNode\n });\n });\n}\n\nfunction isPlainObj(obj) {\n return isObjectLike(obj) && !Array.isArray(obj);\n}\n\nfunction fieldsToFieldsConfig(fields) {\n return mapValue(fields, function (field) {\n return {\n description: field.description,\n type: field.type,\n args: argsToArgsConfig(field.args),\n resolve: field.resolve,\n subscribe: field.subscribe,\n deprecationReason: field.deprecationReason,\n extensions: field.extensions,\n astNode: field.astNode\n };\n });\n}\n\nexport function argsToArgsConfig(args) {\n return keyValMap(args, function (arg) {\n return arg.name;\n }, function (arg) {\n return {\n description: arg.description,\n type: arg.type,\n defaultValue: arg.defaultValue,\n extensions: arg.extensions,\n astNode: arg.astNode\n };\n });\n}\nexport function isRequiredArgument(arg) {\n return isNonNullType(arg.type) && arg.defaultValue === undefined;\n}\n\n/**\n * Interface Type Definition\n *\n * When a field can return one of a heterogeneous set of types, a Interface type\n * is used to describe what types are possible, what fields are in common across\n * all types, as well as a function to determine which type is actually used\n * when the field is resolved.\n *\n * Example:\n *\n * const EntityType = new GraphQLInterfaceType({\n * name: 'Entity',\n * fields: {\n * name: { type: GraphQLString }\n * }\n * });\n *\n */\nexport var GraphQLInterfaceType =\n/*#__PURE__*/\nfunction () {\n function GraphQLInterfaceType(config) {\n this.name = config.name;\n this.description = config.description;\n this.resolveType = config.resolveType;\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);\n this._fields = defineFieldMap.bind(undefined, config);\n typeof config.name === 'string' || devAssert(0, 'Must provide name.');\n config.resolveType == null || typeof config.resolveType === 'function' || devAssert(0, \"\".concat(this.name, \" must provide \\\"resolveType\\\" as a function, \") + \"but got: \".concat(inspect(config.resolveType), \".\"));\n }\n\n var _proto3 = GraphQLInterfaceType.prototype;\n\n _proto3.getFields = function getFields() {\n if (typeof this._fields === 'function') {\n this._fields = this._fields();\n }\n\n return this._fields;\n };\n\n _proto3.toConfig = function toConfig() {\n return {\n name: this.name,\n description: this.description,\n fields: fieldsToFieldsConfig(this.getFields()),\n resolveType: this.resolveType,\n extensions: this.extensions,\n astNode: this.astNode,\n extensionASTNodes: this.extensionASTNodes || []\n };\n };\n\n _proto3.toString = function toString() {\n return this.name;\n };\n\n return GraphQLInterfaceType;\n}(); // Conditionally apply `[Symbol.toStringTag]` if `Symbol`s are supported\n\ndefineToStringTag(GraphQLInterfaceType);\ndefineToJSON(GraphQLInterfaceType);\n\n/**\n * Union Type Definition\n *\n * When a field can return one of a heterogeneous set of types, a Union type\n * is used to describe what types are possible as well as providing a function\n * to determine which type is actually used when the field is resolved.\n *\n * Example:\n *\n * const PetType = new GraphQLUnionType({\n * name: 'Pet',\n * types: [ DogType, CatType ],\n * resolveType(value) {\n * if (value instanceof Dog) {\n * return DogType;\n * }\n * if (value instanceof Cat) {\n * return CatType;\n * }\n * }\n * });\n *\n */\nexport var GraphQLUnionType =\n/*#__PURE__*/\nfunction () {\n function GraphQLUnionType(config) {\n this.name = config.name;\n this.description = config.description;\n this.resolveType = config.resolveType;\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);\n this._types = defineTypes.bind(undefined, config);\n typeof config.name === 'string' || devAssert(0, 'Must provide name.');\n config.resolveType == null || typeof config.resolveType === 'function' || devAssert(0, \"\".concat(this.name, \" must provide \\\"resolveType\\\" as a function, \") + \"but got: \".concat(inspect(config.resolveType), \".\"));\n }\n\n var _proto4 = GraphQLUnionType.prototype;\n\n _proto4.getTypes = function getTypes() {\n if (typeof this._types === 'function') {\n this._types = this._types();\n }\n\n return this._types;\n };\n\n _proto4.toConfig = function toConfig() {\n return {\n name: this.name,\n description: this.description,\n types: this.getTypes(),\n resolveType: this.resolveType,\n extensions: this.extensions,\n astNode: this.astNode,\n extensionASTNodes: this.extensionASTNodes || []\n };\n };\n\n _proto4.toString = function toString() {\n return this.name;\n };\n\n return GraphQLUnionType;\n}(); // Conditionally apply `[Symbol.toStringTag]` if `Symbol`s are supported\n\ndefineToStringTag(GraphQLUnionType);\ndefineToJSON(GraphQLUnionType);\n\nfunction defineTypes(config) {\n var types = resolveThunk(config.types) || [];\n Array.isArray(types) || devAssert(0, \"Must provide Array of types or a function which returns such an array for Union \".concat(config.name, \".\"));\n return types;\n}\n\n/**\n * Enum Type Definition\n *\n * Some leaf values of requests and input values are Enums. GraphQL serializes\n * Enum values as strings, however internally Enums can be represented by any\n * kind of type, often integers.\n *\n * Example:\n *\n * const RGBType = new GraphQLEnumType({\n * name: 'RGB',\n * values: {\n * RED: { value: 0 },\n * GREEN: { value: 1 },\n * BLUE: { value: 2 }\n * }\n * });\n *\n * Note: If a value is not provided in a definition, the name of the enum value\n * will be used as its internal value.\n */\nexport var GraphQLEnumType\n/* */\n=\n/*#__PURE__*/\nfunction () {\n function GraphQLEnumType(config) {\n this.name = config.name;\n this.description = config.description;\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);\n this._values = defineEnumValues(this.name, config.values);\n this._valueLookup = new Map(this._values.map(function (enumValue) {\n return [enumValue.value, enumValue];\n }));\n this._nameLookup = keyMap(this._values, function (value) {\n return value.name;\n });\n typeof config.name === 'string' || devAssert(0, 'Must provide name.');\n }\n\n var _proto5 = GraphQLEnumType.prototype;\n\n _proto5.getValues = function getValues() {\n return this._values;\n };\n\n _proto5.getValue = function getValue(name) {\n return this._nameLookup[name];\n };\n\n _proto5.serialize = function serialize(value) {\n var enumValue = this._valueLookup.get(value);\n\n if (enumValue) {\n return enumValue.name;\n }\n };\n\n _proto5.parseValue = function parseValue(value)\n /* T */\n {\n if (typeof value === 'string') {\n var enumValue = this.getValue(value);\n\n if (enumValue) {\n return enumValue.value;\n }\n }\n };\n\n _proto5.parseLiteral = function parseLiteral(valueNode, _variables)\n /* T */\n {\n // Note: variables will be resolved to a value before calling this function.\n if (valueNode.kind === Kind.ENUM) {\n var enumValue = this.getValue(valueNode.value);\n\n if (enumValue) {\n return enumValue.value;\n }\n }\n };\n\n _proto5.toConfig = function toConfig() {\n var values = keyValMap(this.getValues(), function (value) {\n return value.name;\n }, function (value) {\n return {\n description: value.description,\n value: value.value,\n deprecationReason: value.deprecationReason,\n extensions: value.extensions,\n astNode: value.astNode\n };\n });\n return {\n name: this.name,\n description: this.description,\n values: values,\n extensions: this.extensions,\n astNode: this.astNode,\n extensionASTNodes: this.extensionASTNodes || []\n };\n };\n\n _proto5.toString = function toString() {\n return this.name;\n };\n\n return GraphQLEnumType;\n}(); // Conditionally apply `[Symbol.toStringTag]` if `Symbol`s are supported\n\ndefineToStringTag(GraphQLEnumType);\ndefineToJSON(GraphQLEnumType);\n\nfunction defineEnumValues(typeName, valueMap) {\n isPlainObj(valueMap) || devAssert(0, \"\".concat(typeName, \" values must be an object with value names as keys.\"));\n return objectEntries(valueMap).map(function (_ref2) {\n var valueName = _ref2[0],\n value = _ref2[1];\n isPlainObj(value) || devAssert(0, \"\".concat(typeName, \".\").concat(valueName, \" must refer to an object with a \\\"value\\\" key \") + \"representing an internal value but got: \".concat(inspect(value), \".\"));\n !('isDeprecated' in value) || devAssert(0, \"\".concat(typeName, \".\").concat(valueName, \" should provide \\\"deprecationReason\\\" instead of \\\"isDeprecated\\\".\"));\n return {\n name: valueName,\n description: value.description,\n value: 'value' in value ? value.value : valueName,\n isDeprecated: Boolean(value.deprecationReason),\n deprecationReason: value.deprecationReason,\n extensions: value.extensions && toObjMap(value.extensions),\n astNode: value.astNode\n };\n });\n}\n\n/**\n * Input Object Type Definition\n *\n * An input object defines a structured collection of fields which may be\n * supplied to a field argument.\n *\n * Using `NonNull` will ensure that a value must be provided by the query\n *\n * Example:\n *\n * const GeoPoint = new GraphQLInputObjectType({\n * name: 'GeoPoint',\n * fields: {\n * lat: { type: GraphQLNonNull(GraphQLFloat) },\n * lon: { type: GraphQLNonNull(GraphQLFloat) },\n * alt: { type: GraphQLFloat, defaultValue: 0 },\n * }\n * });\n *\n */\nexport var GraphQLInputObjectType =\n/*#__PURE__*/\nfunction () {\n function GraphQLInputObjectType(config) {\n this.name = config.name;\n this.description = config.description;\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);\n this._fields = defineInputFieldMap.bind(undefined, config);\n typeof config.name === 'string' || devAssert(0, 'Must provide name.');\n }\n\n var _proto6 = GraphQLInputObjectType.prototype;\n\n _proto6.getFields = function getFields() {\n if (typeof this._fields === 'function') {\n this._fields = this._fields();\n }\n\n return this._fields;\n };\n\n _proto6.toConfig = function toConfig() {\n var fields = mapValue(this.getFields(), function (field) {\n return {\n description: field.description,\n type: field.type,\n defaultValue: field.defaultValue,\n extensions: field.extensions,\n astNode: field.astNode\n };\n });\n return {\n name: this.name,\n description: this.description,\n fields: fields,\n extensions: this.extensions,\n astNode: this.astNode,\n extensionASTNodes: this.extensionASTNodes || []\n };\n };\n\n _proto6.toString = function toString() {\n return this.name;\n };\n\n return GraphQLInputObjectType;\n}(); // Conditionally apply `[Symbol.toStringTag]` if `Symbol`s are supported\n\ndefineToStringTag(GraphQLInputObjectType);\ndefineToJSON(GraphQLInputObjectType);\n\nfunction defineInputFieldMap(config) {\n var fieldMap = resolveThunk(config.fields) || {};\n isPlainObj(fieldMap) || devAssert(0, \"\".concat(config.name, \" fields must be an object with field names as keys or a function which returns such an object.\"));\n return mapValue(fieldMap, function (fieldConfig, fieldName) {\n !('resolve' in fieldConfig) || devAssert(0, \"\".concat(config.name, \".\").concat(fieldName, \" field has a resolve property, but Input Types cannot define resolvers.\"));\n return _objectSpread({}, fieldConfig, {\n name: fieldName,\n description: fieldConfig.description,\n type: fieldConfig.type,\n defaultValue: fieldConfig.defaultValue,\n extensions: fieldConfig.extensions && toObjMap(fieldConfig.extensions),\n astNode: fieldConfig.astNode\n });\n });\n}\n\nexport function isRequiredInputField(field) {\n return isNonNullType(field.type) && field.defaultValue === undefined;\n}\n","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nvar cns = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args\n .filter(function (a) { return a !== null && a !== undefined && a !== false && a !== ''; })\n .join(' ');\n};\nvar subClass = function () {\n var classes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n classes[_i] = arguments[_i];\n }\n return classes.join('-');\n};\nvar currySC = function (original) { return function () {\n var subclasses = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n subclasses[_i] = arguments[_i];\n }\n return subClass.apply(void 0, __spreadArrays([original], subclasses));\n}; };\nexport { currySC, cns, subClass };\n//# sourceMappingURL=utils.js.map","import stylis from 'stylis';\nimport { currySC } from './utils';\nvar classes = {};\nvar bodyGlobals = [];\nvar i = 0;\nvar localContext = null;\n/**\n * Associa una funzione per generare una classe css ad una chiave autogenerata, restituita poi dal metodo\n *\n * @param classCreator: classFactory\n * @param descendant: boolean\n * @return key: string\n */\nexport function registerClass(classCreator, descendant) {\n if (descendant === void 0) { descendant = true; }\n var key = 'c' + i++;\n classes[key] = { factory: classCreator, descendant: descendant };\n return key;\n}\n/**\n * Inserisce dei tratti CSS nell'array che poi verra' associato al body\n *\n * @param globalDef: globalInjector\n * @return void\n */\nexport var registerGlobal = function (globalDef) {\n bodyGlobals.push(globalDef);\n};\n/**\n * Utility interna per unire le diverse definizioni di tratti CSS globali\n *\n * @param c: globalInjector[]\n * @param theme: any\n * @return void\n */\nvar joinGlobals = function (c, theme) {\n return c.map(function (g) { return g(theme); }).join('\\n');\n};\n/**\n * Utility interna per unire le diverse definizioni di tratti CSS locali\n *\n * @param c: ClassContainer\n * @param theme: any\n * @return void\n */\nvar joinClasses = function (c, theme) {\n return Object.entries(c)\n .filter(function (_a) {\n var _ = _a[0], factory = _a[1].factory;\n if (typeof factory !== 'function') {\n console.log(factory);\n }\n // devo filtrare le factory che non sono function.. strano, dovrebbe essere impossibile se si segue la tipizzazione\n return typeof factory === 'function';\n })\n .map(function (_a) {\n var className = _a[0], _b = _a[1], factory = _b.factory, descendant = _b.descendant;\n return (!descendant ? '&' : '') + \".\" + className + \" { \" + factory(theme, currySC(className)) + \" }\";\n })\n .join('\\n');\n};\n/**\n * Getter per il contesto grafico di una applicazione\n *\n * @return CSSManagerContext | null\n */\nexport var getContext = function () { return localContext; };\n/**\n * Setter per il contesto grafico di una applicazione\n *\n * @param context: CSSManagerContext\n * @return void\n */\nexport var setContext = function (context) {\n localContext = context;\n};\n/**\n * Dato un tema e un prefisso, parsa le definizioni locali e globali registrare nell'applicazione e ne genera un CSS\n *\n * @param theme: any\n * @param prefix?: string\n * @return string\n */\nexport var generateCSS = function (theme, prefix) {\n // il CSS relativo all'applicazione, compresi i portal\n var css = joinClasses(classes, theme);\n if (prefix) {\n css = prefix + ' { ' + css + ' } ';\n }\n // il CSS attaccato direttamente al body, dovrebbe contenere solo poche eccezioni\n var bodyCss = (prefix || 'html') + ' { ' + joinGlobals(bodyGlobals, theme) + '}';\n var allCss = css + '\\n\\n' + bodyCss;\n return stylis('', allCss);\n};\n/**\n * Utility interna per generare l'id da assegnare al tag `style`\n *\n * @param context: CSSManagerContext | null\n * @returns string\n */\nvar generateStyleId = function (context) {\n if (context) {\n var styleTagId = context.styleTagId, portalClasses = context.portalClasses;\n if (styleTagId) {\n return styleTagId;\n }\n else if (Array.isArray(portalClasses) && portalClasses.length > 0) {\n return portalClasses.join('-');\n }\n }\n return 'css-export';\n};\n/**\n * Aggiorna il css generato precedentemente da injectCSS con le classi registrate nel mentre, probabilmente da\n * componenti caricati in modo lazy\n */\nexport var refreshCSS = function () {\n if (localContext === null) {\n return;\n }\n var theme = localContext.theme, prefix = localContext.prefix;\n var id = generateStyleId(localContext);\n var style = document.querySelector('#' + id);\n if (style === null) {\n return;\n }\n style.innerHTML = generateCSS(theme, prefix);\n};\n/**\n * Genera e inietta il css composto dalle classi registrate fino all'esecuzione\n *\n * @param context: CSSManagerContext\n */\nexport var injectCSS = function (context) {\n var theme = context.theme, prefix = context.prefix;\n localContext = context;\n var id = generateStyleId(context);\n // se esiste gia' un nodo con questo id sono renderizzato server-side oppure c'e' un errore. Nel dubbio, mi fermo\n if (document.querySelector('#' + id)) {\n return;\n }\n var style = document.createElement('style');\n style.id = id;\n style.appendChild(document.createTextNode(generateCSS(theme, prefix)));\n document.head.appendChild(style);\n};\n//# sourceMappingURL=manager.js.map","/**\n * Funzione accessoria di HSL2RGB, uso interno\n *\n * @param p\n * @param q\n * @param t\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/**\n * Traduce Hue, Saturation e Light in notazione RGB per CSS\n *\n */\nexport function HSL2RGB(hsl) {\n var h = hsl.h, s = hsl.s, l = hsl.l;\n var r;\n var g;\n var b;\n if (s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255,\n };\n}\n/**\n * Prende un RGB e lo formatta per essere utilizzato nel CSS\n *\n * @return string \"rgb([0-255], [0-255], [0-255])\"\n */\nexport function formatRGB(rgb) {\n var r = rgb.r, g = rgb.g, b = rgb.b, a = rgb.a;\n return \"rgb(\" + Math.floor(r) + \", \" + Math.floor(g) + \", \" + Math.floor(b) + (a !== undefined ? ', ' + a + '' : '') + \")\";\n}\n/**\n *\n */\nexport function RGB2HSL(rgb) {\n var r = rgb.r, g = rgb.g, b = rgb.b;\n r /= 255;\n g /= 255;\n b /= 255;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var l = (max + min) / 2;\n var h;\n var s;\n if (max === min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n l: l,\n };\n}\n/**\n * Utility che dati i possibili valori di HSL, con S e L coniugati in 3 varianti di luminosità,\n *\n * @param hue\n * @param ligths\n * @param saturations\n * @returns IColor\n */\nexport function defaultColor(hue, ligths, saturations) {\n if (ligths === void 0) { ligths = {}; }\n if (saturations === void 0) { saturations = {}; }\n var h = hue / 360;\n return {\n plain: formatRGB(HSL2RGB({ h: h, s: saturations.plain || 0, l: ligths.plain || 0 })),\n light: formatRGB(HSL2RGB({ h: h, s: saturations.plain || 0, l: ligths.light || 0 })),\n dark: formatRGB(HSL2RGB({ h: h, s: saturations.plain || 0, l: ligths.dark || 0 })),\n disabled: {\n plain: formatRGB(HSL2RGB({ h: h, s: saturations.disabled || 0, l: ligths.plain || 0 })),\n light: formatRGB(HSL2RGB({ h: h, s: saturations.disabled || 0, l: ligths.light || 0 })),\n dark: formatRGB(HSL2RGB({ h: h, s: saturations.disabled || 0, l: ligths.dark || 0 })),\n },\n };\n}\nexport function themeGenerator(input) {\n var sa = 1.616; // Golden ratio\n var primary = defaultColor(input.primaryHue, { dark: input.dark, plain: 0.52, light: input.light }, { plain: 0.85, disabled: input.disabledSaturation });\n var secondary = defaultColor(input.secondaryHue, { dark: input.dark, plain: 0.33, light: input.light }, { plain: 1, disabled: input.disabledSaturation });\n var alt = defaultColor(input.altHue, { dark: input.dark, plain: input.plain, light: input.light }, { plain: 1, disabled: input.disabledSaturation });\n var alt2 = defaultColor(input.alt2Hue, { dark: input.dark, plain: input.plain, light: input.light }, { plain: 1, disabled: input.disabledSaturation });\n var grey = defaultColor(input.greyHue, { dark: input.dark, plain: input.plain, light: input.light }, { plain: 0, disabled: 0 });\n return {\n colors: {\n primary: primary,\n secondary: secondary,\n alt: alt,\n alt2: alt2,\n grey: grey,\n danger: primary,\n success: secondary,\n info: alt,\n premium: alt2,\n action: grey,\n ink: input.ink,\n inkWhite: input.inkWhite,\n white: input.white,\n },\n ratios: {\n l: 1 + 1 / Math.pow(sa, 3),\n xl: sa,\n s: 1 / (1 + 1 / Math.pow(sa, 3)),\n xs: 1 / sa,\n },\n font: {\n family: \"\\\"Montserrat\\\", sans-serif;\",\n baseSize: 20,\n weights: {\n light: 300,\n regular: 400,\n semibold: 600,\n bold: 700,\n },\n },\n radius: 1 / Math.pow(sa, 3),\n baseTiming: input.baseTiming,\n transition: function (property, timingFactor, easing) {\n if (timingFactor === void 0) { timingFactor = 1; }\n if (easing === void 0) { easing = 'cubic-bezier(.4,0,.2,1)'; }\n return property + \" \" + input.baseTiming * timingFactor + \"s \" + easing;\n },\n boxShadow: function (level) {\n if (level === void 0) { level = 1; }\n return \"0 0 \" + input.ambientShadowDiffusion * level + \"rem 0 \" + input.ambientShadowColor + \", \" + input.directShadowX * level + \"rem \" + input.directShadowY * level + \"rem \" + input.directShadowDiffusion * level + \"rem 0 \" + input.directShadowColor;\n },\n // `0 ${0.7 * level}rem ${1.4 * level}rem rgba(0,0,0,.25), 0 ${0.5 *\n // \tlevel}rem ${0.5 * level}rem rgba(0,0,0,.22)`,\n dimmerOpacity: input.dimmerOpacity,\n timings: {\n base: 500,\n },\n breakpoints: {\n mobileMax: 600,\n tabletMax: 900,\n notebookMax: 1200,\n },\n zIndexes: {\n P1_SlightlyAbove: 10,\n P2_AreaAbove: 100,\n P3_ContextualPopup: 1000,\n P4_Modal: 10000,\n P5_TopModal: 100000,\n },\n button: {\n fontWeight: 400,\n },\n };\n}\nexport var defaultTheme = themeGenerator({\n primaryHue: 358,\n secondaryHue: 149,\n altHue: 205,\n alt2Hue: 52,\n greyHue: 0,\n disabledSaturation: 0.3,\n ink: '#212121',\n white: '#ffffff',\n inkWhite: '#ededed',\n light: 0.95,\n plain: 0.6,\n dark: 0.3,\n dimmerOpacity: 0.5,\n baseTiming: 0.28,\n directShadowX: 0.2,\n directShadowY: 0.4,\n directShadowDiffusion: 0.4,\n ambientShadowDiffusion: 1.1,\n directShadowColor: 'rgba(0,0,0,.15)',\n ambientShadowColor: 'rgba(0,0,0,.15)',\n});\n//# sourceMappingURL=theme.js.map","/**\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","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}","import PropTypes from 'prop-types'; // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/js/src/modal.js#L436-L443\n\nexport function getScrollbarWidth() {\n var scrollDiv = document.createElement('div'); // .modal-scrollbar-measure styles // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/scss/_modal.scss#L106-L113\n\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n}\nexport function setScrollbarWidth(padding) {\n document.body.style.paddingRight = padding > 0 ? padding + \"px\" : null;\n}\nexport function isBodyOverflowing() {\n return document.body.clientWidth < window.innerWidth;\n}\nexport function getOriginalBodyPadding() {\n var style = window.getComputedStyle(document.body, null);\n return parseInt(style && style.getPropertyValue('padding-right') || 0, 10);\n}\nexport function conditionallyUpdateScrollbar() {\n var scrollbarWidth = getScrollbarWidth(); // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.6/js/src/modal.js#L433\n\n var fixedContent = document.querySelectorAll('.fixed-top, .fixed-bottom, .is-fixed, .sticky-top')[0];\n var bodyPadding = fixedContent ? parseInt(fixedContent.style.paddingRight || 0, 10) : 0;\n\n if (isBodyOverflowing()) {\n setScrollbarWidth(bodyPadding + scrollbarWidth);\n }\n}\nvar globalCssModule;\nexport function setGlobalCssModule(cssModule) {\n globalCssModule = cssModule;\n}\nexport function mapToCssModules(className, cssModule) {\n if (className === void 0) {\n className = '';\n }\n\n if (cssModule === void 0) {\n cssModule = globalCssModule;\n }\n\n if (!cssModule) return className;\n return className.split(' ').map(function (c) {\n return cssModule[c] || c;\n }).join(' ');\n}\n/**\n * Returns a new object with the key/value pairs from `obj` that are not in the array `omitKeys`.\n */\n\nexport function omit(obj, omitKeys) {\n var result = {};\n Object.keys(obj).forEach(function (key) {\n if (omitKeys.indexOf(key) === -1) {\n result[key] = obj[key];\n }\n });\n return result;\n}\n/**\n * Returns a filtered copy of an object with only the specified keys.\n */\n\nexport function pick(obj, keys) {\n var pickKeys = Array.isArray(keys) ? keys : [keys];\n var length = pickKeys.length;\n var key;\n var result = {};\n\n while (length > 0) {\n length -= 1;\n key = pickKeys[length];\n result[key] = obj[key];\n }\n\n return result;\n}\nvar warned = {};\nexport function warnOnce(message) {\n if (!warned[message]) {\n /* istanbul ignore else */\n if (typeof console !== 'undefined') {\n console.error(message); // eslint-disable-line no-console\n }\n\n warned[message] = true;\n }\n}\nexport function deprecated(propType, explanation) {\n return function validate(props, propName, componentName) {\n if (props[propName] !== null && typeof props[propName] !== 'undefined') {\n warnOnce(\"\\\"\" + propName + \"\\\" property of \\\"\" + componentName + \"\\\" has been deprecated.\\n\" + explanation);\n }\n\n for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n rest[_key - 3] = arguments[_key];\n }\n\n return propType.apply(void 0, [props, propName, componentName].concat(rest));\n };\n} // Shim Element if needed (e.g. in Node environment)\n\nvar Element = typeof window === 'object' && window.Element || function () {};\n\nexport function DOMElement(props, propName, componentName) {\n if (!(props[propName] instanceof Element)) {\n return new Error('Invalid prop `' + propName + '` supplied to `' + componentName + '`. Expected prop to be an instance of Element. Validation failed.');\n }\n}\nexport var targetPropType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, DOMElement, PropTypes.shape({\n current: PropTypes.any\n})]);\nexport var tagPropType = PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.shape({\n $$typeof: PropTypes.symbol,\n render: PropTypes.func\n}), PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.shape({\n $$typeof: PropTypes.symbol,\n render: PropTypes.func\n})]))]);\n/* eslint key-spacing: [\"error\", { afterColon: true, align: \"value\" }] */\n// These are all setup to match what is in the bootstrap _variables.scss\n// https://github.com/twbs/bootstrap/blob/v4-dev/scss/_variables.scss\n\nexport var TransitionTimeouts = {\n Fade: 150,\n // $transition-fade\n Collapse: 350,\n // $transition-collapse\n Modal: 300,\n // $modal-transition\n Carousel: 600 // $carousel-transition\n\n}; // Duplicated Transition.propType keys to ensure that Reactstrap builds\n// for distribution properly exclude these keys for nested child HTML attributes\n// since `react-transition-group` removes propTypes in production builds.\n\nexport var TransitionPropTypeKeys = ['in', 'mountOnEnter', 'unmountOnExit', 'appear', 'enter', 'exit', 'timeout', 'onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited'];\nexport var TransitionStatuses = {\n ENTERING: 'entering',\n ENTERED: 'entered',\n EXITING: 'exiting',\n EXITED: 'exited'\n};\nexport var keyCodes = {\n esc: 27,\n space: 32,\n enter: 13,\n tab: 9,\n up: 38,\n down: 40,\n home: 36,\n end: 35,\n n: 78,\n p: 80\n};\nexport var PopperPlacements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\nexport var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport function isReactRefObj(target) {\n if (target && typeof target === 'object') {\n return 'current' in target;\n }\n\n return false;\n}\n\nfunction getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n\n return Object.prototype.toString.call(value);\n}\n\nexport function toNumber(value) {\n var type = typeof value;\n var NAN = 0 / 0;\n\n if (type === 'number') {\n return value;\n }\n\n if (type === 'symbol' || type === 'object' && getTag(value) === '[object Symbol]') {\n return NAN;\n }\n\n if (isObject(value)) {\n var other = typeof value.valueOf === 'function' ? value.valueOf() : value;\n value = isObject(other) ? \"\" + other : other;\n }\n\n if (type !== 'string') {\n return value === 0 ? value : +value;\n }\n\n value = value.replace(/^\\s+|\\s+$/g, '');\n var isBinary = /^0b[01]+$/i.test(value);\n return isBinary || /^0o[0-7]+$/i.test(value) ? parseInt(value.slice(2), isBinary ? 2 : 8) : /^[-+]0x[0-9a-f]+$/i.test(value) ? NAN : +value;\n}\nexport function isObject(value) {\n var type = typeof value;\n return value != null && (type === 'object' || type === 'function');\n}\nexport function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n\n var tag = getTag(value);\n return tag === '[object Function]' || tag === '[object AsyncFunction]' || tag === '[object GeneratorFunction]' || tag === '[object Proxy]';\n}\nexport function findDOMElements(target) {\n if (isReactRefObj(target)) {\n return target.current;\n }\n\n if (isFunction(target)) {\n return target();\n }\n\n if (typeof target === 'string' && canUseDOM) {\n var selection = document.querySelectorAll(target);\n\n if (!selection.length) {\n selection = document.querySelectorAll(\"#\" + target);\n }\n\n if (!selection.length) {\n throw new Error(\"The target '\" + target + \"' could not be identified in the dom, tip: check spelling\");\n }\n\n return selection;\n }\n\n return target;\n}\nexport function isArrayOrNodeList(els) {\n if (els === null) {\n return false;\n }\n\n return Array.isArray(els) || canUseDOM && typeof els.length === 'number';\n}\nexport function getTarget(target, allElements) {\n var els = findDOMElements(target);\n\n if (allElements) {\n if (isArrayOrNodeList(els)) {\n return els;\n }\n\n if (els === null) {\n return [];\n }\n\n return [els];\n } else {\n if (isArrayOrNodeList(els)) {\n return els[0];\n }\n\n return els;\n }\n}\nexport var defaultToggleEvents = ['touchstart', 'click'];\nexport function addMultipleEventListeners(_els, handler, _events, useCapture) {\n var els = _els;\n\n if (!isArrayOrNodeList(els)) {\n els = [els];\n }\n\n var events = _events;\n\n if (typeof events === 'string') {\n events = events.split(/\\s+/);\n }\n\n if (!isArrayOrNodeList(els) || typeof handler !== 'function' || !Array.isArray(events)) {\n throw new Error(\"\\n The first argument of this function must be DOM node or an array on DOM nodes or NodeList.\\n The second must be a function.\\n The third is a string or an array of strings that represents DOM events\\n \");\n }\n\n Array.prototype.forEach.call(events, function (event) {\n Array.prototype.forEach.call(els, function (el) {\n el.addEventListener(event, handler, useCapture);\n });\n });\n return function removeEvents() {\n Array.prototype.forEach.call(events, function (event) {\n Array.prototype.forEach.call(els, function (el) {\n el.removeEventListener(event, handler, useCapture);\n });\n });\n };\n}\nexport var focusableElements = ['a[href]', 'area[href]', 'input:not([disabled]):not([type=hidden])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', 'object', 'embed', '[tabindex]:not(.modal)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])'];","export var SOCIAL;\n(function (SOCIAL) {\n SOCIAL[\"FACEBOOK\"] = \"FACEBOOK\";\n SOCIAL[\"GOOGLE\"] = \"GOOGLE\";\n SOCIAL[\"LINKEDIN\"] = \"LINKEDIN\";\n})(SOCIAL || (SOCIAL = {}));\nexport function isSocial(val) {\n if (typeof val !== 'string') {\n return false;\n }\n return ['FACEBOOK', 'GOOGLE', 'LINKEDIN'].includes(val);\n}\nexport function isExtendedSocial(val) {\n if (typeof val !== 'string') {\n return false;\n }\n if (val === 'TRADITIONAL') {\n return true;\n }\n return isSocial(val);\n}\nexport var urlTokens = ['workEmailVerifyToken'];\n//# sourceMappingURL=types.js.map","import { UserRole } from '../server-types';\nimport { SOCIAL } from '../types';\nvar defaultConfig = {\n GOOGLE_AUTH_URL: 'https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&response_type=code&client_id=686200956517-ekcd649hqj7nuf6q19grqp9ofqlvnqu4.apps.googleusercontent.com&scope=https://www.googleapis.com/auth/userinfo.email+https://www.googleapis.com/auth/userinfo.profile',\n LINKEDIN_AUTH_URL: 'https://www.linkedin.com/oauth/v2/authorization?scope=r_liteprofile,r_emailaddress&access_type=offline&response_type=code&client_id=86cpchio1khn04',\n FACEBOOK_AUTH_URL: 'https://www.facebook.com/v3.0/dialog/oauth?scope=public_profile,email,user_location&access_type=offline&response_type=code&client_id=168668320473884',\n AUTH_ENDPOINT: 'https://api.italianfood.net/api/authenticate',\n LOGIN_START_TRADITIONAL: false,\n HELP_EMAIL: 'support@gruppofood.com',\n OAUTH_REDIRECT_URI: 'https://auth.gruppofood.com/oauth2callback',\n DEFAULT_LOGGED_ROUTE: '/',\n AUTH_ROLES: [UserRole.Consumer],\n SOCIAL_TYPES: [SOCIAL.GOOGLE, SOCIAL.FACEBOOK, SOCIAL.LINKEDIN],\n LANG: 'it_IT',\n TARGET_SITE: 'IFN',\n VERIFICATION_URL: '/login',\n};\nvar mergeConfig = function (c) {\n return Object.assign({}, defaultConfig, c);\n};\nexport { mergeConfig };\n//# sourceMappingURL=config.js.map","import * as pkg from '../package.json';\nexport var authTrackOverride = {\n software: {\n name: pkg.name,\n version: pkg.version,\n },\n};\n//# sourceMappingURL=track.js.map","var __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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { getLoginType, getUserData } from '../logic/auth';\nimport { canUseDOM } from 'exenv';\nimport { track } from '@food/tracking';\nimport { authTrackOverride } from './track';\n/**\n * Funzione per capire a partire dai dati di localStorage se siamo in un caso di rinnovo o di login\n */\nexport var isRenew = function () { return !!(getUserData() && getLoginType()); };\n/**\n * Funzione per formattare in modo umano gli emailDomain\n * @param i - FIXME - Use proper types\n */\nexport var emailDomainLabel = function (i) {\n var str = ['Cname', 'CGname', 'Sname', 'Rname'].reduce(function (p, c) { return (i[c] && i[c].length > 0 ? i[c] : p); }, '');\n if (i.CountryName) {\n str += ' - ' + i.CountryName;\n }\n if (i.Tname) {\n str += \" (Team \" + i.Tname + \")\";\n }\n return str;\n};\n// FIXME - Use proper types\nexport var emailDomainType = function (i) {\n var labels = ['Company', 'Company Group', 'Service', 'Retailer'];\n return ['Cname', 'CGname', 'Sname', 'Rname'].reduce(function (p, c, k) { return (i[c] && i[c].length > 0 ? labels[k] : p); }, '');\n};\nvar dangerousRequestKeys = ['password', 'grantToken', 'cryptoRenewToken'];\nvar cleanServerRequest = function (request) {\n var cleanRequest = __assign({}, request);\n dangerousRequestKeys.forEach(function (key) {\n if (key in cleanRequest) {\n cleanRequest[key] = '*****';\n }\n });\n if (request.options && request.options.workEmailVerifyToken) {\n cleanRequest.options = __assign(__assign({}, request.options), { workEmailVerifyToken: '*****' });\n }\n return cleanRequest;\n};\n// Keep possible string explicit type-wise because compiler have to check '*****' is a valid value for field\nvar dangerousResponseKeys = ['cryptoRenewToken'];\nvar cleanServerResponse = function (response) {\n var cleanResponse = __assign({}, response);\n dangerousResponseKeys.forEach(function (key) {\n if (key in cleanResponse) {\n cleanResponse[key] = '*****';\n }\n });\n if (cleanResponse.choices && cleanResponse.key === 'options.tosApproved') {\n cleanResponse.choices = cleanResponse.choices.map(function (choice) { return choice.id; });\n }\n if (cleanResponse.userAuth && cleanResponse.userAuth.authorization) {\n cleanResponse.userAuth = __assign(__assign({}, cleanResponse.userAuth), { authorization: '*****' });\n }\n return cleanResponse;\n};\nexport function httpApiCall(body, endpoint, targetSite) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve) {\n fetch(endpoint, {\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n 'X-Target-Site': targetSite,\n },\n method: 'POST',\n body: JSON.stringify(body),\n })\n .then(function (response) { return __awaiter(_this, void 0, void 0, function () {\n var res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, response.json()];\n case 1:\n res = _a.sent();\n track(__assign(__assign({}, authTrackOverride), { action: {\n type: 'auth_server_request',\n request: cleanServerRequest(body),\n response: {\n json: cleanServerResponse(res),\n code: response.status,\n },\n } }));\n resolve(res);\n return [2 /*return*/];\n }\n });\n }); })\n .catch(function (err) {\n resolve({\n status: 500,\n success: false,\n type: '',\n message: err.message,\n });\n });\n })];\n });\n });\n}\nexport function validateEmail(email) {\n if (!email || email.length === 0) {\n return false;\n }\n var re = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(email.trim().toLowerCase());\n}\nexport var hasUserAuthData = function (r) {\n return r &&\n r.payload &&\n r.payload.userAuth &&\n r.payload.userAuth.auth &&\n r.payload.userAuth.auth.user;\n};\nexport var hasEmailDomainData = function (r) {\n return r && r.payload && r.payload.EmailDomainRow;\n};\nexport var addUserKey = function (keys) {\n if (!canUseDOM) {\n return;\n }\n var key = '@food/userKeys';\n var val = localStorage.getItem(key);\n var parsed = val ? JSON.parse(val) : [];\n var newParsed = parsed\n .concat(keys)\n .filter(function (key, index, arr) {\n return arr.indexOf(key) === index;\n });\n localStorage.setItem(key, JSON.stringify(newParsed));\n};\n/**\n * @description Funzione per estrarre la work email dalla risposta del server\n * @param r: IWrappedResponse\n * @return string\n */\nexport var extractWorkEmail = function (r) {\n return r && r.payload && r.payload.workEmail;\n};\nexport var cleanUserData = function (userAuthData) { return (__assign(__assign({}, userAuthData), { authorization: '*****' })); };\n//# sourceMappingURL=misc.js.map","import { Channel } from '@food/sync';\nvar authChannel = new Channel('@food/auth');\nexport { authChannel };\n//# sourceMappingURL=channels.js.map","export var createVerificationURL = function (baseUrl, redirect) {\n var result = baseUrl;\n var tokenAssignation = 'workEmailVerifyToken=';\n if (redirect) {\n result += '?redirect=' + redirect + '&' + tokenAssignation;\n }\n else {\n result += '?' + tokenAssignation;\n }\n return result;\n};\n//# sourceMappingURL=verificationUrl.js.map","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { consoleSandbox, getGlobalObject } from './misc';\n\n// TODO: Implement different loggers for different environments\nconst global = getGlobalObject();\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\n/** JSDoc */\nclass Logger {\n /** JSDoc */\n private _enabled: boolean;\n\n /** JSDoc */\n public constructor() {\n this._enabled = false;\n }\n\n /** JSDoc */\n public disable(): void {\n this._enabled = false;\n }\n\n /** JSDoc */\n public enable(): void {\n this._enabled = true;\n }\n\n /** JSDoc */\n public log(...args: any[]): void {\n if (!this._enabled) {\n return;\n }\n consoleSandbox(() => {\n global.console.log(`${PREFIX}[Log]: ${args.join(' ')}`);\n });\n }\n\n /** JSDoc */\n public warn(...args: any[]): void {\n if (!this._enabled) {\n return;\n }\n consoleSandbox(() => {\n global.console.warn(`${PREFIX}[Warn]: ${args.join(' ')}`);\n });\n }\n\n /** JSDoc */\n public error(...args: any[]): void {\n if (!this._enabled) {\n return;\n }\n consoleSandbox(() => {\n global.console.error(`${PREFIX}[Error]: ${args.join(' ')}`);\n });\n }\n}\n\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nglobal.__SENTRY__ = global.__SENTRY__ || {};\nconst logger = (global.__SENTRY__.logger as Logger) || (global.__SENTRY__.logger = new Logger());\n\nexport { logger };\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/typedef */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n\n/** SyncPromise internal states */\nenum States {\n /** Pending */\n PENDING = 'PENDING',\n /** Resolved / OK */\n RESOLVED = 'RESOLVED',\n /** Rejected / Error */\n REJECTED = 'REJECTED',\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise implements PromiseLike {\n private _state: States = States.PENDING;\n private _handlers: Array<{\n done: boolean;\n onfulfilled?: ((value: T) => T | PromiseLike) | null;\n onrejected?: ((reason: any) => any) | null;\n }> = [];\n private _value: any;\n\n public constructor(\n executor: (resolve: (value?: T | PromiseLike | null) => void, reject: (reason?: any) => void) => void,\n ) {\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n public static resolve(value: T | PromiseLike): PromiseLike {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n }\n\n /** JSDoc */\n public static reject(reason?: any): PromiseLike {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n }\n\n /** JSDoc */\n public static all(collection: Array>): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n if (!Array.isArray(collection)) {\n reject(new TypeError(`Promise.all requires an array as input.`));\n return;\n }\n\n if (collection.length === 0) {\n resolve([]);\n return;\n }\n\n let counter = collection.length;\n const resolvedCollection: U[] = [];\n\n collection.forEach((item, index) => {\n SyncPromise.resolve(item)\n .then(value => {\n resolvedCollection[index] = value;\n counter -= 1;\n\n if (counter !== 0) {\n return;\n }\n resolve(resolvedCollection);\n })\n .then(null, reject);\n });\n });\n }\n\n /** JSDoc */\n public then(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike) | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike) | null,\n ): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n this._attachHandler({\n done: false,\n onfulfilled: result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result as any);\n return;\n }\n try {\n resolve(onfulfilled(result));\n return;\n } catch (e) {\n reject(e);\n return;\n }\n },\n onrejected: reason => {\n if (!onrejected) {\n reject(reason);\n return;\n }\n try {\n resolve(onrejected(reason));\n return;\n } catch (e) {\n reject(e);\n return;\n }\n },\n });\n });\n }\n\n /** JSDoc */\n public catch(\n onrejected?: ((reason: any) => TResult | PromiseLike) | null,\n ): PromiseLike {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n public finally(onfinally?: (() => void) | null): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n let val: TResult | any;\n let isRejected: boolean;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve((val as unknown) as any);\n });\n });\n }\n\n /** JSDoc */\n public toString(): string {\n return '[object SyncPromise]';\n }\n\n /** JSDoc */\n private readonly _resolve = (value?: T | PromiseLike | null) => {\n this._setResult(States.RESOLVED, value);\n };\n\n /** JSDoc */\n private readonly _reject = (reason?: any) => {\n this._setResult(States.REJECTED, reason);\n };\n\n /** JSDoc */\n private readonly _setResult = (state: States, value?: T | PromiseLike | any) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n (value as PromiseLike).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };\n\n // TODO: FIXME\n /** JSDoc */\n private readonly _attachHandler = (handler: {\n /** JSDoc */\n done: boolean;\n /** JSDoc */\n onfulfilled?(value: T): any;\n /** JSDoc */\n onrejected?(reason: any): any;\n }) => {\n this._handlers = this._handlers.concat(handler);\n this._executeHandlers();\n };\n\n /** JSDoc */\n private readonly _executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler.done) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n if (handler.onfulfilled) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler.onfulfilled((this._value as unknown) as any);\n }\n }\n\n if (this._state === States.REJECTED) {\n if (handler.onrejected) {\n handler.onrejected(this._value);\n }\n }\n\n handler.done = true;\n });\n };\n}\n\nexport { SyncPromise };\n","import { User } from './user';\n\n/**\n * @inheritdoc\n */\nexport interface Session extends SessionContext {\n /** JSDoc */\n update(context?: SessionContext): void;\n\n /** JSDoc */\n close(status?: SessionStatus): void;\n\n /** JSDoc */\n toJSON(): {\n init: boolean;\n sid: string;\n did?: string;\n timestamp: string;\n started: string;\n duration: number;\n status: SessionStatus;\n errors: number;\n attrs?: {\n release?: string;\n environment?: string;\n user_agent?: string;\n ip_address?: string;\n };\n };\n}\n\n/**\n * Session Context\n */\nexport interface SessionContext {\n sid?: string;\n did?: string;\n init?: boolean;\n timestamp?: number;\n started?: number;\n duration?: number;\n status?: SessionStatus;\n release?: string;\n environment?: string;\n userAgent?: string;\n ipAddress?: string;\n errors?: number;\n user?: User | null;\n}\n\n/**\n * Session Status\n */\nexport enum SessionStatus {\n /** JSDoc */\n Ok = 'ok',\n /** JSDoc */\n Exited = 'exited',\n /** JSDoc */\n Crashed = 'crashed',\n /** JSDoc */\n Abnormal = 'abnormal',\n}\n","/* eslint-disable max-lines */\nimport {\n Breadcrumb,\n CaptureContext,\n Context,\n Contexts,\n Event,\n EventHint,\n EventProcessor,\n Extra,\n Extras,\n Primitive,\n Scope as ScopeInterface,\n ScopeContext,\n Severity,\n Span,\n Transaction,\n User,\n} from '@sentry/types';\nimport { dateTimestampInSeconds, getGlobalObject, isPlainObject, isThenable, SyncPromise } from '@sentry/utils';\n\nimport { Session } from './session';\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nexport class Scope implements ScopeInterface {\n /** Flag if notifiying is happening. */\n protected _notifyingListeners: boolean = false;\n\n /** Callback for client to receive scope changes. */\n protected _scopeListeners: Array<(scope: Scope) => void> = [];\n\n /** Callback list that will be called after {@link applyToEvent}. */\n protected _eventProcessors: EventProcessor[] = [];\n\n /** Array of breadcrumbs. */\n protected _breadcrumbs: Breadcrumb[] = [];\n\n /** User */\n protected _user: User = {};\n\n /** Tags */\n protected _tags: { [key: string]: Primitive } = {};\n\n /** Extra */\n protected _extra: Extras = {};\n\n /** Contexts */\n protected _contexts: Contexts = {};\n\n /** Fingerprint */\n protected _fingerprint?: string[];\n\n /** Severity */\n protected _level?: Severity;\n\n /** Transaction Name */\n protected _transactionName?: string;\n\n /** Span */\n protected _span?: Span;\n\n /** Session */\n protected _session?: Session;\n\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n public static clone(scope?: Scope): Scope {\n const newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = [...scope._breadcrumbs];\n newScope._tags = { ...scope._tags };\n newScope._extra = { ...scope._extra };\n newScope._contexts = { ...scope._contexts };\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = [...scope._eventProcessors];\n }\n return newScope;\n }\n\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n public addScopeListener(callback: (scope: Scope) => void): void {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n public addEventProcessor(callback: EventProcessor): this {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): this {\n this._user = user || {};\n if (this._session) {\n this._session.update({ user });\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getUser(): User | undefined {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): this {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): this {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): this {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): this {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setFingerprint(fingerprint: string[]): this {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setLevel(level: Severity): this {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTransactionName(name?: string): this {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Can be removed in major version.\n * @deprecated in favor of {@link this.setTransactionName}\n */\n public setTransaction(name?: string): this {\n return this.setTransactionName(name);\n }\n\n /**\n * @inheritDoc\n */\n public setContext(key: string, context: Context | null): this {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts = { ...this._contexts, [key]: context };\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setSpan(span?: Span): this {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSpan(): Span | undefined {\n return this._span;\n }\n\n /**\n * @inheritDoc\n */\n public getTransaction(): Transaction | undefined {\n // often, this span will be a transaction, but it's not guaranteed to be\n const span = this.getSpan() as undefined | (Span & { spanRecorder: { spans: Span[] } });\n\n // try it the new way first\n if (span?.transaction) {\n return span?.transaction;\n }\n\n // fallback to the old way (known bug: this only finds transactions with sampled = true)\n if (span?.spanRecorder?.spans[0]) {\n return span.spanRecorder.spans[0] as Transaction;\n }\n\n // neither way found a transaction\n return undefined;\n }\n\n /**\n * @inheritDoc\n */\n public setSession(session?: Session): this {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSession(): Session | undefined {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n public update(captureContext?: CaptureContext): this {\n if (!captureContext) {\n return this;\n }\n\n if (typeof captureContext === 'function') {\n const updatedScope = (captureContext as (scope: T) => T)(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n\n if (captureContext instanceof Scope) {\n this._tags = { ...this._tags, ...captureContext._tags };\n this._extra = { ...this._extra, ...captureContext._extra };\n this._contexts = { ...this._contexts, ...captureContext._contexts };\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n } else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext as ScopeContext;\n this._tags = { ...this._tags, ...captureContext.tags };\n this._extra = { ...this._extra, ...captureContext.extra };\n this._contexts = { ...this._contexts, ...captureContext.contexts };\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public clear(): this {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, maxBreadcrumbs?: number): this {\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n\n this._breadcrumbs =\n maxBreadcrumbs !== undefined && maxBreadcrumbs >= 0\n ? [...this._breadcrumbs, mergedBreadcrumb].slice(-maxBreadcrumbs)\n : [...this._breadcrumbs, mergedBreadcrumb];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public clearBreadcrumbs(): this {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Applies the current context and fingerprint to the event.\n * Note that breadcrumbs will be added by the client.\n * Also if the event has already breadcrumbs on it, we do not merge them.\n * @param event Event\n * @param hint May contain additional informartion about the original exception.\n * @hidden\n */\n public applyToEvent(event: Event, hint?: EventHint): PromiseLike {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = { ...this._extra, ...event.extra };\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = { ...this._tags, ...event.tags };\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = { ...this._user, ...event.user };\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = { ...this._contexts, ...event.contexts };\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relys on that.\n if (this._span) {\n event.contexts = { trace: this._span.getTraceContext(), ...event.contexts };\n const transactionName = this._span.transaction?.name;\n if (transactionName) {\n event.tags = { transaction: transactionName, ...event.tags };\n }\n }\n\n this._applyFingerprint(event);\n\n event.breadcrumbs = [...(event.breadcrumbs || []), ...this._breadcrumbs];\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n\n return this._notifyEventProcessors([...getGlobalEventProcessors(), ...this._eventProcessors], event, hint);\n }\n\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n protected _notifyEventProcessors(\n processors: EventProcessor[],\n event: Event | null,\n hint?: EventHint,\n index: number = 0,\n ): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) as Event | null;\n if (isThenable(result)) {\n (result as PromiseLike)\n .then(final => this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n }\n\n /**\n * This will be called on every set call.\n */\n protected _notifyScopeListeners(): void {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n private _applyFingerprint(event: Event): void {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n }\n}\n\n/**\n * Retruns the global event processors.\n */\nfunction getGlobalEventProcessors(): EventProcessor[] {\n /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */\n const global = getGlobalObject();\n global.__SENTRY__ = global.__SENTRY__ || {};\n global.__SENTRY__.globalEventProcessors = global.__SENTRY__.globalEventProcessors || [];\n return global.__SENTRY__.globalEventProcessors;\n /* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nexport function addGlobalEventProcessor(callback: EventProcessor): void {\n getGlobalEventProcessors().push(callback);\n}\n","/* eslint-disable max-lines */\nimport {\n Breadcrumb,\n BreadcrumbHint,\n Client,\n CustomSamplingContext,\n Event,\n EventHint,\n Extra,\n Extras,\n Hub as HubInterface,\n Integration,\n IntegrationClass,\n Primitive,\n SessionContext,\n SessionStatus,\n Severity,\n Span,\n SpanContext,\n Transaction,\n TransactionContext,\n User,\n} from '@sentry/types';\nimport { consoleSandbox, dateTimestampInSeconds, getGlobalObject, isNodeEnv, logger, uuid4 } from '@sentry/utils';\n\nimport { Carrier, DomainAsCarrier, Layer } from './interfaces';\nimport { Scope } from './scope';\nimport { Session } from './session';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nexport const API_VERSION = 3;\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * Absolute maximum number of breadcrumbs added to an event. The\n * `maxBreadcrumbs` option cannot be higher than this value.\n */\nconst MAX_BREADCRUMBS = 100;\n\n/**\n * @inheritDoc\n */\nexport class Hub implements HubInterface {\n /** Is a {@link Layer}[] containing the client and scope */\n private readonly _stack: Layer[] = [{}];\n\n /** Contains the last event id of a captured event. */\n private _lastEventId?: string;\n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n public constructor(client?: Client, scope: Scope = new Scope(), private readonly _version: number = API_VERSION) {\n this.getStackTop().scope = scope;\n this.bindClient(client);\n }\n\n /**\n * @inheritDoc\n */\n public isOlderThan(version: number): boolean {\n return this._version < version;\n }\n\n /**\n * @inheritDoc\n */\n public bindClient(client?: Client): void {\n const top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n */\n public pushScope(): Scope {\n // We want to clone the content of prev scope\n const scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n */\n public popScope(): boolean {\n if (this.getStack().length <= 1) return false;\n return !!this.getStack().pop();\n }\n\n /**\n * @inheritDoc\n */\n public withScope(callback: (scope: Scope) => void): void {\n const scope = this.pushScope();\n try {\n callback(scope);\n } finally {\n this.popScope();\n }\n }\n\n /**\n * @inheritDoc\n */\n public getClient(): C | undefined {\n return this.getStackTop().client as C;\n }\n\n /** Returns the scope of the top stack. */\n public getScope(): Scope | undefined {\n return this.getStackTop().scope;\n }\n\n /** Returns the scope stack for domains or the process. */\n public getStack(): Layer[] {\n return this._stack;\n }\n\n /** Returns the topmost scope layer in the order domain > local > process. */\n public getStackTop(): Layer {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public captureException(exception: any, hint?: EventHint): string {\n const eventId = (this._lastEventId = uuid4());\n let finalHint = hint;\n\n // If there's no explicit hint provided, mimick the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n let syntheticException: Error;\n try {\n throw new Error('Sentry syntheticException');\n } catch (exception) {\n syntheticException = exception as Error;\n }\n finalHint = {\n originalException: exception,\n syntheticException,\n };\n }\n\n this._invokeClient('captureException', exception, {\n ...finalHint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureMessage(message: string, level?: Severity, hint?: EventHint): string {\n const eventId = (this._lastEventId = uuid4());\n let finalHint = hint;\n\n // If there's no explicit hint provided, mimick the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n let syntheticException: Error;\n try {\n throw new Error(message);\n } catch (exception) {\n syntheticException = exception as Error;\n }\n finalHint = {\n originalException: message,\n syntheticException,\n };\n }\n\n this._invokeClient('captureMessage', message, level, {\n ...finalHint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint): string {\n const eventId = (this._lastEventId = uuid4());\n this._invokeClient('captureEvent', event, {\n ...hint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public lastEventId(): string | undefined {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void {\n const { scope, client } = this.getStackTop();\n\n if (!scope || !client) return;\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (client.getOptions && client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) as Breadcrumb | null)\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n scope.addBreadcrumb(finalBreadcrumb, Math.min(maxBreadcrumbs, MAX_BREADCRUMBS));\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): void {\n const scope = this.getScope();\n if (scope) scope.setUser(user);\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): void {\n const scope = this.getScope();\n if (scope) scope.setTags(tags);\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): void {\n const scope = this.getScope();\n if (scope) scope.setExtras(extras);\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): void {\n const scope = this.getScope();\n if (scope) scope.setTag(key, value);\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): void {\n const scope = this.getScope();\n if (scope) scope.setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public setContext(name: string, context: { [key: string]: any } | null): void {\n const scope = this.getScope();\n if (scope) scope.setContext(name, context);\n }\n\n /**\n * @inheritDoc\n */\n public configureScope(callback: (scope: Scope) => void): void {\n const { scope, client } = this.getStackTop();\n if (scope && client) {\n callback(scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n public run(callback: (hub: Hub) => void): void {\n const oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n */\n public getIntegration(integration: IntegrationClass): T | null {\n const client = this.getClient();\n if (!client) return null;\n try {\n return client.getIntegration(integration);\n } catch (_oO) {\n logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n public startSpan(context: SpanContext): Span {\n return this._callExtensionMethod('startSpan', context);\n }\n\n /**\n * @inheritDoc\n */\n public startTransaction(context: TransactionContext, customSamplingContext?: CustomSamplingContext): Transaction {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n }\n\n /**\n * @inheritDoc\n */\n public traceHeaders(): { [key: string]: string } {\n return this._callExtensionMethod<{ [key: string]: string }>('traceHeaders');\n }\n\n /**\n * @inheritDoc\n */\n public captureSession(endSession: boolean = false): void {\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n\n // only send the update\n this._sendSessionUpdate();\n }\n\n /**\n * @inheritDoc\n */\n public endSession(): void {\n this.getStackTop()\n ?.scope?.getSession()\n ?.close();\n this._sendSessionUpdate();\n\n // the session is over; take it off of the scope\n this.getStackTop()?.scope?.setSession();\n }\n\n /**\n * @inheritDoc\n */\n public startSession(context?: SessionContext): Session {\n const { scope, client } = this.getStackTop();\n const { release, environment } = (client && client.getOptions()) || {};\n const session = new Session({\n release,\n environment,\n ...(scope && { user: scope.getUser() }),\n ...context,\n });\n\n if (scope) {\n // End existing session if there's one\n const currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === SessionStatus.Ok) {\n currentSession.update({ status: SessionStatus.Exited });\n }\n this.endSession();\n\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n\n return session;\n }\n\n /**\n * Sends the current Session on the scope\n */\n private _sendSessionUpdate(): void {\n const { scope, client } = this.getStackTop();\n if (!scope) return;\n\n const session = scope.getSession && scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n }\n\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _invokeClient(method: M, ...args: any[]): void {\n const { scope, client } = this.getStackTop();\n if (client && client[method]) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (client as any)[method](...args, scope);\n }\n }\n\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _callExtensionMethod(method: string, ...args: any[]): T {\n const carrier = getMainCarrier();\n const sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\n/** Returns the global shim registry. */\nexport function getMainCarrier(): Carrier {\n const carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return carrier;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nexport function makeMain(hub: Hub): Hub {\n const registry = getMainCarrier();\n const oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nexport function getCurrentHub(): Hub {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * Returns the active domain, if one exists\n * @deprecated No longer used; remove in v7\n * @returns The domain, or undefined if there is no active domain\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getActiveDomain(): DomainAsCarrier | undefined {\n logger.warn('Function `getActiveDomain` is deprecated and will be removed in a future version.');\n\n const sentry = getMainCarrier().__SENTRY__;\n\n return sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n}\n\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry: Carrier): Hub {\n try {\n const activeDomain = getMainCarrier().__SENTRY__?.extensions?.domain?.active;\n\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n const registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n } catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier: Carrier): boolean {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nexport function getHubFromCarrier(carrier: Carrier): Hub {\n if (carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub) return carrier.__SENTRY__.hub;\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = new Hub();\n return carrier.__SENTRY__.hub;\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nexport function setHubOnCarrier(carrier: Carrier, hub: Hub): boolean {\n if (!carrier) return false;\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = hub;\n return true;\n}\n","export {\n addBreadcrumb,\n captureException,\n captureEvent,\n captureMessage,\n configureScope,\n startTransaction,\n setContext,\n setExtra,\n setExtras,\n setTag,\n setTags,\n setUser,\n withScope,\n} from '@sentry/minimal';\nexport { addGlobalEventProcessor, getCurrentHub, getHubFromCarrier, Hub, makeMain, Scope } from '@sentry/hub';\nexport { API } from './api';\nexport { BaseClient } from './baseclient';\nexport { BackendClass, BaseBackend } from './basebackend';\nexport { eventToSentryRequest, sessionToSentryRequest } from './request';\nexport { initAndBind, ClientClass } from './sdk';\nexport { NoopTransport } from './transports/noop';\nexport { SDK_VERSION } from './version';\n\nimport * as Integrations from './integrations';\n\nexport { Integrations };\n","var __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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { mergeConfig } from './config';\nimport { canUseDOM } from 'exenv';\nimport { addUserKey, httpApiCall } from '../utils/misc';\nimport { authChannel } from '../utils/channels';\nimport { isExtendedSocial, SOCIAL, } from '../types';\nimport { createVerificationURL } from '../utils/verificationUrl';\nimport * as Sentry from '@sentry/browser';\n// let oldUserData: any = null;\nvar STORAGE_TOKEN_NAME = 'auth_token';\nvar STORAGE_USER_INFO_NAME = 'user_info';\nvar STORAGE_LOGINTYPE_NAME = 'login_type';\n// aggiungo le chiavi delle informazioni salvate su localstorage fra quelle che devono essere resettate in caso di\n// cambio utente / logout\naddUserKey([\n STORAGE_LOGINTYPE_NAME,\n STORAGE_USER_INFO_NAME,\n STORAGE_TOKEN_NAME,\n]);\nfunction loadUserDataFromLS() {\n if (!canUseDOM) {\n return {};\n }\n var userDataString = localStorage.getItem(STORAGE_USER_INFO_NAME);\n if (!userDataString) {\n return {};\n }\n return JSON.parse(userDataString);\n}\nfunction getUserData() {\n return loadUserDataFromLS();\n}\nfunction getValidToken() {\n if (!canUseDOM) {\n return null;\n }\n return localStorage.getItem(STORAGE_TOKEN_NAME);\n}\nvar setAuthToken = function (token) {\n if (canUseDOM) {\n localStorage.setItem(STORAGE_TOKEN_NAME, token);\n }\n};\nfunction setUserData(data) {\n if (canUseDOM) {\n // oldUserData = data;\n localStorage.setItem(STORAGE_USER_INFO_NAME, JSON.stringify(data.user));\n }\n}\nfunction setLoginType(loginType) {\n if (canUseDOM) {\n localStorage.setItem(STORAGE_LOGINTYPE_NAME, loginType);\n }\n}\nvar getLoginType = function () {\n if (canUseDOM) {\n var val_1 = localStorage.getItem(STORAGE_LOGINTYPE_NAME);\n if (!val_1) {\n return undefined;\n }\n else if (isExtendedSocial(val_1)) {\n return val_1;\n }\n else {\n console.error(\"Corrupted localStorage key \" + STORAGE_LOGINTYPE_NAME + \"=\" + val_1);\n Sentry.withScope(function (scope) {\n scope.setExtra('Chiave di localStorage', STORAGE_LOGINTYPE_NAME);\n scope.setExtra('Valore di localStorage', val_1);\n Sentry.captureException(new Error('Corrupted localStorage key'));\n });\n }\n }\n return undefined;\n};\nfunction isLogged() {\n if (!canUseDOM) {\n return false;\n }\n var data = getUserData();\n var key = getValidToken();\n return Boolean(data && data.id && key);\n}\nfunction setAuth(serverAuth, loginType, isSwitch) {\n var oldUser = getUserData();\n setUserData(serverAuth.auth);\n setAuthToken(serverAuth.authorization);\n if (loginType) {\n setLoginType(loginType);\n }\n var newUser = getUserData();\n authChannel.postMessage({\n type: 'USER_CHANGED',\n args: { oldUser: oldUser, newUser: newUser, isSwitch: Boolean(isSwitch) },\n });\n}\nfunction logout() {\n var oldUser = getUserData();\n // azzero le chiavi localstorage legate all'utente\n var keysToInvalidate = JSON.parse(localStorage.getItem('@food/userKeys') || '[]');\n keysToInvalidate.forEach(function (key) { return localStorage.removeItem(key); });\n authChannel.postMessage({\n type: 'USER_CHANGED',\n args: { newUser: null, oldUser: oldUser },\n });\n}\nvar auth = function (partialConfig) {\n var config = mergeConfig(partialConfig);\n var origin = canUseDOM ? window.location.origin : '';\n var redirectUrl = config.OAUTH_REDIRECT_URI;\n var SOCIAL_TYPES = {\n GOOGLE: {\n key: SOCIAL.GOOGLE,\n label: 'Sign in with Google',\n loginURL: function () {\n return config.GOOGLE_AUTH_URL + \"&redirect_uri=\" + redirectUrl + \"&state=\" + encodeURIComponent(JSON.stringify({ origin: origin }));\n },\n },\n FACEBOOK: {\n key: SOCIAL.FACEBOOK,\n label: 'Sign in with Facebook',\n loginURL: function () {\n return config.FACEBOOK_AUTH_URL + \"&redirect_uri=\" + redirectUrl + \"&state=\" + encodeURIComponent(JSON.stringify({ origin: origin }));\n },\n },\n LINKEDIN: {\n key: SOCIAL.LINKEDIN,\n label: 'Sign in with LinkedIn',\n loginURL: function () {\n return config.LINKEDIN_AUTH_URL + \"&redirect_uri=\" + redirectUrl + \"&state=\" + encodeURIComponent(JSON.stringify({ origin: origin }));\n },\n },\n };\n function authenticate(args, tokens, needsAuth, redirect) {\n var _a;\n if (tokens === void 0) { tokens = {}; }\n if (needsAuth === void 0) { needsAuth = false; }\n return __awaiter(this, void 0, void 0, function () {\n var privacyOptIns, callBody, result;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n privacyOptIns = [];\n if (args.newsletterAccepted) {\n privacyOptIns.push('TRANSFER');\n }\n callBody = {\n sourceApp: args.sourceApp,\n email: args.email,\n password: args.password,\n cryptoRenewToken: args.cryptoRenewToken,\n socialType: args.socialType,\n grantToken: args.grantToken,\n options: __assign(__assign(__assign({ role: args.role, workEmail: args.workEmail, EmailDomain_id: args.EmailDomain_id, tosApproved: args.tosApproved, privacyOptIns: privacyOptIns, verificationUrl: createVerificationURL(config.VERIFICATION_URL, redirect) }, (needsAuth\n ? {\n authToken: (_a = getValidToken()) === null || _a === void 0 ? void 0 : _a.replace('Bearer ', ''),\n }\n : {})), { redirectUri: config.OAUTH_REDIRECT_URI }), tokens),\n };\n return [4 /*yield*/, httpApiCall(callBody, config.AUTH_ENDPOINT, config.TARGET_SITE)];\n case 1:\n result = _b.sent();\n return [2 /*return*/, {\n success: result.success,\n payload: result,\n }];\n }\n });\n });\n }\n /*async function trySocialUpgrade(\n grantToken: string,\n socialType: SOCIAL,\n authToken: string,\n ): Promise {\n const origin = canUseDOM ? window.location.origin : '';\n\n const result = await httpApiCall(\n {\n sourceApp: config.TARGET_SITE,\n socialType,\n grantToken,\n options: {\n authToken: authToken.replace('Bearer ', ''),\n redirectUri: origin + config.OAUTH_REDIRECT_URI,\n },\n },\n config.AUTH_ENDPOINT,\n config.TARGET_SITE,\n );\n return { success: result.success === true, payload: result };\n }\n */\n return {\n SOCIAL_TYPES: SOCIAL_TYPES,\n authenticate: authenticate,\n };\n};\nexport { auth, isLogged, getValidToken, getUserData, getLoginType, setAuth, setAuthToken, logout, };\n//# sourceMappingURL=auth.js.map","import { registerClass } from '@food/css-manager';\nexport var logoImg = registerClass(function () { return \"\\n\\tmax-width: 100%;\\n\\tmargin: auto;\\n\\twidth: 100%;\\n\"; });\nexport var footer = registerClass(function (theme, sc) { return \"\\n\\tdisplay: flex;\\n\\tjustify-content: space-between;\\n\\tpadding: 0;\\n\\tmargin-top: \" + theme.ratios.l * theme.font.baseSize + \"px;\\n\\n\\t&.\" + sc('centered') + \" {\\n\\t\\tjustify-content: center;\\n\\t}\\n\"; });\nexport var defaultMarginBottom = registerClass(function (theme) {\n return \"margin-bottom: \" + theme.ratios.l * theme.font.baseSize + \"px\";\n});\n//# sourceMappingURL=theme.js.map","import React from 'react';\nimport { registerClass, classNames, subClass } from '@food/css-manager';\nimport icoeot from '../static/assets/icomoon/icomoon.eot';\nimport icottf from '../static/assets/icomoon/icomoon.ttf';\nimport icowoff from '../static/assets/icomoon/icomoon.woff';\nimport icosvg from '../static/assets/icomoon/icomoon.svg';\nimport miwoff2 from '../static/assets/material_icons/MaterialIcons-Regular.woff2';\nimport miwoff from '../static/assets/material_icons/MaterialIcons-Regular.woff';\nimport mittf from '../static/assets/material_icons/MaterialIcons-Regular.ttf';\nimport { registerGlobal } from '@food/css-manager';\nregisterGlobal(function () { return \"\\n@font-face {\\n\\tfont-family: 'icomoon';\\n\\tsrc: url('\" + icoeot + \"');\\n\\tsrc: url('\" + icoeot + \"#iefix') format('embedded-opentype'),\\n\\t\\turl('\" + icottf + \"') format('truetype'),\\n\\t\\turl('\" + icowoff + \"') format('woff'),\\n\\t\\turl('\" + icosvg + \"#icomoon') format('svg');\\n\\tfont-weight: normal;\\n\\tfont-style: normal;\\n}\\n\\n@font-face {\\n\\tfont-family: 'Material Icons';\\n\\tfont-style: normal;\\n\\tfont-weight: 400;\\n\\tsrc: local('Material Icons'),\\n\\t\\tlocal('MaterialIcons-Regular'),\\n\\t\\turl(\" + miwoff2 + \") format('woff2'),\\n\\t\\turl(\" + miwoff + \") format('woff'),\\n\\t\\turl(\" + mittf + \") format('truetype');\\n}\\n\"; });\nvar materialIconClass = registerClass(function () { return \"\\nfont-family: 'Material Icons';\\nfont-weight: normal;\\nfont-style: normal;\\ndisplay: inline-block;\\nline-height: 1;\\ntext-transform: none !important;\\nletter-spacing: normal;\\nword-wrap: normal;\\nwhite-space: nowrap;\\ndirection: ltr;\\n-webkit-font-smoothing: antialiased;\\ntext-rendering: optimizeLegibility;\\n-moz-osx-font-smoothing: grayscale;\\nfont-feature-settings: 'liga';\\n\"; });\nvar icomoonIconClass = registerClass(function (t, sc) { return \"\\nfont-family: 'icomoon' !important;\\nspeak: none;\\nfont-style: normal;\\nfont-weight: normal;\\nfont-variant: normal;\\ntext-transform: none;\\nline-height: 1;\\n-webkit-font-smoothing: antialiased;\\n-moz-osx-font-smoothing: grayscale;\\n\\n&.\" + sc('instagram') + \":before {\\n content: \\\"\\\\e90a\\\";\\n}\\n&.\" + sc('twitter') + \":before {\\n content: \\\"\\\\e906\\\";\\n}\\n&.\" + sc('vimeo') + \":before {\\n content: \\\"\\\\e907\\\";\\n}\\n&.\" + sc('linkedin') + \":before {\\n content: \\\"\\\\e904\\\";\\n}\\n&.\" + sc('google') + \":before {\\n content: \\\"\\\\e902\\\";\\n}\\n&.\" + sc('facebook') + \":before {\\n content: \\\"\\\\e903\\\";\\n}\\n\"; });\nvar clickableClass = registerClass(function (t, sc) { return \"\\n\\tcursor: pointer;\\n\"; });\nexport var Icon = function (_a) {\n var name = _a.name, className = _a.className, onClick = _a.onClick;\n var isIcomoon = icomoonIcons.indexOf(name) !== -1;\n var finalClassName = isIcomoon\n ? classNames(className, icomoonIconClass, subClass(icomoonIconClass, name), onClick && clickableClass)\n : classNames(className, materialIconClass, onClick && clickableClass);\n return (React.createElement(\"span\", { className: finalClassName, onClick: onClick }, !isIcomoon && name));\n};\nvar icomoonIcons = [\n 'facebook',\n 'twitter',\n 'linkedin',\n 'google',\n 'instagram',\n 'vimeo',\n];\n//# sourceMappingURL=icons.js.map","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { registerClass, cns, registerGlobal, currySC } from '@food/css-manager';\nimport { Icon } from './icons';\nexport var IconPositions;\n(function (IconPositions) {\n IconPositions[\"LEFT\"] = \"LEFT\";\n IconPositions[\"RIGHT\"] = \"RIGHT\";\n})(IconPositions || (IconPositions = {}));\nexport var layouts;\n(function (layouts) {\n layouts[\"BUTTON\"] = \"BUTTON\";\n layouts[\"LINK\"] = \"LINK\";\n})(layouts || (layouts = {}));\nvar style = registerClass(function (theme, sc) { return \"\\n\\tfont-weight: normal;\\n\\ttouch-action: manipulation;\\n\\tcursor: pointer;\\n\\tfont-size: 1em;\\n\\tmargin-bottom: 0;\\n\\tpadding: 0;\\n\\tborder: none;\\n\\tbackground: inherit;\\n\\ttext-decoration: none;\\n\\tfont-family: inherit;\\n\\tbox-sizing: border-box;\\n\\n\\t&.\" + sc('layout', 'BUTTON') + \" {\\n\\t\\tfont-weight: \" + theme.button.fontWeight + \";\\n\\t\\tcolor: \" + theme.colors.white + \";\\n\\t\\tbackground-color: \" + theme.colors.action.plain + \";\\n\\t\\tborder-color: \" + theme.colors.action.plain + \";\\n\\t\\tdisplay: inline-flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\ttext-align: center;\\n\\t\\tvertical-align: middle;\\n\\t\\tpadding: .5em 1em;\\n\\t\\tborder-radius: \" + theme.radius * theme.font.baseSize + \"px;\\n\\t\\tbackground-image: none;\\n\\t\\twhite-space: nowrap;\\n\\t\\tuser-select: none;\\n\\t\\t\\n\\t\\t\" + Object.keys(theme.colors)\n .filter(function (k) { return !!theme.colors[k].disabled; })\n .map(function (d) {\n return \"&.\" + sc(\"type-\" + d) + \" {\\n\\t\\t\\t\\tbackground-color: \" + theme.colors[d].plain + \";\\n\\t\\t\\t\\tborder-color: \" + theme.colors[d].plain + \";\\n\\t\\t\\t}\";\n})\n .join('') + \"\\n\\t}\\n\\t\\n\\t&.\" + sc('layout', 'LINK') + \" {\\n\\t\\tdisplay: inline;\\n\\t\\tcolor: inherit;\\n\\t\\tbackground-color: transparent; // IE11FIX\\n\\t\\tvertical-align: inherit;\\n\\t\\t\\n\\t\\t&:hover {\\n\\t\\t\\ttext-decoration: underline;\\n\\t\\t}\\n\\t\\t\\n\\t\\t.\" + sc('icn') + \" {\\n\\t\\t\\tdisplay: inline;\\n\\t\\t}\\n\\n\\t\\t\" + Object.keys(theme.colors)\n .filter(function (k) { return !!theme.colors[k].disabled; })\n .map(function (d) {\n return \"&.\" + sc(\"type-\" + d) + \" {\\n\\t\\t\\t\\tcolor: \" + theme.colors[d].plain + \";\\n\\t\\t\\t}\";\n})\n .join('') + \"\\n\\t\\t\\n\\t\\t&.\" + sc('wicon') + \" {\\n\\t\\t\\tvertical-align: middle;\\n\\t\\t\\t\\n\\t\\t\\t&.\" + sc('iconPos', 'LEFT') + \" {\\n\\t\\t\\t\\t> .\" + sc('icn') + \" {\\n\\t\\t\\t\\t\\tmargin-right: .5ex;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t\\n\\t\\t\\t&.\" + sc('iconPos', 'RIGHT') + \" {\\n\\t\\t\\t\\t> .\" + sc('icn') + \" {\\n\\t\\t\\t\\t\\tmargin-left: .5ex;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&.\" + sc('wicon') + \" {\\n\\t\\t\\n\\t\\t> .\" + sc('icn') + \" {\\n\\t\\t\\tvertical-align: inherit;\\n\\t\\t}\\n\\t\\t\\n\\t\\t&.\" + sc('iconPos', 'LEFT') + \" {\\n\\t\\t\\t> .\" + sc('icn') + \" {\\n\\t\\t\\t\\tmargin-right: .5em;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&.\" + sc('iconPos', 'RIGHT') + \" {\\n\\t\\t\\t> .\" + sc('icn') + \" {\\n\\t\\t\\t\\tmargin-left: .5em;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\t\\n\\t&.\" + sc('onlyIcon') + \" {\\n\\t\\tpadding: .5em;\\n\\t\\t\\n\\t\\t&.\" + sc('rounded') + \" {\\n\\t\\t\\tborder-radius: 100%;\\n\\t\\t}\\n\\t}\\n\\t\\n\\t&[disabled] {\\n\\t\\topacity: .6;\\n\\t\\tcursor: not-allowed;\\n\\t}\\n\\t\\n\\t&.\" + sc('block') + \" {\\n\\t\\tdisplay: block;\\n\\t\\twidth: 100%;\\n\\t\\ttext-align: center;\\n\\t}\\n\\t\\n\"; });\n// Reset il default su Safari\nregisterGlobal(function () { return \"\\n\\tbutton {\\n\\t\\tmargin: 0;\\n\\t}\\n\"; });\nvar sc = currySC(style);\nvar isExternal = function (url) { return /^(ftp:\\/\\/|mailto:|https?:\\/\\/)/.test(url); };\nexport var Button = function (_a) {\n var className = _a.className, layout = _a.layout, label = _a.label, icon = _a.icon, iconPos = _a.iconPos, _b = _a.type, type = _b === void 0 ? 'transparent' : _b, block = _a.block, onClick = _a.onClick, _c = _a.disabled, disabled = _c === void 0 ? false : _c, linkTo = _a.linkTo, linkTarget = _a.linkTarget, _d = _a.rounded, rounded = _d === void 0 ? true : _d;\n var onlyIcon = icon && !label;\n if (!onlyIcon && !iconPos) {\n iconPos = IconPositions.LEFT;\n }\n var icn = React.createElement(Icon, { name: icon, className: sc('icn') });\n var classes = cns(className, style, sc(\"type-\" + type), sc(\"iconPos-\" + iconPos), rounded && sc('rounded'), block && sc('block'), icon && sc('wicon'), onlyIcon && sc('onlyIcon'), sc('layout', layout || (linkTo ? layouts.LINK : layouts.BUTTON)));\n var content = (React.createElement(React.Fragment, null,\n onlyIcon && icn,\n !onlyIcon && icon && iconPos === IconPositions.LEFT && icn,\n label && React.createElement(\"span\", null, label),\n !onlyIcon && icon && iconPos === IconPositions.RIGHT && icn));\n var handler = function (event) {\n if (onClick) {\n onClick(event);\n }\n };\n if (linkTo) {\n if (isExternal(linkTo)) {\n return (React.createElement(\"a\", { href: linkTo, target: linkTarget, className: classes, onClick: handler }, content));\n }\n else {\n return (React.createElement(Link, { to: linkTo, target: linkTarget, className: classes, onClick: handler }, content));\n }\n }\n else {\n return (React.createElement(\"button\", { disabled: disabled, type: 'button', className: classes, onClick: handler }, content));\n }\n};\n//# sourceMappingURL=Button.js.map","import React from 'react';\nimport { registerClass, classNames, subClass } from '@food/css-manager';\nimport { Icon } from './icons';\nvar style = registerClass(function (theme, sc) { return \"\\n\\t\\tfont-size: 1em;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tcursor: pointer;\\n\\t\\tbackground: none;\\n\\t\\tborder: none;\\n\\t\\tpadding: \" + theme.ratios.l / 2 + \"em 0;\\n\\t\\ttext-align: left;\\n\\n\\t\\t> * {\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t\\tvertical-align: middle;\\n\\t\\t\\ttext-align: left;\\n\\t\\t}\\n\\t\\n\\t\\t.\" + sc('icon') + \" {\\n\\t\\t\\tfont-size: \" + theme.ratios.xl + \"em;\\n\\t\\t\\tmargin-right: \" + (theme.ratios.l - 1) + \"em;\\n\\t\\t\\tcolor: \" + theme.colors.grey + \";\\n\\t\\t}\\n\\t\\n\\t\\t&.\" + sc('active') + \" > .\" + sc('icon') + \" {\\n\\t\\t\\tcolor: \" + theme.colors.success.plain + \";\\n\\t\\t}\\n\\t\\t\\n\\t\\t&[disabled] {\\n\\t\\t\\tcursor: not-allowed;\\n\\t\\t}\\n\\t\"; });\nexport var Checkbox = function (_a) {\n var className = _a.className, label = _a.label, checked = _a.checked, disabled = _a.disabled, onChange = _a.onChange;\n return (React.createElement(\"button\", { disabled: disabled, className: classNames(className, style, checked ? subClass(style, 'active') : null, disabled ? subClass(style, 'disabled') : null), onClick: function (event) {\n event.preventDefault();\n if (onChange) {\n onChange(!checked);\n }\n return false;\n } },\n React.createElement(Icon, { name: checked\n ? 'check_box'\n : 'check_box_outline_blank', className: subClass(style, 'icon') }),\n React.createElement(\"span\", null, label)));\n};\n//# sourceMappingURL=Checkbox.js.map","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React from 'react';\nimport { registerClass } from '@food/css-manager';\nimport { Button, layouts as ButtonLayouts, } from '@food/ui/build/dist/src/Button';\nimport { Checkbox } from '@food/ui/build/dist/src/Checkbox';\nimport { defaultMarginBottom, footer } from '../utils/theme';\nvar style = registerClass(function () { return \"\\n\\t> h3 {\\n\\t\\ttext-align: left;\\n\\t}\\n\"; });\nvar tosContainer = registerClass(function (theme) { return \"\\n\\tflex-direction: col;\\n\\tmax-height: 20em;\\n\\tfont-size: \" + theme.ratios.s * theme.font.baseSize + \"px;\\n\\toverflow: auto;\\n\\tpadding: 0.5em;\\n\\tborder: 1px solid \" + theme.colors.grey.plain + \";\\n\\ttext-align: left;\\n\\tmax-width: 85vw;\\n\"; });\nexport var ToS = function (_a) {\n var lang = _a.lang, tos = _a.tos, onAgree = _a.onAgree, onBack = _a.onBack, t = _a.t;\n var _b = React.useState(lang), localLang = _b[0], setLang = _b[1];\n var _c = React.useState(false), extraChecked = _c[0], toggleExtra = _c[1];\n var text = tos[localLang === 'it_IT' ? 'description_ita' : 'description'];\n var extra = tos[localLang === 'it_IT' ? 'description_extra_ita' : 'description_extra'];\n return (React.createElement(React.Fragment, null,\n React.createElement(\"h2\", null, t(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"Registration - Terms & Conditions\"], [\"Registration - Terms & Conditions\"])))),\n React.createElement(\"section\", null,\n React.createElement(\"div\", { className: style },\n React.createElement(\"div\", { className: defaultMarginBottom }, t(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"To continue, you must agree to Gruppo Food Terms of Service and Privacy Policy\"], [\"To continue, you must agree to Gruppo Food Terms of Service and Privacy Policy\"]))),\n \".\",\n React.createElement(\"br\", null),\n localLang !== 'it_IT' && (React.createElement(Button, { label: t(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"Clicca per leggerli in Italiano\"], [\"Clicca per leggerli in Italiano\"]))), onClick: function () {\n setLang('it_IT');\n }, layout: ButtonLayouts.LINK, type: \"alt\" })),\n localLang !== 'en_US' && (React.createElement(Button, { label: t(templateObject_4 || (templateObject_4 = __makeTemplateObject([\"Click here to read them in English\"], [\"Click here to read them in English\"]))), onClick: function () { return setLang('en_US'); }, layout: ButtonLayouts.LINK, type: \"alt\" }))),\n React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: text }, className: tosContainer }),\n extra && (React.createElement(React.Fragment, null,\n React.createElement(\"h3\", null, t(templateObject_5 || (templateObject_5 = __makeTemplateObject([\"Clausole vessatorie\"], [\"Clausole vessatorie\"])))),\n React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: extra }, className: tosContainer }),\n React.createElement(Checkbox, { label: t('I accept clausole vessatorie (required)'), checked: extraChecked, onChange: function () { return toggleExtra(!extraChecked); } }))),\n React.createElement(\"div\", { className: footer },\n React.createElement(Button, { label: t('Back'), onClick: function () {\n if (onBack) {\n onBack();\n }\n } }),\n React.createElement(Button, { disabled: !(!extra || extraChecked), label: t('I Agree'), type: 'success', onClick: function () {\n return onAgree && onAgree({ id: tos.id, newsletter: false });\n } }))))));\n};\nvar templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;\n//# sourceMappingURL=ToS.js.map","import React from 'react';\nimport { registerClass, classNames } from '@food/css-manager';\nvar style = registerClass(function (theme) { return \"\\n\\tmargin-top: \" + theme.ratios.l / 2 + \"em;\\n\\t\\n\\t> label {\\n\\t\\tdisplay: block;\\n\\t\\tcursor: pointer;\\n\\t\\tfont-size: \" + theme.ratios.s + \"em;\\n\\t\\tpadding: \" + theme.ratios.l / 2 + \"em 0;\\n\\t}\\n\\t\\n\\t> input, > select, > textarea {\\n\\t\\tdisplay: block;\\n\\t\\twidth: 100%; // !\\n\\t\\tpadding: \" + theme.ratios.xl / 2 + \"em \" + theme.ratios.xl / 2 + \"em; // !\\n\\t\\tline-height: 1; // !\\n\\t\\tcolor: \" + theme.colors.ink + \";\\n\\t\\tbackground-color: \" + theme.colors.white + \";\\n\\t\\tbackground-image: none;\\n\\t\\tborder: 1px solid \" + theme.colors.grey.plain + \";\\n\\t\\tborder-radius: \" + theme.radius * theme.font.baseSize + \"px;\\n\\t\\ttransition: border-color ease-in-out 0.15s;\\n\\t\\t\\n\\t\\t&::placeholder {\\n\\t\\t\\tcolor: \" + theme.colors.grey.plain + \";\\n\\t\\t}\\n\\t\\n\\t\\t&:hover, &:focus, &:active {\\n\\t\\t\\tborder-color: \" + theme.colors.grey.dark + \";\\n\\t\\t}\\n\\t}\\n\"; });\nvar errorClass = registerClass(function (theme) { return \"\\n\\t> input, > select, > textarea {\\n\\t\\tborder-color: \" + theme.colors.danger.plain + \";\\n\\t}\\n\"; });\nexport var Field = function (_a) {\n var className = _a.className, id = _a.id, label = _a.label, children = _a.children, error = _a.error;\n return (React.createElement(\"div\", { className: classNames(className, style, error && errorClass) },\n label && React.createElement(\"label\", { htmlFor: id },\n label,\n \":\"),\n children));\n};\n//# sourceMappingURL=Field.js.map","var __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 __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\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 __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport React from 'react';\nimport { Button, layouts as ButtonLayouts, } from '@food/ui/build/dist/src/Button';\nimport { Field } from '@food/ui/build/dist/src/Field';\nimport { SOCIAL_LOGIN_LAYOUTS } from './SocialLogin';\nimport { registerClass, classNames, subClass, } from '@food/css-manager';\nvar flexRow = registerClass(function () { return \"\\n\\tflex-direction: row;\\n\"; });\nvar flexCol = registerClass(function () { return \"\\n\\tflex-direction: column;\\n\"; });\nvar stepSection = registerClass(function (theme, sc) { return \"\\n\\tpadding: \" + (theme.ratios.l / 4) * theme.font.baseSize + \"px \" + theme.ratios.l *\n theme.font.baseSize + \"px;\\n\\n\\t> div {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: space-between;\\n\\n\\t\\t> div {\\n\\t\\t\\tmargin: \" + (theme.ratios.l / 2) * theme.font.baseSize + \"px;\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t}\\n\\t}\\n\\t\\n\\t.\" + sc('renew-email') + \" {\\n\\t\\tfont-weight: \" + theme.font.weights.semibold + \"\\n\\t}\\n\\t\\n\\t.\" + sc('renew-intro') + \" {\\n\\t\\tmargin: 1em;\\n\\t\\ttext-align: center;\\n\\t}\\n\\t\\n\\t.\" + sc('change-login-type') + \" {\\n\\t\\ttext-align: center;\\n\\t}\\n\\t\\n\\t.\" + sc('login-buttons') + \" {\\n\\t\\ttext-align: center;\\n\\n\\t\\t>button {\\n\\t\\t\\tmargin: \" + (theme.ratios.xl / 2) * theme.font.baseSize + \"px;\\n\\t\\t}\\n\\t}\\n\\t\\n\\t&.\" + sc('layout', 'STANDARD') + \" > div > div {\\n\\t\\tflex-basis: \" + theme.font.baseSize + \"px;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t}\\n\"; });\nvar sc = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return subClass.apply(void 0, __spreadArrays([stepSection], args));\n};\nvar marginBottom = registerClass(function (theme) {\n return \"margin-bottom: \" + theme.ratios.l * theme.font.baseSize + \"px;\";\n});\nvar TraditionalLogin = /** @class */ (function (_super) {\n __extends(TraditionalLogin, _super);\n function TraditionalLogin(props) {\n var _this = _super.call(this, props) || this;\n _this.setter = function (field) { return function (event) {\n var news = {};\n news[field] = event.target.value;\n _this.setState(function (prev) { return (__assign(__assign({}, prev), news)); });\n }; };\n _this.state = {\n email: props.isRenew && props.fixedEmail ? props.fixedEmail : '',\n password: '',\n };\n return _this;\n }\n TraditionalLogin.prototype.render = function () {\n var _a = this.state, email = _a.email, password = _a.password;\n var _b = this.props, onLogin = _b.onLogin, loading = _b.loading, logoElem = _b.logoElem, errors = _b.errors, t = _b.t, changePhase = _b.changePhase, isRenew = _b.isRenew, layout = _b.layout, orLogout = _b.orLogout;\n if (loading) {\n return (React.createElement(\"section\", null, t(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"loading\"], [\"loading\"]))),\n \"...\"));\n }\n return (React.createElement(React.Fragment, null,\n React.createElement(\"h2\", null, t(isRenew ? 'Renew your authentication' : 'Sign In / Register')),\n React.createElement(\"section\", { className: classNames(stepSection, sc('layout', layout)) },\n React.createElement(\"div\", { className: layout === SOCIAL_LOGIN_LAYOUTS.STANDARD\n ? flexRow\n : flexCol },\n logoElem,\n React.createElement(\"div\", null,\n React.createElement(\"div\", { className: isRenew ? sc('renew-intro') : '' },\n isRenew && (React.createElement(React.Fragment, null, t(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"Insert the password to renew as\"], [\"Insert the password to renew as\"]))),\n ' ',\n React.createElement(\"span\", { className: sc('renew-email') }, email),\n \":\")),\n !isRenew && React.createElement(React.Fragment, null, t(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"Use the credentials we gave you\"], [\"Use the credentials we gave you\"]))),\n \":\")),\n errors,\n React.createElement(\"div\", { className: marginBottom },\n React.createElement(\"form\", { onSubmit: function () { return onLogin({ email: email, password: password }); } },\n React.createElement(Field, null,\n React.createElement(\"input\", { disabled: isRenew, type: isRenew ? 'hidden' : 'email', placeholder: \"you@domain.com\", value: email, onChange: this.setter('email'), onKeyPress: function (e) {\n if (e.key === 'Enter' &&\n email &&\n password) {\n onLogin({ email: email, password: password });\n }\n } })),\n React.createElement(Field, null,\n React.createElement(\"input\", { type: \"password\", placeholder: \"password\", value: password, onChange: this.setter('password'), onKeyPress: function (e) {\n if (e.key === 'Enter' &&\n email &&\n password) {\n onLogin({ email: email, password: password });\n }\n } })),\n React.createElement(\"div\", { className: sc('login-buttons') },\n React.createElement(Button, { disabled: !email || !password, label: t(isRenew ? 'Renew' : 'Sign In'), type: \"success\", onClick: function () {\n onLogin({ email: email, password: password });\n } }),\n isRenew && (React.createElement(Button, { type: 'alt', onClick: orLogout, layout: ButtonLayouts.LINK, label: t(templateObject_4 || (templateObject_4 = __makeTemplateObject([\"... or Logout\"], [\"... or Logout\"]))) }))))),\n !isRenew && (React.createElement(\"div\", { className: sc('change-login-type') },\n React.createElement(Button, { label: t(templateObject_5 || (templateObject_5 = __makeTemplateObject([\"Sign In with your social account\"], [\"Sign In with your social account\"]))), layout: ButtonLayouts.LINK, onClick: function () {\n changePhase('LOGIN');\n } }))))))));\n };\n return TraditionalLogin;\n}(React.Component));\nexport { TraditionalLogin };\nvar templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;\n//# sourceMappingURL=TraditionalLogin.js.map","import React from 'react';\nimport { logoImg } from '../utils/theme';\nimport { SOCIAL_LOGIN_LAYOUTS } from './SocialLogin';\nimport { registerClass, classNames } from '@food/css-manager';\nvar logoDimension = registerClass(function () { return \"\\n\\twidth: 90%;\\n\\tmax-height: 20vmax;\\n\"; });\nvar style = registerClass(function () { return \"\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\"; });\nexport var Logo = function (_a) {\n var custom = _a.custom, layout = _a.layout;\n return (React.createElement(\"div\", { className: classNames(style, !custom && 'logo') }, custom && (React.createElement(\"img\", { src: custom, alt: 'Food auth', className: classNames(logoImg, layout === SOCIAL_LOGIN_LAYOUTS.STANDARD && logoDimension) }))));\n};\n//# sourceMappingURL=Logo.js.map","import React from 'react';\nimport { registerClass, subClass } from '@food/css-manager';\nimport { Icon } from '@food/ui/build/dist/src/icons';\nimport { SOCIAL } from '../types';\nvar socialButtons = registerClass(function (t, sc) { return \"\\n\\t> button {\\n\\t\\tdisplay: flex;\\n\\t\\twidth: 100%;\\n\\t\\tcursor: pointer;\\n\\t\\ttext-align: left;\\n\\t\\tborder: none;\\n\\t\\tmargin-bottom: \" + t.font.baseSize + \"px;\\n\\t\\talign-items: stretch;\\n\\t\\tpadding: \" + t.font.baseSize + \"px;\\n\\t\\tfont-size: \" + t.font.baseSize + \"px;\\n\\t\\t\\n\\t\\t> span {\\n\\t\\t\\t&:first-child {\\n\\t\\t\\t\\tfont-size: \" + t.ratios.l * t.font.baseSize + \"px;\\n\\t\\t\\t\\tflex-shrink: 1;\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t}\\n\\t\\t\\t&:last-child {\\n\\t\\t\\t\\tflex-grow: 1;\\n\\t\\t\\t\\ttext-align: left;\\n\\t\\t\\t\\tpadding-left: \" + t.font.baseSize + \"px;\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&.\" + sc('GOOGLE') + \" {\\n\\t\\t\\tcolor: \" + t.colors.white + \";\\n\\t\\t\\tbackground-color: #d34836;\\n\\t\\t}\\n\\t\\t&.\" + sc('FACEBOOK') + \" {\\n\\t\\t\\tcolor: \" + t.colors.white + \";\\n\\t\\t\\tbackground-color: #3b5998;\\n\\t\\t}\\n\\t\\t&.\" + sc('LINKEDIN') + \" {\\n\\t\\t\\tcolor: \" + t.colors.white + \";\\n\\t\\t\\tbackground-color: #0a74b4;\\n\\t\\t}\\n\\t}\\n\"; });\nfunction social2icon(s) {\n switch (s) {\n case SOCIAL.FACEBOOK:\n return 'facebook';\n case SOCIAL.GOOGLE:\n return 'google';\n case SOCIAL.LINKEDIN:\n return 'linkedin';\n default:\n return 'share';\n }\n}\nexport var SocialButtons = function (_a) {\n var socials = _a.socials, onClick = _a.onClick, t = _a.t;\n return (React.createElement(\"div\", { className: socialButtons }, socials.map(function (social) { return (React.createElement(\"button\", { key: social, className: subClass(socialButtons, social), onClick: function () {\n return onClick !== undefined && onClick({ fixedSocial: social });\n } },\n React.createElement(Icon, { name: social2icon(social) }),\n React.createElement(\"span\", null, t(social + \" login button\", \"Sign in with \" + social)))); })));\n};\n//# sourceMappingURL=SocialButtons.js.map","import { UserRole } from '../server-types';\nexport var AuthSteps;\n(function (AuthSteps) {\n AuthSteps[\"CREDENTIAL_INPUT_SOCIAL\"] = \"CREDENTIAL_INPUT_SOCIAL\";\n AuthSteps[\"LOADING\"] = \"LOADING\";\n AuthSteps[\"CREDENTIAL_INPUT_TRADITIONAL\"] = \"CREDENTIAL_INPUT_TRADITIONAL\";\n AuthSteps[\"TERMS_OF_SERVICE\"] = \"TERMS_OF_SERVICE\";\n AuthSteps[\"CHOOSE_ROLE\"] = \"CHOOSE_ROLE\";\n AuthSteps[\"ASK_WORK_EMAIL\"] = \"ASK_WORK_EMAIL\";\n AuthSteps[\"CONFIRMATION_EMAIL_SENT\"] = \"CONFIRMATION_EMAIL_SENT\";\n AuthSteps[\"CONFIRMATION_EMAIL_SENT_TEMPORARY_CONSUMER\"] = \"CONFIRMATION_EMAIL_SENT_TEMPORARY_CONSUMER\";\n AuthSteps[\"SUCCESSFUL_REGISTRATION\"] = \"SUCCESSFUL_REGISTRATION\";\n AuthSteps[\"MAIL_CONFIRMED_WAITING_REVIEW\"] = \"MAIL_CONFIRMED_WAITING_REVIEW\";\n AuthSteps[\"VERIFY_LINK_EXPIRED\"] = \"VERIFY_LINK_EXPIRED\";\n AuthSteps[\"UPGRADE_ROLE\"] = \"UPGRADE_ROLE\";\n AuthSteps[\"DOWNGRADED_TO_CONSUMER\"] = \"DOWNGRADED_TO_CONSUMER\";\n AuthSteps[\"CHOOSE_EMAIL_DOMAIN\"] = \"CHOOSE_EMAIL_DOMAIN\";\n AuthSteps[\"SWITCH_TO_SOCIAL\"] = \"SWITCH_TO_SOCIAL\";\n AuthSteps[\"REMIND_SOCIAL_ACCOUNT\"] = \"REMIND_SOCIAL_ACCOUNT\";\n})(AuthSteps || (AuthSteps = {}));\nexport var AuthErrors;\n(function (AuthErrors) {\n AuthErrors[\"UPGRADING_WITH_NO_AUTH\"] = \"UPGRADING_WITH_NO_AUTH\";\n AuthErrors[\"SERVER_ERROR\"] = \"SERVER_ERROR\";\n})(AuthErrors || (AuthErrors = {}));\nexport var responseIsSuccess = function (r) {\n return r && r.status && r.status >= 200 && r.status <= 299\n ? r.success === true\n : false;\n};\nexport var responseIsError = function (r) {\n return r && r.status && r.status >= 400 && r.status <= 499\n ? r.success === false\n : false;\n};\nexport var responseToPhase = function (r, socialInput, isLoading, upgradingRole, userLocalData, // TODO tipizzare i dati relativi all'utente salvati in LocalStorage\nconsumerCanRegister, forcedAskWorkEmail, sfContactId) {\n var _a, _b, _c, _d;\n var success = responseIsSuccess(r);\n var error = responseIsError(r);\n // in qualsiasi fase del processo, se sono in caricamento, mostro uno spinner\n if (isLoading) {\n return AuthSteps.LOADING;\n }\n if (upgradingRole && !r) {\n // sono nel caso in cui\n // TODO restituire errore in caso di upgradeRole con ruolo gia' proprio dell'utente\n if (!userLocalData) {\n return new Error(AuthErrors.UPGRADING_WITH_NO_AUTH);\n }\n else {\n return AuthSteps.UPGRADE_ROLE;\n }\n }\n else if ((r === undefined || r === null) && socialInput) {\n return AuthSteps.CREDENTIAL_INPUT_SOCIAL;\n }\n else if ((r === undefined || r === null) && !socialInput) {\n return AuthSteps.CREDENTIAL_INPUT_TRADITIONAL;\n }\n else if ((r === null || r === void 0 ? void 0 : r.key) === 'options.tosApproved') {\n return AuthSteps.TERMS_OF_SERVICE;\n }\n else if ((r === null || r === void 0 ? void 0 : r.key) === 'options.role') {\n return AuthSteps.CHOOSE_ROLE;\n }\n else if ((r === null || r === void 0 ? void 0 : r.key) === 'options.workEmail') {\n return AuthSteps.ASK_WORK_EMAIL;\n }\n else if ((r === null || r === void 0 ? void 0 : r.key) === 'options.workEmailVerifyToken') {\n return AuthSteps.VERIFY_LINK_EXPIRED;\n }\n else if (((_a = r === null || r === void 0 ? void 0 : r.userAuth) === null || _a === void 0 ? void 0 : _a.status) === 200 && r.userStatus === 'NOT_VERIFIED') {\n // nel caso la risposta sia sempre un \"not verified\" ma ci sia la variabile `forcedAskWorkEmail` impostata a true\n // significa che ho provato a loggarmi, non ero ancora verificato e ho premuto sul pulsante per cambiare\n // l'indirizzo email aziendale. Si tratta di stato interno, non dedotto dalle risposte del server\n if (forcedAskWorkEmail) {\n return AuthSteps.ASK_WORK_EMAIL;\n }\n else {\n return consumerCanRegister\n ? AuthSteps.CONFIRMATION_EMAIL_SENT_TEMPORARY_CONSUMER\n : AuthSteps.CONFIRMATION_EMAIL_SENT;\n }\n }\n else if (success && (r === null || r === void 0 ? void 0 : r.userStatus) === 'WAITING_REVIEW') {\n return AuthSteps.MAIL_CONFIRMED_WAITING_REVIEW;\n }\n else if (success && (r === null || r === void 0 ? void 0 : r.EmailDomainRow)) {\n // se ho `EmailDomainRow` significa che il server mi ha appena associato ad un emailDomain, quindi siamo nel caso\n // di una registrazione avvenuta con successo\n return AuthSteps.SUCCESSFUL_REGISTRATION;\n }\n else if (success &&\n ((_b = r === null || r === void 0 ? void 0 : r.userAuth) === null || _b === void 0 ? void 0 : _b.userSocialtype) === undefined &&\n ((_c = r === null || r === void 0 ? void 0 : r.userAuth) === null || _c === void 0 ? void 0 : _c.auth.user.role) !== UserRole.Internal) {\n // siamo nel caso di un login avvenuto con successo, in modo tradizionale, senza un account social associato\n return AuthSteps.SWITCH_TO_SOCIAL;\n }\n else if (success &&\n ((_d = r === null || r === void 0 ? void 0 : r.userAuth) === null || _d === void 0 ? void 0 : _d.userSocialtype) !== undefined &&\n r.authenticationMethod === 'EMAIL_PWD') {\n // siamo nel caso di un login avvenuto con successo, in modo tradizionale, e con un account social associato\n return AuthSteps.REMIND_SOCIAL_ACCOUNT;\n }\n else if (error &&\n (r === null || r === void 0 ? void 0 : r.key) === 'options.EmailDomain_id' &&\n r.type === 'EMPTY_NOT_ALLOWED' &&\n Array.isArray(r.choices)) {\n // siamo nel caso in cui un email domain ha piu' company associate, quindi devo scegliere\n return AuthSteps.CHOOSE_EMAIL_DOMAIN;\n }\n else if (error &&\n (r === null || r === void 0 ? void 0 : r.key) === 'options.authToken' &&\n r.type === 'INVALID_VALUE' &&\n !!sfContactId) {\n // siamo nel caso in cui un utente e' arrivato in un url con il token sfContactId presente ma ha gia' un bearer, che pero' e' scaduto\n // lo faccio tornare al login, come se fosse un rinnovo\n return socialInput\n ? AuthSteps.CREDENTIAL_INPUT_SOCIAL\n : AuthSteps.CREDENTIAL_INPUT_TRADITIONAL;\n }\n else {\n return new Error(AuthErrors.SERVER_ERROR);\n }\n};\n//# sourceMappingURL=steps.js.map","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React from 'react';\nimport { SOCIAL_LOGIN_LAYOUTS } from './SocialLogin';\nimport { registerClass, classNames, currySC } from '@food/css-manager';\nimport { SocialButtons } from './SocialButtons';\nimport { Button, layouts as ButtonLayouts, } from '@food/ui/build/dist/src/Button';\nimport { getLoginType } from '../logic/auth';\nvar flexRow = registerClass(function () { return \"\\n\\tflex-direction: row;\\n\"; });\nvar flexCol = registerClass(function () { return \"\\n\\tflex-direction: column;\\n\"; });\nvar stepSection = registerClass(function (theme, sc) { return \"\\n\\tpadding: \" + (theme.ratios.l / 4) * theme.font.baseSize + \"px \" + theme.ratios.l *\n theme.font.baseSize + \"px;\\n\\n\\t> div {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: space-between;\\n\\n\\t\\t> div {\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t}\\n\\t}\\n\\t\\n\\t.\" + sc('buttons') + \" {\\n\\t\\tmargin: \" + theme.ratios.xl * theme.font.baseSize + \"px;\\n\\t}\\n\\t\\n\\t.\" + sc('renew-intro') + \" {\\n\\t\\tmargin: 1em;\\n\\t\\ttext-align: center;\\n\\t}\\n\\t\\n\\t.\" + sc('change-login-type') + \" {\\n\\t\\ttext-align: center;\\n\\t}\\n\\t\\n\\t.\" + sc('login-buttons') + \" {\\n\\t\\ttext-align: center;\\n\\n\\t\\t>button {\\n\\t\\t\\tmargin: \" + (theme.ratios.xl / 2) * theme.font.baseSize + \"px;\\n\\t\\t}\\n\\t}\\n\\t\\n\\t&.\" + sc('layout', 'STANDARD') + \" > div > div {\\n\\t\\tflex-basis: \" + theme.font.baseSize + \"px;\\n\\t}\\n\"; });\nvar marginBottom = registerClass(function (theme) {\n return \"margin-bottom: \" + theme.ratios.l * theme.font.baseSize + \"px;\";\n});\nvar sc = currySC(stepSection);\nexport var SocialChooseStep = function (_a) {\n var t = _a.t, logoElem = _a.logoElem, socialTypes = _a.socialTypes, changePhase = _a.changePhase, orLogout = _a.orLogout, layout = _a.layout, performLogin = _a.performLogin, errors = _a.errors, isRenew = _a.isRenew;\n var socials = socialTypes.filter(function (social) { return !isRenew || getLoginType() === social; });\n return (React.createElement(React.Fragment, null,\n React.createElement(\"h2\", null, t(isRenew ? 'Renew your authentication' : 'Sign In / Register')),\n React.createElement(\"section\", { className: classNames(stepSection, sc('layout', layout)) },\n React.createElement(\"div\", { className: layout === SOCIAL_LOGIN_LAYOUTS.STANDARD ? flexRow : flexCol },\n logoElem,\n React.createElement(\"div\", { className: sc('buttons') },\n React.createElement(\"div\", { className: marginBottom },\n React.createElement(\"div\", { className: isRenew ? sc('renew-intro') : '' },\n t(isRenew\n ? 'Sign In again to renew your session'\n : 'Sign In with your social accounts'),\n \":\")),\n errors,\n React.createElement(SocialButtons, { socials: socials, onClick: performLogin, t: t }),\n isRenew && (React.createElement(\"div\", { className: sc('login-buttons') },\n React.createElement(Button, { onClick: orLogout, layout: ButtonLayouts.LINK, label: t(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"... or Logout\"], [\"... or Logout\"]))) }))),\n !isRenew && (React.createElement(\"div\", { className: sc('change-login-type') },\n React.createElement(Button, { label: t(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"Sign In with username and password\"], [\"Sign In with username and password\"]))), layout: ButtonLayouts.LINK, onClick: function () {\n changePhase('TRADITIONAL_LOGIN');\n } }))))))));\n};\nvar templateObject_1, templateObject_2;\n//# sourceMappingURL=SocialChooseStep.js.map","import React from 'react';\nimport { registerClass, classNames, subClass } from '@food/css-manager';\nimport { Icon, } from './icons';\nvar style = registerClass(function (theme, sc) { return \"\\n\\tfont-size: 1em;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tcursor: pointer;\\n\\tbackground: none;\\n\\tborder: none;\\n\\tpadding: \" + theme.ratios.l / 2 + \"em 0;\\n\\n\\t> * {\\n\\t\\tdisplay: inline-block;\\n\\t\\tvertical-align: middle;\\n\\t\\ttext-align: left;\\n\\t}\\n\\n\\t.\" + sc('icon') + \" {\\n\\t\\tfont-size: \" + theme.ratios.l + \"em;\\n\\t\\tmargin-right: \" + (theme.ratios.l - 1) + \"em;\\n\\t\\tcolor: \" + theme.colors.grey + \";\\n\\t}\\n\\n\\t&.\" + sc('active') + \" > .\" + sc('icon') + \" {\\n\\t\\tcolor: \" + theme.colors.success.plain + \";\\n\\t}\\n\\t\\n\\t&[disabled] {\\n\\t\\tcursor: not-allowed;\\n\\t}\\n\"; });\nexport var Radio = function (_a) {\n var className = _a.className, label = _a.label, onChange = _a.onChange, _b = _a.checked, checked = _b === void 0 ? false : _b, _c = _a.disabled, disabled = _c === void 0 ? false : _c;\n return (React.createElement(\"button\", { disabled: disabled, className: classNames(className, style, checked ? subClass(style, 'active') : null, disabled ? subClass(style, 'disabled') : null), onClick: function (event) {\n event.preventDefault();\n if (onChange) {\n onChange(!checked);\n }\n return false;\n } },\n React.createElement(Icon, { name: checked\n ? 'radio_button_checked'\n : 'radio_button_unchecked', className: subClass(style, 'icon') }),\n React.createElement(\"span\", null, label)));\n};\n//# sourceMappingURL=Radio.js.map","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React from 'react';\nimport { footer } from '../utils/theme';\nimport { emailDomainLabel } from '../utils/misc';\nimport { registerClass, cns, currySC, subClass } from '@food/css-manager';\nimport { Button } from '@food/ui/build/dist/src/Button';\nimport { Radio } from '@food/ui/build/dist/src/Radio';\nvar sectionClass = registerClass(function (theme, sc) { return \"\\n\\t.\" + sc('spaced-bottom') + \" {\\n\\t\\tmargin-bottom: \" + theme.ratios.l * theme.font.baseSize + \"px;\\n\\t}\\n\\t\\n\\t.\" + sc('ul') + \" > * {\\n\\t\\tpadding-bottom: \" + theme.ratios.l + \"em;\\n\\t}\\n\\n\"; });\nvar sc = currySC(sectionClass);\nexport var ChooseEmailDomain = function (_a) {\n var t = _a.t, emailDomains = _a.emailDomains, emailDomain = _a.emailDomain, onChoose = _a.onChoose, emailDomainChooser = _a.emailDomainChooser, supportEmail = _a.supportEmail;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"h2\", null, t(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"Choose your company\"], [\"Choose your company\"])))),\n React.createElement(\"section\", { className: sectionClass },\n React.createElement(\"div\", { className: sc('spaced-bottom') }, t(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"Thanks for validating\"], [\"Thanks for validating\"]))),\n \"!\"),\n React.createElement(\"div\", null, t(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"Your email domain is associated with more than a company, please confirm which you work for:\"], [\"Your email domain is associated with more than a company, please confirm which you work for:\"])))),\n emailDomains.length > 1 && (React.createElement(\"div\", { className: sc('li') }, emailDomains.map(function (i) { return (React.createElement(Radio, { key: i.id, label: emailDomainLabel(i), checked: i.id === emailDomain, onChange: function () { return emailDomainChooser(i); } })); }))),\n React.createElement(\"p\", null, t(templateObject_4 || (templateObject_4 = __makeTemplateObject([\"If your branch is not one of the options, please select your headquarter and then let us know by writing to our support email:\"], [\"If your branch is not one of the options, please select your headquarter and then let us know by writing to our support email:\"]))),\n React.createElement(\"a\", { href: 'mailto:' + supportEmail },\n \" \",\n supportEmail)),\n React.createElement(\"div\", { className: cns(footer, subClass(footer, 'centered')) },\n React.createElement(Button, { label: t(templateObject_5 || (templateObject_5 = __makeTemplateObject([\"Confirm\"], [\"Confirm\"]))), type: \"success\", disabled: !emailDomain, onClick: function () { return onChoose(); } })))));\n};\nvar templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;\n//# sourceMappingURL=ChooseEmailDomain.js.map","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React from 'react';\nimport { Button } from '@food/ui/build/dist/src/Button';\nimport { registerClass, subClass } from '@food/css-manager';\nvar style = registerClass(function (theme, sc) { return \"\\n\\t> button {\\n\\t\\twidth: 100%;\\n\\t\\tmargin-bottom: \" + theme.ratios.l / 2 + \"em;\\n\\t}\\n\\t\\n\\t.\" + sc('strong') + \" {\\n\\t\\tfont-weight: \" + theme.font.weights.bold + \";\\n\\t}\"; });\nexport var VerificationMessage = function (_a) {\n var workEmail = _a.workEmail, isModal = _a.isModal, t = _a.t, footer = _a.footer, close = _a.close, returnToAskEmail = _a.returnToAskEmail, logout = _a.logout;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"h2\", null, t(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"Registration - Business Profile\"], [\"Registration - Business Profile\"])))),\n React.createElement(\"section\", { className: style },\n React.createElement(\"p\", null, t(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"We sent you a verification email to\"], [\"We sent you a verification email to\"]))),\n ' ',\n React.createElement(\"span\", { className: subClass(style, 'strong') }, workEmail),\n React.createElement(\"br\", null), t(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"Please click the link in it to complete the registration\"], [\"Please click the link in it to complete the registration\"])))),\n React.createElement(\"div\", { className: footer },\n React.createElement(Button, { label: t(templateObject_4 || (templateObject_4 = __makeTemplateObject([\"Change work email\"], [\"Change work email\"]))), onClick: returnToAskEmail }),\n isModal && React.createElement(Button, { label: t(templateObject_5 || (templateObject_5 = __makeTemplateObject([\"Close\"], [\"Close\"]))), onClick: function () { return close(); } }),\n !isModal && React.createElement(Button, { label: t(templateObject_6 || (templateObject_6 = __makeTemplateObject([\"Proceed\"], [\"Proceed\"]))), onClick: function () { return logout(); } })))));\n};\nvar templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;\n//# sourceMappingURL=VerificationMessage.js.map","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React from 'react';\nimport { Button } from '@food/ui/build/dist/src/Button';\nimport { cns, subClass } from '@food/css-manager';\nimport { footer } from '../utils/theme';\nexport var WaitingReview = function (_a) {\n var onClose = _a.onClose, t = _a.t, isModal = _a.isModal, supportEmail = _a.supportEmail;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"h2\", null, t(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"Waiting Review\"], [\"Waiting Review\"])))),\n React.createElement(\"section\", null,\n React.createElement(\"div\", { dangerouslySetInnerHTML: {\n __html: t(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"Waiting review explanation html\"], [\"Waiting review explanation html\"]))),\n } }),\n React.createElement(\"p\", null, t(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"If you think we're wrong please\"], [\"If you think we're wrong please\"]))),\n ' ',\n React.createElement(\"a\", { href: \"mailto:\" + supportEmail }, t(templateObject_4 || (templateObject_4 = __makeTemplateObject([\"contact us\"], [\"contact us\"])))),\n \".\"),\n React.createElement(\"div\", { className: cns(footer, subClass(footer, 'centered')) },\n React.createElement(Button, { label: t(isModal ? 'Close' : 'Proceed'), onClick: onClose, type: 'success' })))));\n};\nvar templateObject_1, templateObject_2, templateObject_3, templateObject_4;\n//# sourceMappingURL=WaitingReview.js.map","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React from 'react';\nimport { footer } from '../utils/theme';\nimport { registerClass, subClass } from '@food/css-manager';\nimport { Button } from '@food/ui/build/dist/src/Button';\nvar style = registerClass(function (theme, sc) { return \"\\n\\tpadding-top: \" + theme.ratios.l * theme.font.baseSize + \"px;\\n\\tpadding-bottom: \" + theme.ratios.l * theme.font.baseSize + \"px;\\n\\t\\n\\t.\" + sc('role') + \" {\\n\\t\\tmargin-top: \" + theme.ratios.s * theme.font.baseSize + \"px;\\n\\t\\t\\n\\t\\t&.first-child {\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t}\\n\\t}\\n\"; });\nexport var ChooseRole = function (_a) {\n var t = _a.t, roles = _a.roles, authManager = _a.authManager, back = _a.back, roleChooser = _a.roleChooser;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"h2\", null, t(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"Registration\"], [\"Registration\"])))),\n React.createElement(\"section\", { className: style },\n React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: t(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"Registration intro\"], [\"Registration intro\"]))) } }),\n React.createElement(\"div\", { className: style }, roles && roles.length > 0 && (React.createElement(\"div\", null, roles.map(function (role) {\n return (React.createElement(Button, { key: role, type: 'success', label: t('Role ' + role), onClick: function () { return roleChooser(role); }, block: true, className: subClass(style, 'role') }));\n })))),\n React.createElement(\"div\", { className: footer },\n React.createElement(Button, { label: t(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"Back\"], [\"Back\"]))), onClick: function () { return back(); } })))));\n};\nvar templateObject_1, templateObject_2, templateObject_3;\n//# sourceMappingURL=ChooseRole.js.map","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React from 'react';\nimport { footer } from '../utils/theme';\nimport { emailDomainLabel, emailDomainType } from '../utils/misc';\nimport { registerClass, subClass, classNames, currySC, } from '@food/css-manager';\nimport { Button } from '@food/ui/build/dist/src/Button';\nvar style = registerClass(function (theme, sc) { return \"\\n\\t.\" + sc('value') + \" {\\n\\t\\tfont-weight: \" + theme.font.weights.bold + \";\\n\\t}\\n\\t\\n\\t.\" + sc('spaced-top') + \" {\\n\\t\\tmargin-top: \" + theme.ratios.l * theme.font.baseSize + \"px;\\n\\t}\\n\\t\\n\\t.\" + sc('spaced-bottom') + \" {\\n\\t\\tmargin-bottom: \" + theme.ratios.l * theme.font.baseSize + \"px;\\n\\t}\\n\"; });\nvar sc = currySC(style);\nvar valueClass = sc('value');\nexport var Success = function (_a) {\n var t = _a.t, user = _a.user, managed = _a.managed, isModal = _a.isModal, proceed = _a.proceed, supportEmail = _a.supportEmail;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"h2\", null, t(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"Hello\"], [\"Hello\"]))),\n \" \",\n user.firstName,\n \" \",\n user.lastName,\n \"!\"),\n React.createElement(\"section\", { className: style },\n React.createElement(\"div\", { className: sc('spaced-bottom') }, t(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"Thanks for validating\"], [\"Thanks for validating\"]))),\n \".\"),\n React.createElement(\"div\", null, t(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"You have been successfully registered as a\"], [\"You have been successfully registered as a\"]))),\n \":\",\n ' ',\n React.createElement(\"span\", { className: valueClass }, t(user.role)),\n React.createElement(\"br\", null),\n managed && (React.createElement(React.Fragment, null, t(templateObject_4 || (templateObject_4 = __makeTemplateObject([\"as we related you to\"], [\"as we related you to\"]))),\n \":\",\n ' ',\n React.createElement(\"span\", { className: valueClass },\n emailDomainLabel(managed),\n managed.CountryName && ' - ' + emailDomainType(managed))))),\n React.createElement(\"div\", { className: sc('spaced-top') }, t(templateObject_5 || (templateObject_5 = __makeTemplateObject([\"If you think we're wrong please\"], [\"If you think we're wrong please\"]))),\n ' ',\n React.createElement(\"a\", { href: \"mailto:\" + supportEmail }, t(templateObject_6 || (templateObject_6 = __makeTemplateObject([\"contact us\"], [\"contact us\"]))))),\n React.createElement(\"div\", { className: classNames(footer, subClass(footer, 'centered')) },\n React.createElement(Button, { label: t(isModal ? 'Close' : 'Proceed'), onClick: proceed })))));\n};\nvar templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;\n//# sourceMappingURL=Success.js.map","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React from 'react';\nimport { footer } from '../utils/theme';\nimport { registerClass, classNames } from '@food/css-manager';\nimport { Button } from '@food/ui/build/dist/src/Button';\nvar style = registerClass(function () { return \"\\n\\t> div,\\n\\t> p {\\n\\t\\ttext-align: left;\\n\\t}\\n\"; });\nexport var BuyerToConsumer = function (_a) {\n var t = _a.t, user = _a.user, isModal = _a.isModal, proceed = _a.proceed, supportEmail = _a.supportEmail;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"h2\", null, t(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"Hello, \"], [\"Hello, \"]))),\n \" \",\n user.firstName,\n \" \",\n user.lastName),\n React.createElement(\"section\", { className: style },\n React.createElement(\"div\", null, t(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"Thanks for validating.\"], [\"Thanks for validating.\"])))),\n React.createElement(\"p\", null, t(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"The email domain you used matches with a company unrelated to the food supply chain.\"], [\"The email domain you used matches with a company unrelated to the food supply chain.\"])))),\n React.createElement(\"p\", null, t(templateObject_4 || (templateObject_4 = __makeTemplateObject([\"We can't give you a Business Profile.\"], [\"We can't give you a Business Profile.\"])))),\n React.createElement(\"div\", null, t(templateObject_5 || (templateObject_5 = __makeTemplateObject([\"If you think we're wrong please\"], [\"If you think we're wrong please\"]))),\n ' ',\n React.createElement(\"a\", { href: \"mailto:\" + supportEmail }, t(templateObject_6 || (templateObject_6 = __makeTemplateObject([\"contact us\"], [\"contact us\"]))))),\n React.createElement(\"div\", { className: classNames(footer, 'centered') },\n React.createElement(Button, { label: t(isModal ? 'Close' : 'Proceed'), onClick: proceed })))));\n};\nvar templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;\n//# sourceMappingURL=BuyerToConsumer.js.map","import React from 'react';\nimport { registerClass, classNames } from '@food/css-manager';\nvar style = registerClass(function (theme) { return \"\\n\\tcolor: \" + theme.colors.danger.plain + \";\\n\"; });\nexport var ErrorMessage = function (_a) {\n var className = _a.className, error = _a.error;\n return (React.createElement(\"div\", { className: classNames(className, style) },\n React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: error } })));\n};\n//# sourceMappingURL=ErrorMessage.js.map","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React from 'react';\nimport { footer } from '../utils/theme';\nimport { classNames, registerClass, subClass, currySC, } from '@food/css-manager';\nimport { Button } from '@food/ui/build/dist/src/Button';\nvar style = registerClass(function (theme, sc) { return \"\\n\\t.\" + sc('first-button') + \" {\\n\\t\\tmargin-right: \" + (theme.ratios.xs / 2) * theme.font.baseSize + \"px;\\n\\t}\\n\\t\\n\\t.\" + sc('strong') + \" {\\n\\t\\tfont-weight: \" + theme.font.weights.bold + \";\\n\\t}\"; });\nvar sc = currySC(style);\nexport var TemporaryConsumer = function (_a) {\n var t = _a.t, isModal = _a.isModal, proceed = _a.proceed, supportEmail = _a.supportEmail, workEmail = _a.workEmail, returnToAskEmail = _a.returnToAskEmail;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"h2\", null, t(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"Thanks for signing in\"], [\"Thanks for signing in\"]))),\n \".\"),\n React.createElement(\"section\", { className: style }, t(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"We sent you a verification email to\"], [\"We sent you a verification email to\"]))),\n ' ',\n React.createElement(\"span\", { className: sc('strong') }, workEmail),\n React.createElement(\"div\", { dangerouslySetInnerHTML: {\n __html: t(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"Temporary consumer explanation\"], [\"Temporary consumer explanation\"]))),\n } }),\n React.createElement(\"p\", null, t(templateObject_4 || (templateObject_4 = __makeTemplateObject([\"If you think we're wrong please\"], [\"If you think we're wrong please\"]))),\n ' ',\n React.createElement(\"a\", { href: \"mailto:\" + supportEmail }, t(templateObject_5 || (templateObject_5 = __makeTemplateObject([\"contact us\"], [\"contact us\"])))),\n \".\"),\n React.createElement(\"div\", { className: classNames(footer, subClass(footer, 'centered'), subClass(style, 'buttons')) },\n React.createElement(Button, { label: t(templateObject_6 || (templateObject_6 = __makeTemplateObject([\"Change work email\"], [\"Change work email\"]))), className: sc('first-button'), onClick: returnToAskEmail }),\n React.createElement(Button, { label: t(isModal ? 'Close' : 'Proceed'), onClick: proceed })))));\n};\nvar templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;\n//# sourceMappingURL=TemporaryConsumer.js.map","var __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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { canUseDOM } from 'exenv';\nimport { authTrackOverride } from './track';\nimport { track } from '@food/tracking';\nvar maxRetry = 10;\nexport var oAuthLogin = function (_a) {\n var socialType = _a.socialType;\n return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_b) {\n track(__assign(__assign({}, authTrackOverride), { action: { type: 'auth_getting_social_token', socialType: socialType } }));\n return [2 /*return*/, new Promise(function (resolve, reject) {\n // se siamo sul server non possiamo loggarci, semplicemente esco.\n if (!canUseDOM) {\n reject(new Error('Server side cannot try login!'));\n return;\n }\n var retryCount = 0;\n var authWin = window.open(socialType.loginURL(), 'OAUTH2');\n var timerId = setInterval(function () {\n return __awaiter(this, void 0, void 0, function () {\n var codeUri, matches, code;\n return __generator(this, function (_a) {\n try {\n if (authWin && typeof authWin.opener === 'object') {\n // if user closed authWin stop awaiting auth\n try {\n if (authWin.location.pathname !== 'blank') {\n codeUri = authWin.location.search;\n clearInterval(timerId); // when user get back after remote auth on our domain we again have access to authWin properties\n matches = /\\?code=([^&#]+)/.exec(codeUri);\n if (matches) {\n code = matches[1];\n authWin.close();\n clearInterval(timerId);\n resolve(decodeURIComponent(code));\n }\n else {\n retryCount += 1;\n if (retryCount === maxRetry) {\n //authWin.close();\n clearInterval(timerId);\n }\n }\n }\n }\n catch (err) {\n console.warn(err);\n // waiting for user back\n // IMPORTANT non va catchato perche' chrome restituisce un errore CORS per localhost, url social e auth.gruppofood.com\n }\n }\n else {\n clearInterval(timerId);\n }\n }\n catch (e) {\n clearInterval(timerId);\n reject(e);\n }\n return [2 /*return*/];\n });\n });\n }, 100);\n })];\n });\n });\n};\n//# sourceMappingURL=oauth.js.map","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React, { useState } from 'react';\nimport { Button } from '@food/ui/build/dist/src/Button';\nimport { Field } from '@food/ui/build/dist/src/Field';\nimport { ErrorMessage } from '@food/ui/build/dist/src/ErrorMessage';\nimport { defaultMarginBottom, footer } from '../utils/theme';\nimport { validateEmail } from '../utils/misc';\nimport { registerClass, currySC, cns } from '@food/css-manager';\nvar style = registerClass(function (t, sc) { return \"\\n\\t.\" + sc('input') + \" > label {\\n\\t\\tfont-size: \" + t.ratios.l + \"em;\\n\\t\\tmargin-bottom: 0;\\n\\t}\\n\\t\\n\\t.\" + sc('strong') + \" {\\n\\t\\tfont-weight: \" + t.font.weights.bold + \";\\n\\t}\\n\\t\\n\\t.\" + sc('error') + \" {\\n\\t\\tmargin-top: \" + t.ratios.s * t.font.baseSize + \"px;\\n\\t}\\n\"; });\nvar sc = currySC(style);\nvar hasErrors = function (errors, filters) {\n if (errors && errors.length) {\n return (errors.filter(function (e) {\n if (filters.context && filters.context === e.context) {\n return true;\n }\n if (filters.key && filters.key === e.key) {\n return true;\n }\n return filters.type && filters.type === e.type;\n }).length > 0);\n }\n return false;\n};\nexport var InsertWorkEmail = function (_a) {\n var presetWorkEmail = _a.presetWorkEmail, t = _a.t, back = _a.back, errors = _a.errors, performRegister = _a.performRegister, supportEmail = _a.supportEmail;\n var _b = useState(presetWorkEmail || ''), email = _b[0], setEmail = _b[1];\n // il modo in cui il server mi suggerisce che devo inserire la work email e' un errore. Quindi e' come\n // se partissi gia' con un errore di validazione! Filtro questo errore poiche' non e' significativo per il\n // flusso di lavoro dell'utente\n var realErrors = errors\n ? errors.filter(function (e) { return e.type !== 'EMPTY_NOT_ALLOWED'; })\n : [];\n var message = React.createElement(ErrorMessage, { error: t('generic email error') });\n var errorState = hasErrors(realErrors, {\n key: 'options.workEmail',\n });\n // dati i possibili messaggi che mi restituisce il server devo scegliere quale messaggio visualizzare\n if (errorState) {\n var error = realErrors.filter(function (e) { return e.key === 'options.workEmail'; })[0];\n if (error.type === 'MUST_BE_UNIQUE') {\n message = (React.createElement(ErrorMessage, { error: t('alreadyUsedEmail error').replace('$SUPPORT_EMAIL', supportEmail) }));\n }\n else if (error.type === 'INVALID_VALUE') {\n message = React.createElement(ErrorMessage, { error: t('consumerOnlyEmail error') });\n }\n else if (error.type === 'UNSUPPORTED_FORMAT') {\n message = React.createElement(ErrorMessage, { error: t('wrongEmailFormat error') });\n }\n }\n return (React.createElement(React.Fragment, null,\n React.createElement(\"h2\", null, t(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"Registration - Business Profile\"], [\"Registration - Business Profile\"])))),\n React.createElement(\"section\", { className: style },\n React.createElement(\"div\", null, t(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"We reserve specific functionalities to suppliers, buyers and food service operators so we have to be sure you work in the food business.\"], [\"We reserve specific functionalities to suppliers, buyers and food service operators so we have to be sure you work in the food business.\"]))),\n React.createElement(\"br\", null),\n React.createElement(\"span\", { className: sc('strong') }, t(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"We can't accept public email domains (@gmail.com, @aol.com, ...)\"], [\"We can't accept public email domains (@gmail.com, @aol.com, ...)\"]))),\n \". \", t(templateObject_4 || (templateObject_4 = __makeTemplateObject([\"If your company doesn't have a private email domain\"], [\"If your company doesn't have a private email domain\"]))),\n ' ',\n React.createElement(\"a\", { href: \"mailto:\" + supportEmail }, t(templateObject_5 || (templateObject_5 = __makeTemplateObject([\"contact us\"], [\"contact us\"])))),\n \".\")),\n React.createElement(Field, { id: 'email', label: t(templateObject_6 || (templateObject_6 = __makeTemplateObject([\"Insert your job email address\"], [\"Insert your job email address\"]))), error: errorState, className: sc('input') },\n React.createElement(\"input\", { id: \"email\", type: \"email\", onChange: function (event) { return setEmail(event.target.value); }, value: email }),\n email && email.length && errorState && (React.createElement(\"div\", { className: cns(defaultMarginBottom, sc('error')) }, message))),\n React.createElement(\"div\", { className: footer },\n React.createElement(Button, { label: t(templateObject_7 || (templateObject_7 = __makeTemplateObject([\"Back\"], [\"Back\"]))), onClick: back }),\n React.createElement(Button, { label: t(templateObject_8 || (templateObject_8 = __makeTemplateObject([\"Continue\"], [\"Continue\"]))), type: 'success', disabled: !validateEmail(email), onClick: function () { return performRegister(email); } })))));\n};\nvar templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8;\n//# sourceMappingURL=InsertWorkEmail.js.map","var __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 __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport React from 'react';\nimport { getLoginType, getUserData, isLogged, logout, setAuth, } from '../logic/auth';\nimport { footer } from '../utils/theme';\nimport { ToS } from './ToS';\nimport { TraditionalLogin } from './TraditionalLogin';\nimport { cleanUserData, extractWorkEmail, hasEmailDomainData, hasUserAuthData, isRenew, } from '../utils/misc';\nimport { Logo } from './Logo';\nimport { SocialChooseStep } from './SocialChooseStep';\nimport { ChooseEmailDomain } from './ChooseEmailDomain';\nimport { VerificationMessage } from './VerificationMessage';\nimport { WaitingReview } from './WaitingReview';\nimport { ChooseRole } from './ChooseRole';\nimport { Success } from './Success';\nimport { BuyerToConsumer } from './BuyerToConsumer';\nimport { mergeConfig } from '../logic/config';\nimport { classNames, registerClass } from '@food/css-manager';\nimport { ErrorMessage } from '@food/ui/build/dist/src/ErrorMessage';\nimport { isSocial, } from '../types';\nimport { TemporaryConsumer } from './TemporaryConsumer';\nimport { track } from '@food/tracking';\nimport { oAuthLogin } from '../utils/oauth';\nimport { InsertWorkEmail } from './InsertWorkEmail';\nimport { AuthSteps, responseToPhase } from '../logic/steps';\nimport { SwitchToSocialStep } from './SwitchToSocial';\nimport { ErrorStep } from './ErrorStep';\nimport { RememberSocialStep } from './RememberSocialStep';\nimport { VerifyLinkExpired } from './VerifyLinkExpired';\nimport { authTrackOverride } from '../utils/track';\nimport { UserRole } from '../server-types';\nimport { ChooseUpgradeRole } from './ChooseUpgradeRole';\nimport * as Sentry from '@sentry/browser';\nimport { withRouter } from 'react-router';\nimport { event } from 'react-ga';\nexport var SOCIAL_LOGIN_LAYOUTS;\n(function (SOCIAL_LOGIN_LAYOUTS) {\n SOCIAL_LOGIN_LAYOUTS[\"STANDARD\"] = \"STANDARD\";\n SOCIAL_LOGIN_LAYOUTS[\"COMPACT\"] = \"COMPACT\";\n})(SOCIAL_LOGIN_LAYOUTS || (SOCIAL_LOGIN_LAYOUTS = {}));\nexport var socialLoginLayoutChooser = function (width) {\n return width > 800 ? SOCIAL_LOGIN_LAYOUTS.STANDARD : SOCIAL_LOGIN_LAYOUTS.COMPACT;\n};\n// data l'ultima risposta del server, restituisco i dati necessari per la prossima richiesta\n// ancora in costruzione\n// TODO spostare in un file apposta\n/*const pickArgsFromResponse = (response: IServerResponse): any => {\n const base: any = {};\n if (response.cryptoRenewToken) {\n base.cryptoRenewToken = response.cryptoRenewToken;\n }\n return base;\n};*/\nvar isPayloadWithChoices = function (response) {\n return !!response.choices;\n};\n// data l'ultima risposta, ne prendo i tos\n// TODO spostare in un file apposta\nvar pickToSFromResponse = function (response) { return response.choices; };\n// data l'ultima risposta, ne prendo il bearer\n// TODO spostare in un file apposta\n/*const pickBearerFromResponse = (response: IServerResponse): string =>\n response && response.userAuth && response.userAuth.authorization;*/\n// data l'ultima risposta, prende il tipo di social usato per il login / a cui e' accoppiato l'utente\n// TODO spostare in un file apposta\nvar pickSocialTypeFromResponse = function (response) {\n var _a;\n var userSocialtype = (_a = response === null || response === void 0 ? void 0 : response.userAuth) === null || _a === void 0 ? void 0 : _a.userSocialtype;\n return isSocial(userSocialtype) ? userSocialtype : undefined;\n};\nvar pickEmailDomainsFromResponse = function (response) { return response === null || response === void 0 ? void 0 : response.choices; };\nvar loadingStep = registerClass(function (theme) { return \"\\nwidth: 100%;\\nmin-height: 20vh;\\n> div {\\n\\ttext-align: center;\\n\\tpadding: \" + theme.ratios.l / 2 + \"em;\\n}\"; });\nvar style = registerClass(function (theme) { return \"\\nmax-width: 900px;\\nmin-width: 500px;\\nbackground: \" + theme.colors.white + \";\\nline-height: \" + theme.ratios.l + \"em;\\ncolor: \" + theme.colors.ink + \";\\nmargin-bottom: \" + theme.ratios.l * theme.font.baseSize + \"px;\\n\\n> h2 {\\n\\tfont-size: \" + theme.ratios.xl + \"em;\\n\\tline-height: \" + theme.ratios.xl + \"em;\\n\\tcolor: \" + theme.colors.ink + \";\\n\\tbackground-color: \" + theme.colors.grey.light + \";\\n\\ttext-align: center;\\n\\tmargin-bottom: \" + (theme.ratios.l / 2) * theme.font.baseSize + \"px;\\n}\\n\\n> section {\\n\\tpadding: \" + theme.ratios.l * theme.font.baseSize + \"px;\\n\\tpadding-top: \" + (theme.ratios.l / 2) * theme.font.baseSize + \"px\\n\\n\\t.skip {\\n\\t\\tfont-size: \" + theme.ratios.s + \"em;\\n\\t\\ttext-align: center;\\n\\t}\\n\\n\\ta {\\n\\t\\tcursor: pointer;\\n\\t\\tcolor: \" + theme.colors.grey.plain + \";\\n\\t\\ttext-decoration: underline;\\n\\t}\\n\\t\\n\\t> p, > div > p {\\n\\t\\tmargin-top: \" + theme.font.baseSize + \"px;\\n\\t\\t\\n\\t\\t&:first-child {\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t}\\n\\t}\\n}\"; });\nexport var StepContainer = function (_a) {\n var children = _a.children;\n return (React.createElement(\"div\", { className: style }, children));\n};\nfunction socialLoginFactory(t) {\n return withRouter(/** @class */ (function (_super) {\n __extends(SocialLogin, _super);\n function SocialLogin(props) {\n var _this = _super.call(this, props) || this;\n _this.renderError = function (step) {\n var _a = _this.state, errors = _a.errors, socialType = _a.socialType;\n var tokens = _this.props.tokens;\n if (errors && errors.length) {\n return (React.createElement(\"div\", null, errors.map(function (e) {\n var key = e.key, type = e.type;\n if (key === 'grantToken.email' &&\n socialType === 'FACEBOOK') {\n key = 'grantToken.email facebook';\n }\n var errorId = key\n ? key + \" \" + type + \" error\"\n : 'generic error';\n // ci sono alcuni casi in cui gli errori non devono venire mostrati in quanto parte di un normale\n // svolgimento della procedura di login. Ad esempio, quando sto associando un sfContactId a un\n // utente con bearer scaduto ricevo un errore, ma non si tratta di un malfunzionamento.\n // Qui controllo questi casi e, se si verificano, non restituisco errore.\n if ((step === AuthSteps.CREDENTIAL_INPUT_TRADITIONAL ||\n step === AuthSteps.CREDENTIAL_INPUT_SOCIAL) &&\n key === 'options.authToken' &&\n type === 'INVALID_VALUE' &&\n tokens.sfContactId) {\n return React.createElement(\"span\", null);\n }\n // di default restistuisco semplicemente un messaggio di errore per ogni errore\n return (React.createElement(ErrorMessage, { key: (key || +new Date()) + ' error', error: t(errorId) }));\n })));\n }\n return null;\n };\n _this.deriveFromState = function (newState) {\n var _a, _b;\n var s = newState || _this.state;\n var config = _this.state.config;\n return {\n sourceApp: config.TARGET_SITE,\n role: s.role,\n cryptoRenewToken: (_b = (_a = s.serverAuth) === null || _a === void 0 ? void 0 : _a.payload) === null || _b === void 0 ? void 0 : _b.cryptoRenewToken,\n workEmail: s.email,\n userSocialLinkToken: s.userSocialLinkToken,\n tosApproved: s.tosAccepted,\n newsletterAccepted: s.newsletterAccepted,\n EmailDomain_id: s.emailDomain,\n };\n };\n _this.historySetState = function (state) {\n _this.setState(__assign(__assign({}, state), { history: _this.state.history.concat([__assign({}, _this.state)]) }));\n };\n /**\n * Funzione per controllare, al caricamento del componente, il token nell'url con il server\n * Puo' portare al SUCCESS, alla scelta del dominio, o a un messaggio di declassamento da BUYER a CONSUMER\n */\n _this.performVerify = function () { return __awaiter(_this, void 0, void 0, function () {\n var _a, authManager, tokens, redirectOnLogin, authFromState, serverAuth;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this.props, authManager = _a.authManager, tokens = _a.tokens, redirectOnLogin = _a.redirectOnLogin;\n authFromState = this.deriveFromState();\n if (authFromState.cryptoRenewToken) {\n // se sei già loggato, non devo fare il controllo\n return [2 /*return*/];\n }\n return [4 /*yield*/, authManager.authenticate(authFromState, tokens, true, redirectOnLogin)];\n case 1:\n serverAuth = _b.sent();\n if (!serverAuth.success ||\n serverAuth.payload.EmailDomainRow ||\n serverAuth.payload.userStatus === 'WAITING_REVIEW') {\n this.parseServerResponse(serverAuth);\n }\n else {\n this.successfulLoginHandler(serverAuth, serverAuth.payload.userSocialtype);\n }\n return [2 /*return*/];\n }\n });\n }); };\n _this.tryTraditionalLogin = function (_a) {\n var email = _a.email, password = _a.password;\n return __awaiter(_this, void 0, void 0, function () {\n var _b, authManager, tokens, loginResult;\n var _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _b = this.props, authManager = _b.authManager, tokens = _b.tokens;\n this.setState({ loading: true });\n return [4 /*yield*/, authManager.authenticate(__assign(__assign({}, this.deriveFromState(this.state)), { email: email,\n password: password }), tokens, false)];\n case 1:\n loginResult = _d.sent();\n if (!loginResult.success) return [3 /*break*/, 5];\n if (!(((_c = loginResult.payload.userAuth) === null || _c === void 0 ? void 0 : _c.auth.user.role) ===\n UserRole.Internal)) return [3 /*break*/, 3];\n return [4 /*yield*/, this.successfulLoginHandler(loginResult, 'TRADITIONAL')];\n case 2:\n _d.sent();\n return [2 /*return*/];\n case 3:\n // segnalo ad analytics che ho avuto un login da social\n event({\n category: 'User',\n action: 'Sign in',\n label: 'credentials',\n });\n this.setState({\n loading: false,\n serverAuth: loginResult,\n });\n _d.label = 4;\n case 4: return [3 /*break*/, 6];\n case 5:\n // ho ricevuto un errore, parso la risposta e la gestisco\n this.parseServerResponse(loginResult, {\n errors: [loginResult.payload],\n });\n _d.label = 6;\n case 6: return [2 /*return*/];\n }\n });\n });\n };\n _this.trySocialUpgrade = function (social) { return __awaiter(_this, void 0, void 0, function () {\n var _a, authManager, tokens, socialType, grantToken, serverAuth, e_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this.props, authManager = _a.authManager, tokens = _a.tokens;\n socialType = authManager.SOCIAL_TYPES[social];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 5, , 6]);\n return [4 /*yield*/, oAuthLogin({\n socialType: socialType,\n })];\n case 2:\n grantToken = _b.sent();\n if (!grantToken) return [3 /*break*/, 4];\n return [4 /*yield*/, authManager.authenticate(__assign(__assign({}, this.deriveFromState(this.state)), { grantToken: grantToken, socialType: socialType.key }), tokens, true)];\n case 3:\n serverAuth = _b.sent();\n if (serverAuth.payload.userAuth &&\n serverAuth.payload.userAuth.success === true &&\n serverAuth.payload.userStatus !== 'WAITING_REVIEW') {\n this.successfulLoginHandler(serverAuth, social);\n }\n else {\n this.parseServerResponse(serverAuth, {\n grantToken: grantToken,\n errors: [serverAuth.payload],\n });\n }\n return [3 /*break*/, 4];\n case 4: return [3 /*break*/, 6];\n case 5:\n e_1 = _b.sent();\n console.error(e_1);\n console.warn('Access to social data denied, nothing to do!');\n return [3 /*break*/, 6];\n case 6: return [2 /*return*/];\n }\n });\n }); };\n _this.trySocialLogin = function (_a) {\n var fixedSocial = _a.fixedSocial;\n return __awaiter(_this, void 0, void 0, function () {\n var _b, authManager, tokens, socialType, grantToken, changedState, newState, serverAuth, e_2;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _b = this.props, authManager = _b.authManager, tokens = _b.tokens;\n socialType = authManager.SOCIAL_TYPES[fixedSocial];\n _c.label = 1;\n case 1:\n _c.trys.push([1, 5, , 6]);\n return [4 /*yield*/, oAuthLogin({\n // sourceApp: config.TARGET_SITE,\n socialType: socialType,\n })];\n case 2:\n grantToken = _c.sent();\n if (!grantToken) return [3 /*break*/, 4];\n changedState = {\n socialType: socialType.key,\n grantToken: grantToken,\n };\n newState = __assign(__assign(__assign({}, this.state), changedState), { authToken: null });\n return [4 /*yield*/, authManager.authenticate(__assign(__assign({}, this.deriveFromState(newState)), { grantToken: grantToken, socialType: socialType.key }), tokens, false)];\n case 3:\n serverAuth = _c.sent();\n if (serverAuth.payload.userAuth &&\n serverAuth.payload.userAuth.success === true) {\n // segnalo ad analytics che ho avuto un login da social\n // nota: se l'utente e' in WAITING REVIEW ma si e' autenticato devo comunque avvisare analytics di avvenuto login\n event({\n category: 'User',\n action: 'Sign in',\n label: 'social',\n });\n }\n if (serverAuth.payload.userAuth &&\n serverAuth.payload.userAuth.success === true &&\n serverAuth.payload.userStatus !== 'WAITING_REVIEW') {\n // save and complete\n this.successfulLoginHandler(serverAuth, socialType.key);\n }\n else {\n // not registered or waiting review, continue with registration\n this.parseServerResponse(serverAuth, __assign({}, changedState));\n }\n return [3 /*break*/, 4];\n case 4: return [3 /*break*/, 6];\n case 5:\n e_2 = _c.sent();\n console.error(e_2);\n console.warn('Access to social data denied, nothing to do!');\n return [3 /*break*/, 6];\n case 6: return [2 /*return*/];\n }\n });\n });\n };\n // save registration\n _this.performRegister = function (newState) { return __awaiter(_this, void 0, void 0, function () {\n var _a, authManager, tokens, redirectOnLogin, serverAuth;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this.props, authManager = _a.authManager, tokens = _a.tokens, redirectOnLogin = _a.redirectOnLogin;\n return [4 /*yield*/, authManager.authenticate(this.deriveFromState(newState), tokens, false, redirectOnLogin)];\n case 1:\n serverAuth = _b.sent();\n if (serverAuth.success) {\n // segnalo ad analytics che ho avuto un nuovo utente registrato\n event({\n category: 'User',\n action: 'Registration',\n label: serverAuth.payload.userStatus,\n });\n }\n // check if already registered,\n if (serverAuth.success &&\n serverAuth.payload.userStatus !== 'WAITING_REVIEW') {\n /*if (serverAuth.payload.EmailDomainRow) {\n // sono in fase di registrazione, mando alla schermata di successo\n this.setState({\n // phase: 'SUCCESS',\n loading: false,\n errors: null,\n serverAuth,\n });\n } else if () {\n this.setState({\n // phase: 'WAITING_REVIEW',\n loading: false,\n errors: null,\n serverAuth,\n });\n } else {*/\n this.successfulLoginHandler(serverAuth, serverAuth.payload.userSocialtype || 'TRADITIONAL');\n // }\n }\n else {\n this.parseServerResponse(serverAuth, newState);\n }\n return [2 /*return*/];\n }\n });\n }); };\n _this.acceptTos = function (_a) {\n var tosLocalId = _a.id, newsletter = _a.newsletter;\n var stateUpdate = {\n tosAccepted: tosLocalId,\n newsletterAccepted: newsletter,\n };\n var newState = __assign(__assign({}, _this.state), stateUpdate);\n _this.performRegister(newState);\n _this.setState(newState);\n };\n _this.roleChooser = function (role) {\n var newState = {\n role: role,\n };\n _this.setState(__assign(__assign({}, newState), { loading: true }));\n _this.performRegister(__assign(__assign({}, _this.state), newState));\n };\n // TODO estrarne almeno una parte\n _this.upgradeRole = function (role) { return __awaiter(_this, void 0, void 0, function () {\n var _a, tokens, authManager, stateChanges, newState, serverAuth;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this.props, tokens = _a.tokens, authManager = _a.authManager;\n stateChanges = {\n role: role,\n loading: true,\n };\n this.setState(stateChanges);\n newState = __assign(__assign({}, this.state), stateChanges);\n return [4 /*yield*/, authManager.authenticate(this.deriveFromState(newState), tokens, true)];\n case 1:\n serverAuth = _b.sent();\n if (serverAuth.success &&\n serverAuth.payload.userStatus !== 'WAITING_REVIEW') {\n this.successfulLoginHandler(serverAuth, serverAuth.payload.userSocialtype || 'TRADITIONAL');\n // }\n }\n else {\n this.parseServerResponse(serverAuth, newState);\n }\n return [2 /*return*/];\n }\n });\n }); };\n _this.back = function () {\n var history = _this.state.history;\n var oldState = history.pop();\n if (oldState) {\n _this.setState(__assign(__assign({}, oldState), { email: undefined, errors: undefined, loading: false, forcedChangeWorkEmail: false, serverAuth: oldState.serverAuth || undefined }));\n }\n else {\n // back without previus state\n Sentry.withScope(function (scope) {\n scope.setExtra('oldState', oldState);\n Sentry.captureException(new Error('back without previus state'));\n });\n }\n };\n //\n _this.clearTokens = function () {\n var _a = _this\n .props, location = _a.location, history = _a.history;\n var search = location.search, pathname = location.pathname;\n if (search) {\n history.replace(pathname);\n }\n };\n // funzione per chiudere la modale, qualora si trattasse di modale\n // in effetti non fa altro che pulire l'url e chiamare un eventuale listener\n _this.close = function () {\n // TODO il close, se chiamato su step post autenticazione, dovrebbe lanciare il success handler\n // TODO il close dovrebbe essere chiamato con un parametro per distinguere i caso in cui il login e' andato a buon fine\n var onClose = _this.props.onClose;\n _this.clearTokens();\n if (onClose) {\n onClose();\n }\n };\n _this.parseServerResponse = function (serverAuth, changedState) {\n if (changedState === void 0) { changedState = {}; }\n var config = _this.state.config;\n // qualsiasi sia lo stato emergente da questa elaborazione, avra' queste caratteristiche\n var newState = __assign(__assign({}, changedState), { serverAuth: serverAuth, loading: false });\n /**\n * Ci sono casi in cui non imposto serverAuth e quindi mi perderei\n * serverAuth.payload.cryptoRenewToken con conseguente errore sulla\n * chiamata successiva perché manca un qualsiasi metodo di autenticazione.\n */\n if (serverAuth.payload.cryptoRenewToken) {\n _this.setState({\n serverAuth: serverAuth,\n });\n }\n if (serverAuth.payload.key) {\n if (serverAuth.payload.key.includes('options.tosApproved')) {\n // potrebbe avermi passato anche un cryptoRenewToken\n _this.historySetState(newState);\n }\n else if (serverAuth.payload.key.includes('options.role')) {\n // sono nel caso in cui chiedo il ruolo dell'utente da registrare\n if (config.AUTH_ROLES.length === 1 &&\n config.AUTH_ROLES[0] === UserRole.Consumer) {\n // se solo il ruolo CONSUMER e' abilitato alla registrazione lo seleziono automaticamente\n _this.roleChooser(UserRole.Consumer);\n return false;\n }\n else {\n // altrimenti mostro una scelta di pulsanti per scegliere i diversi ruoli\n // mi serve che sia una `historySetState` perche' devo poter tornare indietro\n _this.historySetState(newState);\n return false;\n }\n }\n else if (serverAuth.payload.key.includes('options.userSocialLinkToken') &&\n isSocial(_this.state.socialType)) {\n // userSocialLinkToken non valido, rifai la chiamata senza valorizzare userSocialLinkToken\n _this.trySocialLogin({ fixedSocial: _this.state.socialType });\n }\n else if (serverAuth.payload.key.includes('options.workEmailRoleToken') &&\n isSocial(_this.state.socialType)) {\n // workEmailRoleToken non valido, rifai la chiamata senza valorizzare workEmailRoleToken\n _this.setState(__assign(__assign({}, newState), { workEmailRoleToken: null }));\n _this.trySocialLogin({ fixedSocial: _this.state.socialType });\n }\n else if ((serverAuth.payload.key === 'options.email' &&\n serverAuth.payload.type === 'INVALID_VALUE') ||\n (serverAuth.payload.key === 'options.workEmail' &&\n serverAuth.payload.type === 'MUST_BE_UNIQUE') ||\n (serverAuth.payload.key === 'options.workEmail' &&\n serverAuth.payload.type === 'INVALID_VALUE')) {\n // sono nel caso di login errato, tentativo di registrazione con email gia' usata o con dominio CONSUMER_ONLY\n _this.setState({\n loading: false,\n errors: [serverAuth.payload],\n });\n return false;\n }\n else {\n _this.historySetState(__assign(__assign({}, newState), { loading: false, errors: [serverAuth.payload] }));\n return false;\n }\n }\n else if (serverAuth.payload.status === 201 ||\n serverAuth.payload.userStatus === 'NOT_VERIFIED') {\n // siamo nel caso in cui e' stata inserita una workEmail. Tendenzialmente mostriamo un messaggio di\n // conferma che invita a convalidare la mail\n _this.historySetState(__assign(__assign({}, newState), { workEmail: serverAuth.payload.workEmail }));\n // }\n }\n else {\n // bho??\n // caso timeout? errore generico?\n _this.historySetState(newState);\n return true;\n }\n return true;\n };\n _this.orLogout = function () {\n logout();\n _this.close();\n };\n _this.successfulLoginHandler = function (serverResponse /*: IServerResponse*/, loginType) {\n var onSuccess = _this.props.onSuccess;\n track(__assign(__assign({}, authTrackOverride), { action: {\n type: 'successful_login',\n authData: cleanUserData(serverResponse.payload.userAuth),\n } }));\n var userAuth = serverResponse.payload.userAuth;\n if (!(userAuth === null || userAuth === void 0 ? void 0 : userAuth.authorization)) {\n Sentry.withScope(function (scope) {\n scope.setExtra('userAuth', userAuth);\n Sentry.captureException(new Error('successfulLoginHandler but userAuth without authorization'));\n });\n }\n else {\n // l'handler del success deve sempre eseguire DOPO aver impostato a livello globale i dati di autenticazione!!\n setAuth(userAuth, loginType);\n _this.clearTokens();\n if (onSuccess !== undefined) {\n onSuccess();\n }\n }\n };\n var config = props.config, fixedSocial = props.fixedSocial, startTraditional = props.startTraditional, instantUpgradeRole = props.instantUpgradeRole, tokens = props.tokens;\n var mergedConfig = mergeConfig(config);\n var workEmailVerifyToken = tokens.workEmailVerifyToken, sfContactId = tokens.sfContactId;\n if (workEmailVerifyToken) {\n // sono in una pagina che deve verificare una email di lavoro, appena mi avvio faccio una chiamata\n // probabilmente e' un brutto modo di eseguire un cambio stato applicazione\n _this.state = {\n loading: true,\n history: [],\n socialInput: !mergedConfig.LOGIN_START_TRADITIONAL && !startTraditional,\n config: mergedConfig,\n forcedChangeWorkEmail: false,\n };\n _this.performVerify();\n }\n else if (sfContactId && isLogged()) {\n // sono in una pagina che deve collegare ad un account un account salesforce tramite il token passato in\n // url. Nel caso l'utente sia loggato provo a fare la chiamata e mostro qualcosa solo in caso di errore.\n _this.state = {\n loading: true,\n history: [],\n socialInput: !mergedConfig.LOGIN_START_TRADITIONAL && !startTraditional,\n config: mergedConfig,\n forcedChangeWorkEmail: false,\n };\n _this.performVerify();\n }\n else if (instantUpgradeRole && isLogged()) {\n // sono in una pagina che deve verificare una email di lavoro, appena mi avvio faccio una chiamata\n // probabilmente e' un bruttor modo di eseguire un cambio stato applicazione\n _this.state = {\n loading: true,\n history: [],\n socialInput: !mergedConfig.LOGIN_START_TRADITIONAL && !startTraditional,\n config: mergedConfig,\n forcedChangeWorkEmail: false,\n };\n _this.upgradeRole(instantUpgradeRole);\n }\n else {\n _this.state = SocialLogin._initState(props);\n if (fixedSocial) {\n // ho cliccato su un qualche pulsante con richiesta di login social, vado a fare direttamente la\n // richiesta per il login social\n _this.trySocialLogin({ fixedSocial: fixedSocial });\n }\n }\n return _this;\n }\n SocialLogin._initState = function (props) {\n var config = props.config, _a = props.tokens, workEmailRoleToken = _a.workEmailRoleToken, userSocialLinkToken = _a.userSocialLinkToken, __initialResponse = props.__initialResponse, startTraditional = props.startTraditional;\n var mergedConfig = mergeConfig(config);\n // controllo se si tratta di un rinnovo o di un login da 0\n var common = {\n workEmailRoleToken: workEmailRoleToken,\n userSocialLinkToken: userSocialLinkToken,\n history: [],\n loading: false,\n socialInput: startTraditional !== undefined\n ? !startTraditional\n : !mergedConfig.LOGIN_START_TRADITIONAL,\n // !mergedConfig.LOGIN_START_TRADITIONAL && !startTraditional,\n config: mergedConfig,\n forcedChangeWorkEmail: false,\n };\n if (isRenew()) {\n // se sto rinnovando un'autenticazione devo sapere quale forma di login (tradizionale o social) sto rinnovando\n common.socialType = getLoginType();\n }\n if (__initialResponse) {\n // ho una risposta fissata nelle props, sono in un qualche tipo di test, lo inietto nello stato\n common.serverAuth = {\n success: true,\n payload: __initialResponse,\n };\n }\n return common;\n };\n SocialLogin.prototype.render = function () {\n var _this = this;\n var _a, _b;\n var _c = this.state, loading = _c.loading, serverAuth = _c.serverAuth, emailDomain = _c.emailDomain, config = _c.config, errors = _c.errors, socialInput = _c.socialInput, forcedChangeWorkEmail = _c.forcedChangeWorkEmail;\n var _d = this.props, authManager = _d.authManager, logo = _d.logo, isModal = _d.isModal, _e = _d.layout, layout = _e === void 0 ? SOCIAL_LOGIN_LAYOUTS.STANDARD : _e, C = _d.customComponent, upgradeRole = _d.upgradeRole, forcedRenewAuthType = _d.forcedRenewAuthType, tokens = _d.tokens;\n // la view del social login viene dedotta a partire dalla risposta del server e alcuni dati aggiuntivi\n var consumerCanRegister = config.AUTH_ROLES.includes(UserRole.Consumer);\n var isUpgradingRole = (typeof upgradeRole === 'boolean' && upgradeRole) ||\n (Array.isArray(upgradeRole) && upgradeRole.length > 0);\n var phase = responseToPhase(serverAuth && serverAuth.payload, forcedRenewAuthType\n ? forcedRenewAuthType !== 'TRADITIONAL'\n : socialInput, loading, isUpgradingRole, getUserData(), consumerCanRegister, forcedChangeWorkEmail, tokens.sfContactId);\n if (phase !== this.initialPhase) {\n var action = { type: 'auth_step_changed', new: phase };\n if (this.initialPhase) {\n action.old = this.initialPhase;\n }\n track(__assign(__assign({}, authTrackOverride), { action: action }));\n }\n this.initialPhase = phase;\n // TODO ripristinare il sistema di \"indietro\"\n var socialTypes = config.SOCIAL_TYPES;\n var leftColElem = C ? (React.createElement(C, { layout: layout })) : (React.createElement(Logo, { custom: logo, layout: layout }));\n var user = hasUserAuthData(serverAuth);\n var managed = hasEmailDomainData(serverAuth);\n if (loading) {\n return (React.createElement(\"div\", { className: classNames(style, loadingStep, 'social-login') },\n React.createElement(\"h2\", null, t(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"Sign In / Register\"], [\"Sign In / Register\"])))),\n React.createElement(\"div\", null, t(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"loading\"], [\"loading\"]))),\n \"...\")));\n }\n if (serverAuth &&\n phase === AuthSteps.MAIL_CONFIRMED_WAITING_REVIEW) {\n return (React.createElement(StepContainer, null,\n React.createElement(WaitingReview, { t: t, onClose: function () {\n return consumerCanRegister\n ? _this.successfulLoginHandler(serverAuth, serverAuth.payload.userSocialtype)\n : _this.orLogout();\n }, isModal: isModal, supportEmail: config.HELP_EMAIL })));\n }\n else if (phase === AuthSteps.CREDENTIAL_INPUT_SOCIAL) {\n return (React.createElement(StepContainer, null,\n React.createElement(SocialChooseStep, { t: t, socialTypes: socialTypes, logoElem: leftColElem, orLogout: this.orLogout, performLogin: this.trySocialLogin, changePhase: function () {\n return _this.setState({ socialInput: false });\n }, layout: layout, authManager: authManager, errors: this.renderError(AuthSteps.CREDENTIAL_INPUT_SOCIAL), isRenew: isRenew() })));\n }\n else if (phase === AuthSteps.CREDENTIAL_INPUT_TRADITIONAL) {\n return (React.createElement(StepContainer, null,\n React.createElement(TraditionalLogin, { t: t, socialTypes: socialTypes, logoElem: leftColElem, orLogout: this.orLogout, changePhase: function () { return _this.setState({ socialInput: true }); }, onLogin: this.tryTraditionalLogin, layout: layout, isRenew: isRenew(), errors: this.renderError(AuthSteps.CREDENTIAL_INPUT_TRADITIONAL), loading: loading, fixedEmail: getUserData() && getUserData().email })));\n }\n else if (phase === AuthSteps.TERMS_OF_SERVICE) {\n var payload = (_a = this.state.serverAuth) === null || _a === void 0 ? void 0 : _a.payload;\n var tos = payload && isPayloadWithChoices(payload)\n ? pickToSFromResponse(payload)[0]\n : null;\n return (React.createElement(StepContainer, null,\n React.createElement(ToS, { tos: tos, onBack: this.back, onAgree: function (args) { return _this.acceptTos(args); }, t: t, lang: config.LANG })));\n }\n else if (phase === AuthSteps.CHOOSE_ROLE) {\n return (React.createElement(StepContainer, null,\n React.createElement(ChooseRole, { t: t, back: this.back, roleChooser: this.roleChooser, authManager: authManager, roles: config.AUTH_ROLES })));\n }\n else if (serverAuth && phase === AuthSteps.ASK_WORK_EMAIL) {\n return (React.createElement(StepContainer, null,\n React.createElement(InsertWorkEmail, { t: t, errors: errors, back: this.back, supportEmail: config.HELP_EMAIL, presetWorkEmail: extractWorkEmail(serverAuth), performRegister: function (email) {\n _this.performRegister(__assign(__assign({}, _this.state), { email: email.trim().toLowerCase(), forcedChangeWorkEmail: false }));\n } })));\n }\n else if (serverAuth &&\n phase === AuthSteps.CONFIRMATION_EMAIL_SENT) {\n var workEmail_1 = extractWorkEmail(serverAuth);\n if (!workEmail_1) {\n Sentry.withScope(function (scope) {\n scope.setExtra('serverAuth', serverAuth);\n Sentry.captureException(new Error('AuthSteps.CONFIRMATION_EMAIL_SENT but no workEmail'));\n });\n }\n return (React.createElement(StepContainer, null,\n React.createElement(VerificationMessage, { t: t, footer: footer, close: this.close, workEmail: workEmail_1 || t(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"Unknown email\"], [\"Unknown email\"]))), isModal: isModal, returnToAskEmail: function () {\n return _this.setState({\n forcedChangeWorkEmail: true,\n workEmail: workEmail_1,\n });\n }, logout: this.orLogout })));\n }\n else if (serverAuth &&\n phase === AuthSteps.CONFIRMATION_EMAIL_SENT_TEMPORARY_CONSUMER) {\n return (React.createElement(StepContainer, null,\n React.createElement(TemporaryConsumer, { t: t, proceed: function () {\n return _this.successfulLoginHandler(serverAuth, serverAuth.payload.userSocialtype);\n }, isModal: isModal, user: user, workEmail: extractWorkEmail(serverAuth), supportEmail: config.HELP_EMAIL, returnToAskEmail: function () {\n return _this.historySetState(__assign(__assign({}, _this.state), { forcedChangeWorkEmail: true, workEmail: extractWorkEmail(serverAuth) }));\n } })));\n }\n else if (phase === AuthSteps.VERIFY_LINK_EXPIRED) {\n return (React.createElement(StepContainer, null,\n React.createElement(VerifyLinkExpired, { proceed: this.orLogout, t: t, isModal: isModal, supportEmail: config.HELP_EMAIL })));\n }\n else if (serverAuth &&\n phase === AuthSteps.SUCCESSFUL_REGISTRATION) {\n return (React.createElement(StepContainer, null,\n React.createElement(Success, { t: t, proceed: function () {\n return _this.successfulLoginHandler(serverAuth, serverAuth.payload.userSocialtype);\n }, isModal: isModal, user: user, managed: managed, supportEmail: config.HELP_EMAIL })));\n }\n else if (serverAuth &&\n phase === AuthSteps.DOWNGRADED_TO_CONSUMER) {\n return (React.createElement(StepContainer, null,\n React.createElement(BuyerToConsumer, { t: t, supportEmail: config.HELP_EMAIL, user: user, proceed: function () {\n return _this.successfulLoginHandler(serverAuth, serverAuth.payload.userSocialtype);\n }, isModal: isModal })));\n }\n else if (phase === AuthSteps.CHOOSE_EMAIL_DOMAIN) {\n var payload = (_b = this.state.serverAuth) === null || _b === void 0 ? void 0 : _b.payload;\n var domains = payload && isPayloadWithChoices(payload)\n ? pickEmailDomainsFromResponse(payload)\n : [];\n // TODO - Assert domains.length >= 1\n return (React.createElement(StepContainer, null,\n React.createElement(ChooseEmailDomain, { t: t, emailDomain: emailDomain, emailDomains: domains, onChoose: function () { return _this.performRegister(_this.state); }, emailDomainChooser: function (i) {\n return _this.setState({\n emailDomain: i.id,\n });\n }, supportEmail: config.HELP_EMAIL })));\n }\n else if (phase === AuthSteps.UPGRADE_ROLE) {\n // potrei avere dei ruoli designati per l'upgrade passati direttamente nella chiamata imperativa di\n // `openRenewModal; nel caso non fosse cosi' devo prendere quelli con cui e' stato configurato l'authManager\n var allowedRoles_1 = config.AUTH_ROLES.filter(function (role) {\n return role !== UserRole.Consumer &&\n role !== UserRole.Anonymus &&\n role !== UserRole.Internal;\n });\n var availableRoles = !Array.isArray(upgradeRole)\n ? allowedRoles_1\n : upgradeRole.filter(function (role) { return allowedRoles_1.includes(role); });\n if (Array.isArray(upgradeRole) &&\n upgradeRole.some(function (role) { return allowedRoles_1.indexOf(role) === -1; })) {\n // check controllo: non dovrebbero esserci ruoli presenti nel richiamo dell'upgrade ma non nella\n // configurazione generale di auth\n Sentry.withScope(function (scope) {\n scope.setExtra('Ruoli impostati da config', allowedRoles_1);\n scope.setExtra('Ruoli richiesti da chiamata', upgradeRole);\n Sentry.captureException(new Error('Configurazione errata Auth'));\n });\n }\n // per l'upgrade adottiamo un approccio generico, non richiedendo all'utente di scegliere il ruolo ma\n // offrendo un generico \"professionista\". Questo UserRole corrispondera' al primo ruolo a caso fra quelli\n // possibili; stara' poi a noi smistare correttamente l'utente tramite EmailDomain\n var choosenRole_1 = availableRoles[0];\n if (!choosenRole_1) {\n // sono finito in un caso strano, segnalo il problema ma provo ad offrire una soluzione\n Sentry.captureException(new Error(\"Nessun ruolo richiesto per l'upgrade risulta permesso\"));\n choosenRole_1 = allowedRoles_1[0];\n if (!choosenRole_1) {\n // caso ancora piu' strano: non ho proprio ruoli accessibili. Segnalo l'errore e restituisco\n // una schermata di errore tecnico\n Sentry.captureException(new Error('Chiamato upgrade, ma nessun ruolo permesso'));\n return (React.createElement(StepContainer, null,\n React.createElement(ErrorStep, { error: t(templateObject_4 || (templateObject_4 = __makeTemplateObject([\"cannot upgrade error\"], [\"cannot upgrade error\"]))), t: t, isModal: isModal, supportEmail: config.HELP_EMAIL, close: this.close })));\n }\n }\n return (React.createElement(StepContainer, null,\n React.createElement(ChooseUpgradeRole, { t: t, upgrade: function () { return _this.upgradeRole(choosenRole_1); }, close: this.close })));\n }\n else if (serverAuth && phase === AuthSteps.SWITCH_TO_SOCIAL) {\n return (React.createElement(StepContainer, null,\n React.createElement(SwitchToSocialStep, { t: t, authManager: authManager, socialTypes: socialTypes, performLogin: this.trySocialUpgrade, maybeLaterHandler: function () {\n return _this.successfulLoginHandler(serverAuth, 'TRADITIONAL');\n }, layout: layout })));\n }\n else if (serverAuth &&\n phase === AuthSteps.REMIND_SOCIAL_ACCOUNT) {\n var socialType = pickSocialTypeFromResponse(serverAuth.payload);\n if (!socialType) {\n // check controllo: non dovrebbero esserci ruoli presenti nel richiamo dell'upgrade ma non nella\n // configurazione generale di auth\n Sentry.withScope(function (scope) {\n scope.setExtra('serverAuth.payload', serverAuth.payload);\n Sentry.captureException(new Error('AuthSteps.REMIND_SOCIAL_ACCOUNT without socialtype'));\n });\n this.successfulLoginHandler(serverAuth, 'TRADITIONAL');\n return (React.createElement(StepContainer, null,\n React.createElement(ErrorStep, { error: t(templateObject_5 || (templateObject_5 = __makeTemplateObject([\"AuthSteps.REMIND_SOCIAL_ACCOUNT without socialtype\"], [\"AuthSteps.REMIND_SOCIAL_ACCOUNT without socialtype\"]))), t: t, isModal: isModal, supportEmail: config.HELP_EMAIL, close: this.close })));\n }\n return (React.createElement(StepContainer, null,\n React.createElement(RememberSocialStep, { t: t, proceed: function () {\n return _this.successfulLoginHandler(serverAuth, 'TRADITIONAL');\n }, socialType: socialType })));\n }\n else {\n // viste le condizioni precedenti, questo implica `phase instanceOf Error === true`\n return (React.createElement(StepContainer, null,\n React.createElement(ErrorStep, { error: this.renderError(), t: t, isModal: isModal, supportEmail: config.HELP_EMAIL, close: function () { return (isModal ? _this.close() : _this.orLogout()); } })));\n }\n };\n return SocialLogin;\n }(React.Component)));\n}\nexport { socialLoginFactory };\nvar templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;\n//# sourceMappingURL=SocialLogin.js.map","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React from 'react';\nimport { Button, layouts as ButtonLayouts, } from '@food/ui/build/dist/src/Button';\nimport { classNames, registerClass, currySC } from '@food/css-manager';\nimport { SOCIAL_LOGIN_LAYOUTS } from './SocialLogin';\nimport { SocialButtons } from './SocialButtons';\nimport { isSocial } from '../types';\nimport * as Sentry from '@sentry/browser';\nvar flexRow = registerClass(function () { return \"\\n\\tflex-direction: row;\\n\"; });\nvar flexCol = registerClass(function () { return \"\\n\\tflex-direction: column;\\n\"; });\nvar stepSection = registerClass(function (theme, sc) { return \"\\n\\tpadding: \" + (theme.ratios.l / 4) * theme.font.baseSize + \"px \" + theme.ratios.l *\n theme.font.baseSize + \"px;\\n\\n\\t> div {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: space-between;\\n\\n\\t\\t> div {\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t}\\n\\t}\\n\\t\\n\\t.\" + sc('buttons') + \" {\\n\\t\\tmargin: \" + theme.ratios.xl * theme.font.baseSize + \"px;\\n\\t}\\n\\t\\n\\t.\" + sc('renew-intro') + \" {\\n\\t\\tmargin: 1em;\\n\\t\\ttext-align: center;\\n\\t}\\n\\t\\n\\t.\" + sc('change-login-type') + \" {\\n\\t\\ttext-align: center;\\n\\t}\\n\\t\\n\\t.\" + sc('login-buttons') + \" {\\n\\t\\ttext-align: center;\\n\\n\\t\\t>button {\\n\\t\\t\\tmargin: \" + (theme.ratios.xl / 2) * theme.font.baseSize + \"px;\\n\\t\\t}\\n\\t}\\n\\t\\n\\t&.\" + sc('layout', 'STANDARD') + \" > div > div {\\n\\t\\tflex-basis: \" + theme.font.baseSize + \"px;\\n\\t}\\n\\t\\n\\t.\" + sc('explanation-title') + \" {\\n\\t\\tfont-size: \" + theme.ratios.xl * theme.font.baseSize + \"px;\\n\\t\\tline-height: \" + 2 * theme.font.baseSize + \"px;\\n\\t}\\n\\t\\n\\t.\" + sc('explanation-text') + \" {\\n\\t\\tmargin-top: \" + theme.ratios.xl * theme.font.baseSize + \"px;\\n\\t}\\n\\t\\n\\t.\" + sc('explanation') + \" {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\tflex-direction: column;\\n\\t\\theight: 100%;\\n\\t\\tpadding-bottom: \" + theme.ratios.xl * 2 * theme.font.baseSize + \"px;\\n\\t}\\n\"; });\nvar marginBottom = registerClass(function (theme) {\n return \"margin-bottom: \" + theme.ratios.l * theme.font.baseSize + \"px;\";\n});\nvar sc = currySC(stepSection);\nexport var SwitchToSocialStep = function (_a) {\n var t = _a.t, socialTypes = _a.socialTypes, layout = _a.layout, performLogin = _a.performLogin, errors = _a.errors, maybeLaterHandler = _a.maybeLaterHandler;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"h2\", null, t(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"Switch to Social Account\"], [\"Switch to Social Account\"])))),\n React.createElement(\"section\", { className: classNames(stepSection, sc('layout', layout)) },\n React.createElement(\"div\", { className: layout === SOCIAL_LOGIN_LAYOUTS.STANDARD ? flexRow : flexCol },\n React.createElement(\"div\", null,\n React.createElement(\"div\", { className: sc('explanation') },\n React.createElement(\"div\", { className: sc('explanation-title') }, t(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"switch to social explanation title\"], [\"switch to social explanation title\"])))),\n React.createElement(\"div\", { className: sc('explanation-text'), dangerouslySetInnerHTML: {\n __html: t(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"switch to social explanation html\"], [\"switch to social explanation html\"]))),\n } }))),\n React.createElement(\"div\", { className: sc('buttons') },\n React.createElement(\"div\", { className: marginBottom },\n React.createElement(\"div\", null, t(templateObject_4 || (templateObject_4 = __makeTemplateObject([\"Associate a social account to your user\"], [\"Associate a social account to your user\"]))))),\n errors,\n React.createElement(SocialButtons, { socials: socialTypes, onClick: function (args) {\n // Checking that onClick was given good args\n if (args &&\n args.fixedSocial &&\n isSocial(args.fixedSocial)) {\n performLogin(args.fixedSocial);\n }\n else {\n Sentry.withScope(function (scope) {\n scope.setExtra('onClick args', args);\n Sentry.captureException(new Error('SocialButtons.onClick unsupported args'));\n });\n }\n }, t: t }),\n React.createElement(\"div\", { className: sc('login-buttons') },\n React.createElement(Button, { onClick: maybeLaterHandler, layout: ButtonLayouts.LINK, label: t(templateObject_5 || (templateObject_5 = __makeTemplateObject([\"Maybe later\"], [\"Maybe later\"]))) })))))));\n};\nvar templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;\n//# sourceMappingURL=SwitchToSocial.js.map","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React from 'react';\nimport { footer } from '../utils/theme';\nimport { classNames, subClass } from '@food/css-manager';\nimport { Button } from '@food/ui/build/dist/src/Button';\nexport var ErrorStep = function (_a) {\n var t = _a.t, isModal = _a.isModal, close = _a.close, error = _a.error, supportEmail = _a.supportEmail;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"h2\", null, t(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"Authentication error\"], [\"Authentication error\"]))),\n \" :(\"),\n React.createElement(\"section\", null,\n React.createElement(\"div\", null, error || t(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"Unknown error\"], [\"Unknown error\"])))),\n React.createElement(\"p\", null, t(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"If the problem persists\"], [\"If the problem persists\"]))),\n ' ',\n React.createElement(\"a\", { href: \"mailto:\" + supportEmail }, t(templateObject_4 || (templateObject_4 = __makeTemplateObject([\"contact us\"], [\"contact us\"])))),\n \".\"),\n React.createElement(\"div\", { className: classNames(footer, subClass(footer, 'centered')) },\n React.createElement(Button, { label: t(isModal ? 'Close' : 'Proceed'), onClick: close })))));\n};\nvar templateObject_1, templateObject_2, templateObject_3, templateObject_4;\n//# sourceMappingURL=ErrorStep.js.map","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React from 'react';\nimport { registerClass, currySC } from '@food/css-manager';\nimport { Button } from '@food/ui/build/dist/src/Button';\nvar styleClass = registerClass(function (t, sc) { return \"\\n\\ttext-align: center;\\n\\t\\n\\t.\" + sc('main-text') + \" {\\n\\t\\tmargin-bottom: \" + t.font.baseSize + \"px;\\n\\t}\\n\\t\"; });\nvar sc = currySC(styleClass);\nexport var RememberSocialStep = function (_a) {\n var t = _a.t, proceed = _a.proceed, socialType = _a.socialType;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"h2\", null, t(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"remember switch to social title\"], [\"remember switch to social title\"])))),\n React.createElement(\"section\", { className: styleClass },\n React.createElement(\"div\", { className: sc('main-text'), dangerouslySetInnerHTML: {\n __html: t(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"remember social account html\"], [\"remember social account html\"]))),\n } }),\n React.createElement(\"div\", { className: sc('main-text') }, t(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"social login type associated\"], [\"social login type associated\"]))),\n \":\",\n socialType),\n React.createElement(Button, { label: t(templateObject_4 || (templateObject_4 = __makeTemplateObject([\"proceed\"], [\"proceed\"]))), onClick: function () { return proceed(); } }))));\n};\nvar templateObject_1, templateObject_2, templateObject_3, templateObject_4;\n//# sourceMappingURL=RememberSocialStep.js.map","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React from 'react';\nimport { registerClass, cns, currySC } from '@food/css-manager';\nimport { Button } from '@food/ui/build/dist/src/Button';\nimport { footer } from '../utils/theme';\nvar style = registerClass(function (theme, sc) { return \"\\n\\t.\" + sc('value') + \" {\\n\\t\\tfont-weight: \" + theme.font.weights.bold + \";\\n\\t}\\n\\t\\n\\t.\" + sc('spaced-top') + \" {\\n\\t\\tmargin-top: \" + theme.ratios.l * theme.font.baseSize + \"px;\\n\\t}\\n\"; });\nvar sc = currySC(style);\nexport var VerifyLinkExpired = function (_a) {\n var t = _a.t, isModal = _a.isModal, proceed = _a.proceed, supportEmail = _a.supportEmail;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"h2\", null, t(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"Token expired\"], [\"Token expired\"])))),\n React.createElement(\"section\", { className: style }, t(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"The activation link is expired\"], [\"The activation link is expired\"]))),\n React.createElement(\"div\", { className: sc('spaced-top') }, t(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"If you think we're wrong please\"], [\"If you think we're wrong please\"]))),\n ' ',\n React.createElement(\"a\", { href: \"mailto:\" + supportEmail }, t(templateObject_4 || (templateObject_4 = __makeTemplateObject([\"contact us\"], [\"contact us\"]))))),\n React.createElement(\"div\", { className: cns(footer, sc('centered')) },\n React.createElement(Button, { label: t(isModal ? 'Close' : 'Proceed'), onClick: proceed })))));\n};\nvar templateObject_1, templateObject_2, templateObject_3, templateObject_4;\n//# sourceMappingURL=VerifyLinkExpired.js.map","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React from 'react';\nimport { footer } from '../utils/theme';\nimport { registerClass, subClass } from '@food/css-manager';\nimport { Button } from '@food/ui/build/dist/src/Button';\nvar style = registerClass(function (theme, sc) { return \"\\n\\tpadding-top: \" + theme.ratios.l * theme.font.baseSize + \"px;\\n\\tpadding-bottom: \" + theme.ratios.l * theme.font.baseSize + \"px;\\n\\t\\n\\t.\" + sc('role') + \" {\\n\\t\\tmargin-top: \" + theme.ratios.s * theme.font.baseSize + \"px;\\n\\t}\\n\"; });\n/**\n * Componente utilizzato per mostrare un messaggio all'utente consumer che desidera fare l'upgrade di ruolo\n */\nexport var ChooseUpgradeRole = function (_a) {\n var t = _a.t, upgrade = _a.upgrade, close = _a.close;\n var intro = t('upgrade role introduction html');\n return (React.createElement(React.Fragment, null,\n React.createElement(\"h2\", null, t(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"Upgrade role\"], [\"Upgrade role\"])))),\n React.createElement(\"section\", { className: style },\n intro !== '' && (React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: intro } })),\n React.createElement(Button, { label: t(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"Upgrade to Professional\"], [\"Upgrade to Professional\"]))), onClick: upgrade, block: true, className: subClass(style, 'role'), type: 'success' }),\n React.createElement(\"div\", { className: footer },\n React.createElement(Button, { label: t(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"Close\"], [\"Close\"]))), onClick: function () { return close(); } })))));\n};\nvar templateObject_1, templateObject_2, templateObject_3;\n//# sourceMappingURL=ChooseUpgradeRole.js.map","var __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})();\nimport React from 'react';\nimport { canUseDOM } from 'exenv';\nimport { defaultTheme } from '@food/css-manager';\nvar LayoutHandler = /** @class */ (function (_super) {\n __extends(LayoutHandler, _super);\n function LayoutHandler(props) {\n var _this = _super.call(this, props) || this;\n var layouts = _this.props.layouts;\n var width = canUseDOM\n ? window.innerWidth\n : defaultTheme.breakpoints.mobileMax - 1;\n _this.state = Object.keys(layouts).reduce(function (state, key) {\n state[key] = layouts[key](width);\n return state;\n }, {});\n return _this;\n }\n LayoutHandler.prototype.layoutHandler = function () {\n var _this = this;\n var layouts = this.props.layouts;\n var width = canUseDOM\n ? window.innerWidth\n : defaultTheme.breakpoints.mobileMax - 1;\n var possibleChanges = {};\n if (!layouts) {\n return;\n }\n Object.keys(layouts).forEach(function (key) {\n possibleChanges[key] = layouts[key](width);\n });\n var changesKeys = Object.keys(possibleChanges).filter(function (key) { return possibleChanges[key] !== _this.state[key]; });\n if (changesKeys.length !== 0) {\n var changes = changesKeys.reduce(function (prev, key) {\n prev[key] = possibleChanges[key];\n return prev;\n }, {});\n this.setState(changes);\n }\n };\n LayoutHandler.prototype.componentDidMount = function () {\n var _this = this;\n if (canUseDOM) {\n this.windowListener = window.addEventListener('resize', function () {\n return _this.layoutHandler();\n });\n }\n };\n LayoutHandler.prototype.componentWillUnmount = function () {\n if (canUseDOM) {\n removeEventListener('resize', this.windowListener);\n }\n };\n LayoutHandler.prototype.render = function () {\n var children = this.props.children;\n return children(this.state);\n };\n return LayoutHandler;\n}(React.Component));\nexport { LayoutHandler };\n//# sourceMappingURL=LayoutHandler.js.map","import React from 'react';\n//@ts-ignore\nimport { parse } from 'query-string';\nimport { LayoutHandler } from '@food/ui/build/dist/src/LayoutHandler';\nimport { socialLoginFactory, socialLoginLayoutChooser, } from './SocialLogin';\nimport { isLogged } from '../index';\nimport { useLocation } from 'react-router-dom';\nexport var Login = function (_a) {\n var t = _a.t, container = _a.container, onRedirect = _a.onRedirect, authManager = _a.authManager, config = _a.config, tokens = _a.tokens;\n var SocialLogin = React.useMemo(function () { return socialLoginFactory(t); }, [t]);\n var Container = React.useMemo(function () { return container || (function (_a) {\n var children = _a.children;\n return children;\n }); }, [container]);\n var location = useLocation();\n var redirectUrl = parse(location.search).redirect || config.DEFAULT_LOGGED_ROUTE || '/';\n var params = parse(location.search);\n var traditional = params.traditional, social = params.social, upgraderole = params.upgraderole;\n if (isLogged() &&\n !upgraderole &&\n !tokens.workEmailVerifyToken &&\n !tokens.sfContactId) {\n onRedirect({}, redirectUrl);\n return null;\n }\n return (React.createElement(Container, null,\n React.createElement(LayoutHandler, { layouts: { main: socialLoginLayoutChooser } }, function (layouts) { return (React.createElement(SocialLogin, { tokens: tokens, layout: layouts.main, isModal: false, authManager: authManager, logo: config.LOGO, config: config, startTraditional: (!!traditional || config.LOGIN_START_TRADITIONAL) &&\n !social, instantUpgradeRole: upgraderole })); })));\n};\n//# sourceMappingURL=Login.js.map","import React from 'react';\nimport { Redirect } from 'react-router-dom';\nimport { logout } from '../logic/auth';\nexport var Logout = function () {\n logout();\n return React.createElement(Redirect, { to: '/login' });\n};\n//# sourceMappingURL=Logout.js.map","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nimport React from 'react';\nimport { Redirect, Route } from 'react-router-dom';\n//@ts-ignore\nimport { parse } from 'query-string';\nexport var SocialRedirect = function (_a) {\n var t = _a.t;\n return (React.createElement(Route, null, function (_a) {\n var search = _a.location.search;\n return parse(search).error ? (React.createElement(Redirect, { to: '/login' })) : (React.createElement(\"section\", null, t(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"Success! Wait for redirect\"], [\"Success! Wait for redirect\"])))));\n }));\n};\nvar templateObject_1;\n//# sourceMappingURL=SocialRedirect.js.map","var renewModal = null;\nfunction setRenewModal(modal) {\n renewModal = modal;\n}\n// function clearRenewModal() {\n// \trenewModal = null;\n// }\nvar openRenewModal = function (args) {\n if (args === void 0) { args = {}; }\n return renewModal !== null ? renewModal.open(args) : Promise.reject();\n};\nexport { setRenewModal, /*clearRenewModal,*/ openRenewModal };\n//# sourceMappingURL=renewModal.js.map","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport React, { useEffect, useRef } from 'react';\nimport { Portal } from 'react-portal';\nimport { registerClass, cns, getContext, defaultTheme, currySC } from '@food/css-manager';\nimport { LayoutHandler } from './LayoutHandler';\nexport var ModalLayouts;\n(function (ModalLayouts) {\n ModalLayouts[\"Full\"] = \"Full\";\n ModalLayouts[\"Compact\"] = \"Compact\";\n})(ModalLayouts || (ModalLayouts = {}));\nvar layoutChooser = function (width) {\n if (width > defaultTheme.breakpoints.mobileMax) {\n return ModalLayouts.Full;\n }\n else {\n return ModalLayouts.Compact;\n }\n};\n// il contatore di modal aperte all'interno di una stessa applicazione\nvar counter = 0;\nvar styleClass = registerClass(function (t, sc) { return \"\\n\\toverflow-y: auto;\\n\\tmax-height: 100vh;\\n\\tposition: fixed;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tright: 0;\\n\\tbottom: 0;\\n\\tz-index: \" + (t.zIndexes.P4_Modal - 1) + \";\\n\\n\\t.\" + sc('background') + \" {\\n\\t\\tbackground-color: rgba(0, 0, 0, \" + t.dimmerOpacity + \");\\n\\t\\tmin-height: 100vh;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tpadding: \" + t.ratios.xl * 2 * t.font.baseSize + \"px;\\n\\t\\tjustify-content: center;\\n\\t\\tanimation-name: fadeIn;\\n\\t\\tanimation-duration: \" + t.timings.base / 1000 + \"s;\\n\\t\\tanimation-fill-mode: both\\n\\t\\t\\n\\t\\t@keyframes fadeIn {\\n\\t\\t\\n\\t\\t\\tfrom {\\n\\t\\t\\t\\topacity: 0;\\n\\t\\t\\t}\\n\\t\\t\\t\\n\\t\\t\\tto {\\n\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t.\" + sc('body') + \" {\\n\\t\\twidth: 90%; // Lascia un minimo di bordo\\n\\t\\tmax-width: 900px; // FIXME\\n\\t\\tbackground-color: \" + t.colors.white + \";\\n\\t\\tbox-shadow: \" + t.boxShadow(2) + \";\\n\\t\\toverflow: visible;\\n\\t\\tz-index: \" + t.zIndexes.P4_Modal + \";\\n\\t\\tposition: relative;\\n\\n\\t\\tp,\\n\\t\\tul,\\n\\t\\tol {\\n\\t\\t\\tmargin-bottom: \" + (t.ratios.xl / 2) * t.font.baseSize + \"px;\\n\\t\\t\\t&:last-child {\\n\\t\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\n\\t\\tul,\\n\\t\\tol {\\n\\t\\t\\tlist-style: disc;\\n\\t\\t\\tpadding-left: 1em;\\n\\n\\t\\t\\tli {\\n\\t\\t\\t\\tmargin-bottom: \" + (t.ratios.s / 2) * t.font.baseSize + \"px;\\n\\n\\t\\t\\t\\t&:last-child {\\n\\t\\t\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\tol {\\n\\t\\t\\tlist-style: decimal;\\n\\t\\t}\\n\\t}\\n\\t\\n\\t&.\" + sc('layout', ModalLayouts.Compact) + \" {\\n\\t\\t\\n\\t\\t.\" + sc('background') + \" {\\n\\t\\t\\tpadding: \" + t.font.baseSize + \"px;\\n\\t\\t}\\n\\t\\t\\n\\t\\t.\" + sc('body') + \" {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tmax-width: unset;\\n\\t\\t}\\n\\t}\\n\"; }, false);\nvar sc = currySC(styleClass);\nexport var Modal = function (_a) {\n var open = _a.open, className = _a.className, children = _a.children, zIndex = _a.zIndex, closeHandler = _a.closeHandler;\n var backgroundRef = useRef();\n useEffect(function () {\n if (open) {\n counter += 1;\n document.body.style.overflowY = 'hidden';\n }\n else {\n var oldCounter = counter;\n counter = Math.max(counter - 1, 0);\n if (oldCounter !== 0 && counter === 0) {\n // il contatore a 0 significa che nessuna modal e' aperta nell'applicazione, quindi devo riattivare lo scroll del body\n document.body.style.overflowY = 'auto';\n }\n }\n }, [open]);\n if (!open) {\n return null;\n }\n return (React.createElement(Portal, null,\n React.createElement(LayoutHandler, { layouts: { layout: layoutChooser } }, function (_a) {\n var _b;\n var layout = _a.layout;\n return (React.createElement(\"div\", { className: cns.apply(void 0, __spreadArrays([styleClass,\n className], (((_b = getContext()) === null || _b === void 0 ? void 0 : _b.portalClasses) || []), [sc('layout', layout)])), style: { zIndex: zIndex } },\n React.createElement(\"div\", { className: sc('background'), ref: backgroundRef, onClick: function (evt) {\n if (evt.target === backgroundRef.current &&\n closeHandler) {\n closeHandler();\n }\n } },\n React.createElement(\"div\", { className: sc('body') }, children({ layout: layout, counter: counter })))));\n })));\n};\n//# sourceMappingURL=Modal2.js.map","//@ts-ignore\nimport { parse } from 'query-string';\nexport var BaseTokenEnum;\n(function (BaseTokenEnum) {\n BaseTokenEnum[\"sfContactId\"] = \"sfContactId\";\n BaseTokenEnum[\"workEmailRoleToken\"] = \"workEmailRoleToken\";\n BaseTokenEnum[\"workEmailVerifyToken\"] = \"workEmailVerifyToken\";\n BaseTokenEnum[\"authToken\"] = \"authToken\";\n BaseTokenEnum[\"userSocialLinkToken\"] = \"userSocialLinkToken\";\n})(BaseTokenEnum || (BaseTokenEnum = {}));\nexport var pickTokensFromSearch = function (locationSearch) {\n var params = parse(locationSearch);\n var tokens = {};\n var possibleTokens = Object.keys(BaseTokenEnum);\n Object.keys(params).forEach(function (paramName) {\n if (possibleTokens.indexOf(paramName) !== -1) {\n tokens[paramName] = params[paramName];\n }\n });\n return tokens;\n};\n//# sourceMappingURL=tokens.js.map","var __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};\nimport React, { Component } from 'react';\nimport { SOCIAL_LOGIN_LAYOUTS, socialLoginFactory, } from './SocialLogin';\nimport { setRenewModal } from '../utils/renewModal';\nimport { Icon } from '@food/ui/build/dist/src/icons';\nimport { Modal, ModalLayouts } from '@food/ui/build/dist/src/Modal2';\nimport { registerClass } from '@food/css-manager';\nimport { track } from '@food/tracking';\nimport { isRenew } from '../utils/misc';\nimport { getLoginType, logout } from '../logic/auth';\nimport { authTrackOverride } from '../utils/track';\nimport { event } from 'react-ga';\nvar modalCloseIcon = registerClass(function (t) { return \"\\n\\tz-index: \" + t.zIndexes.P5_TopModal + \";\\n\\tposition: absolute;\\n\\ttop: \" + t.ratios.s + \"em;\\n\\tright: \" + t.ratios.s + \"em;\\n\\tcolor: \" + t.colors.ink + \";\\n\\ttext-decoration: none;\\n\"; });\nvar RenewModal = /** @class */ (function (_super) {\n __extends(RenewModal, _super);\n function RenewModal(props) {\n var _this = _super.call(this, props) || this;\n _this.open = function (openArgs) {\n // avviso analytics che la modale si e' aperta\n event({\n category: 'User',\n action: 'Open sign in popup',\n });\n track(__assign(__assign({}, authTrackOverride), { action: { type: 'auth_modal_toggle', open: true } }));\n if (_this.state.open === false) {\n _this.setState({ open: true, openArgs: openArgs });\n }\n // il catch vuoto serve per sovrascrivere l'handler di default di js, il quale restituisce un errore\n // che verrebbe poi segnalato a sentry, inutilmente\n if (_this.loginPromise === null) {\n _this.loginPromise = new Promise(function (resolve, reject) { return (_this.fakeDeferred = { resolve: resolve, reject: reject }); });\n _this.loginPromise.catch(function () { });\n }\n return _this.loginPromise;\n };\n // questo metodo contiene una buona parte delle bad practices possibili con React\n _this.close = function () {\n var onClose = _this.props.onClose;\n var openArgs = _this.state.openArgs;\n var wasUpdate = !!((openArgs === null || openArgs === void 0 ? void 0 : openArgs.upgradeRole) || (openArgs === null || openArgs === void 0 ? void 0 : openArgs.instantUpgradeRole));\n track(__assign(__assign({}, authTrackOverride), { action: { type: 'auth_modal_toggle', open: false } }));\n if (onClose) {\n onClose(wasUpdate);\n }\n _this.setState({ open: false });\n };\n // questo metodo viene usato quando si clicca la \"x\" in modali di accesso o di rinnovo\n _this.failedCloseHandler = function () {\n var _a;\n if (_this.loginPromise) {\n var error = new Error('Renew chiuso / errato');\n track(__assign(__assign({}, authTrackOverride), { type: 'auth_aborted' }));\n (_a = _this.fakeDeferred) === null || _a === void 0 ? void 0 : _a.reject(error);\n }\n _this.loginPromise = null;\n if (isRenew()) {\n logout();\n }\n _this.close();\n };\n // questo metodo invece serve, al contrario di quello precedente, nel caso di chiusure quando si propone\n // un upgrade ai consumer\n _this.upgradeCloseHandler = function () {\n _this.close();\n };\n _this.successfulLoginHandler = function () {\n var _a;\n (_a = _this.fakeDeferred) === null || _a === void 0 ? void 0 : _a.resolve(true);\n _this.loginPromise = null;\n _this.close();\n };\n var t = props.t;\n _this.state = { open: false };\n _this.loginPromise = null;\n _this.SocialLogin = socialLoginFactory(t);\n setRenewModal(_this);\n return _this;\n }\n RenewModal.prototype.render = function () {\n var _this = this;\n var _a = this.state, open = _a.open, _b = _a.openArgs, openArgs = _b === void 0 ? {} : _b;\n var _c = this.props, config = _c.config, authManager = _c.authManager, logo = _c.logo, tokens = _c.tokens;\n var fixedSocial = openArgs.fixedSocial, customComponent = openArgs.customComponent, upgradeRole = openArgs.upgradeRole, instantUpgradeRole = openArgs.instantUpgradeRole, redirectOnLogin = openArgs.redirectOnLogin, startTraditional = openArgs.startTraditional;\n var closer = openArgs.upgradeRole || openArgs.instantUpgradeRole\n ? this.upgradeCloseHandler\n : this.failedCloseHandler;\n return (React.createElement(Modal, { open: open }, function (_a) {\n var layout = _a.layout;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"a\", { href: \"javascript:void(0)\", onClick: closer },\n React.createElement(\"span\", { className: modalCloseIcon },\n React.createElement(Icon, { name: 'close' }))),\n React.createElement(_this.SocialLogin, { authManager: authManager, onSuccess: _this.successfulLoginHandler, onClose: closer, tokens: tokens, isModal: true, config: config, logo: logo || config.LOGO, layout: layout === ModalLayouts.Compact\n ? SOCIAL_LOGIN_LAYOUTS.COMPACT\n : SOCIAL_LOGIN_LAYOUTS.STANDARD, \n // parametri relativi alla singola apertura della modal\n fixedSocial: fixedSocial, customComponent: customComponent, upgradeRole: upgradeRole, instantUpgradeRole: instantUpgradeRole, forcedRenewAuthType: getLoginType(), startTraditional: startTraditional, redirectOnLogin: redirectOnLogin })));\n }));\n };\n return RenewModal;\n}(Component));\nexport { RenewModal };\n//# sourceMappingURL=RenewModal.js.map","import React from 'react';\nimport { Switch, Route } from 'react-router-dom';\nimport { Login } from './Login';\nimport { Logout } from './Logout';\nimport { SocialRedirect } from './SocialRedirect';\nimport { RenewModal } from './RenewModal';\nimport { useLocation } from 'react-router-dom';\nimport { pickTokensFromSearch } from '../logic/tokens';\nexport var AuthRoutes = function (_a) {\n var children = _a.children, config = _a.config, authManager = _a.authManager, t = _a.t, container = _a.container, onRedirect = _a.onRedirect, onRenewClose = _a.onRenewClose;\n var location = useLocation();\n var tokens = pickTokensFromSearch(location.search);\n return (React.createElement(React.Fragment, null,\n React.createElement(RenewModal, { authManager: authManager, isModal: true, config: config, t: t, tokens: tokens, onClose: onRenewClose }),\n React.createElement(Switch, null,\n React.createElement(Route, { path: \"/oauth2callback\", exact: true, component: function () { return React.createElement(SocialRedirect, { t: t }); } }),\n React.createElement(Route, { path: \"/login\", exact: true, component: function () { return (React.createElement(Login, { config: config, authManager: authManager, t: t, container: container, onRedirect: onRedirect, tokens: tokens })); } }),\n React.createElement(Route, { path: '/logout', exact: true, component: Logout }),\n children)));\n};\n//# sourceMappingURL=AuthRoutes.js.map","var __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};\nimport { ApolloLink } from 'apollo-link';\nimport { mergeConfig } from '../logic/config';\nimport { getValidToken } from '../logic/auth';\nexport var targetSiteLink = function (config) {\n var c = mergeConfig(config);\n return /** @class */ (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n class_1.prototype.request = function (operation, forward) {\n var additionalHeaders = {\n 'X-Target-Site': c.TARGET_SITE,\n };\n var token = getValidToken();\n if (token) {\n additionalHeaders.authorization = token;\n }\n operation.setContext(function (context) { return (__assign(__assign({}, context), { headers: __assign(__assign({}, context.headers), additionalHeaders) })); });\n return forward(operation);\n };\n return class_1;\n }(ApolloLink));\n};\n//# sourceMappingURL=targetSiteLink.js.map","var __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};\nimport { ApolloLink, Observable, } from 'apollo-link';\nimport { openRenewModal } from '../utils/renewModal';\nimport { getValidToken } from '../logic/auth';\nimport { track } from '@food/tracking';\nimport { authTrackOverride } from '../utils/track';\nexport var RenewLink = function (auth) {\n return /** @class */ (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n class_1.prototype.request = function (operation, forward) {\n var observableResult = forward(operation);\n return new Observable(function (observer) {\n observableResult.subscribe({\n next: function (x) {\n var response = operation.getContext().response;\n var newToken = response.headers.get('authorization');\n if (newToken) {\n auth.setAuthToken(newToken);\n }\n observer.next(x);\n },\n complete: function () {\n observer.complete();\n },\n error: function (err) {\n // intercetto gli errori per mancata / scaduta autenticazione\n if (err.response && err.response.status === 401) {\n track(__assign(__assign({}, authTrackOverride), { action: { type: 'auth_expired' } }));\n try {\n openRenewModal({}).then(function (loginResult) {\n if (loginResult) {\n operation.setContext(function (context) { return (__assign(__assign({}, context), { headers: __assign(__assign({}, context.headers), { authorization: getValidToken() }) })); });\n forward(operation).subscribe({\n next: function (x) {\n observer.next(x);\n },\n complete: function () {\n observer.complete();\n },\n error: function (e) {\n observer.error(e);\n },\n });\n }\n }, function (asd) {\n observer.error(asd);\n });\n }\n catch (e) {\n observer.error(e);\n }\n }\n else {\n observer.error(err);\n }\n },\n });\n });\n };\n return class_1;\n }(ApolloLink));\n};\n//# sourceMappingURL=RenewLink.js.map","import React from 'react';\nexport var loggedContext = React.createContext(null);\n//# sourceMappingURL=loggedContext.js.map","var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport React, { useContext } from 'react';\nimport gql from 'graphql-tag';\nimport { Query } from 'react-apollo';\nimport { loggedContext } from '../utils/loggedContext';\nimport { UserRole, } from '../server-types';\nvar userInfoQuery = gql(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n\\tquery UserDataQuery {\\n\\t\\tcurrentUser {\\n\\t\\t\\tid\\n\\t\\t\\tlocalId\\n\\t\\t\\tfirstName\\n\\t\\t\\tlastName\\n\\t\\t\\tlangCode\\n\\t\\t\\tname\\n\\t\\t\\temail\\n\\t\\t\\tworkEmail\\n\\t\\t\\trole\\n\\t\\t\\tstatus\\n\\t\\t\\tinternalCapabilities\\n\\t\\t\\tsocialType\\n\\t\\t\\tmanagedByUsers {\\n\\t\\t\\t\\tid\\n\\t\\t\\t\\tcapabilities\\n\\t\\t\\t\\tCompany {\\n\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\tname\\n\\t\\t\\t\\t\\tbillingBranch {\\n\\t\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\t\\tCountry {\\n\\t\\t\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\t\\t\\tcode\\n\\t\\t\\t\\t\\t\\t\\tname\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tRetailer {\\n\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\tname\\n\\t\\t\\t\\t\\tCountry {\\n\\t\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\t\\tcode\\n\\t\\t\\t\\t\\t\\tname\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tCompanyGroup {\\n\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\tname\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tService {\\n\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\tname\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tGeoIndication {\\n\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\tname\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\"], [\"\\n\\tquery UserDataQuery {\\n\\t\\tcurrentUser {\\n\\t\\t\\tid\\n\\t\\t\\tlocalId\\n\\t\\t\\tfirstName\\n\\t\\t\\tlastName\\n\\t\\t\\tlangCode\\n\\t\\t\\tname\\n\\t\\t\\temail\\n\\t\\t\\tworkEmail\\n\\t\\t\\trole\\n\\t\\t\\tstatus\\n\\t\\t\\tinternalCapabilities\\n\\t\\t\\tsocialType\\n\\t\\t\\tmanagedByUsers {\\n\\t\\t\\t\\tid\\n\\t\\t\\t\\tcapabilities\\n\\t\\t\\t\\tCompany {\\n\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\tname\\n\\t\\t\\t\\t\\tbillingBranch {\\n\\t\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\t\\tCountry {\\n\\t\\t\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\t\\t\\tcode\\n\\t\\t\\t\\t\\t\\t\\tname\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tRetailer {\\n\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\tname\\n\\t\\t\\t\\t\\tCountry {\\n\\t\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\t\\tcode\\n\\t\\t\\t\\t\\t\\tname\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tCompanyGroup {\\n\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\tname\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tService {\\n\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\tname\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tGeoIndication {\\n\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\tname\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\"])));\nfunction isItalian(company) {\n return (company &&\n company.billingBranch &&\n company.billingBranch.Country &&\n company.billingBranch.Country.code === 'IT');\n}\nexport var UserData = function (_a) {\n var children = _a.children;\n var userKey = useContext(loggedContext);\n var notLogged = !userKey;\n return (React.createElement(Query, { query: userInfoQuery, errorPolicy: 'all', skip: notLogged }, function (_a) {\n /**\n * NOTA BENE: la politica di gestione degli errori e' assente in quanto\n * un errore viene comunque considerato \"utente non loggato\"\n */\n var _b;\n var loading = _a.loading, data = _a.data;\n var currentUser = data && data.currentUser;\n var internalCapabilities = !data || !currentUser ? [] : currentUser.internalCapabilities;\n var managed = (data && ((_b = currentUser === null || currentUser === void 0 ? void 0 : currentUser.managedByUsers) === null || _b === void 0 ? void 0 : _b.filter(function (m) {\n if (m && typeof m == 'object' && 'Company' in m) {\n return !!m.Company;\n }\n return false;\n })[0])) ||\n undefined;\n var managedCapabilities = managed ? managed.capabilities : [];\n var capabilities = __spreadArrays(internalCapabilities, managedCapabilities);\n var props = {\n loading: loading,\n isLogged: !loading && !!data && !!currentUser,\n userData: currentUser,\n userIsBuyer: data && currentUser && currentUser.role === UserRole.Buyer,\n userHasCapability: function (capability) { return capabilities.includes(capability); },\n capabilities: capabilities,\n isInternal: currentUser && currentUser.role === UserRole.Internal,\n managedCompany: managed,\n managedCompanyIsItalian: (managed && isItalian(managed.Company)) || undefined,\n };\n return children(props);\n }));\n};\nvar templateObject_1;\n//# sourceMappingURL=UserData.js.map","import React, { useEffect, useState } from 'react';\nimport { Channel } from '@food/sync';\nimport { loggedContext } from '../utils/loggedContext';\nimport { getValidToken } from '../logic/auth';\nvar Provider = loggedContext.Provider;\nvar localListener = new Channel('@food/auth');\nexport var AuthContext = function (_a) {\n var children = _a.children;\n var _b = useState(getValidToken()), userKey = _b[0], setUserKey = _b[1];\n useEffect(function () {\n localListener.onmessage = function (ev) {\n var data = ev.data;\n if (data.type === 'USER_CHANGED' && data.args && data.args.newUser) {\n if (data.args.newUser) {\n setUserKey(getValidToken());\n }\n else {\n setUserKey(null);\n }\n }\n };\n });\n return React.createElement(Provider, { value: userKey }, children);\n};\n//# sourceMappingURL=AuthContext.js.map","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport nodejsCustomInspectSymbol from './nodejsCustomInspectSymbol';\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","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import isObjectLike from '../jsutils/isObjectLike';\nimport { getLocation } from '../language/location';\nimport { printLocation, printSourceLocation } from '../language/printLocation';\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 function GraphQLError( // eslint-disable-line no-redeclare\nmessage, nodes, source, positions, path, originalError, extensions) {\n // Compute list of blame nodes.\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 node = _nodes[0];\n _source = node && node.loc && node.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(this, {\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 falsey values to undefined ensures they will not be included\n // in JSON.stringify() when not provided.\n value: _locations || 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: Boolean(_locations)\n },\n path: {\n // Coercing falsey values to undefined ensures they will not be included\n // in JSON.stringify() when not provided.\n value: 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: Boolean(path)\n },\n nodes: {\n value: _nodes || undefined\n },\n source: {\n value: _source || undefined\n },\n positions: {\n value: _positions || undefined\n },\n originalError: {\n value: originalError\n },\n extensions: {\n // Coercing falsey values to undefined ensures they will not be included\n // in JSON.stringify() when not provided.\n value: _extensions || 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: Boolean(_extensions)\n }\n }); // Include (non-enumerable) stack trace.\n\n if (originalError && originalError.stack) {\n Object.defineProperty(this, 'stack', {\n value: originalError.stack,\n writable: true,\n configurable: true\n });\n } else if (Error.captureStackTrace) {\n Error.captureStackTrace(this, GraphQLError);\n } else {\n Object.defineProperty(this, 'stack', {\n value: Error().stack,\n writable: true,\n configurable: true\n });\n }\n}\nGraphQLError.prototype = Object.create(Error.prototype, {\n constructor: {\n value: GraphQLError\n },\n name: {\n value: 'GraphQLError'\n },\n toString: {\n value: function toString() {\n return printError(this);\n }\n }\n});\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","/**\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 requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","module.exports = require(\"regenerator-runtime\");\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ReactCSS = exports.loop = exports.handleActive = exports.handleHover = exports.hover = undefined;\n\nvar _flattenNames = require('./flattenNames');\n\nvar _flattenNames2 = _interopRequireDefault(_flattenNames);\n\nvar _mergeClasses = require('./mergeClasses');\n\nvar _mergeClasses2 = _interopRequireDefault(_mergeClasses);\n\nvar _autoprefix = require('./autoprefix');\n\nvar _autoprefix2 = _interopRequireDefault(_autoprefix);\n\nvar _hover2 = require('./components/hover');\n\nvar _hover3 = _interopRequireDefault(_hover2);\n\nvar _active = require('./components/active');\n\nvar _active2 = _interopRequireDefault(_active);\n\nvar _loop2 = require('./loop');\n\nvar _loop3 = _interopRequireDefault(_loop2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.hover = _hover3.default;\nexports.handleHover = _hover3.default;\nexports.handleActive = _active2.default;\nexports.loop = _loop3.default;\nvar ReactCSS = exports.ReactCSS = function ReactCSS(classes) {\n for (var _len = arguments.length, activations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n activations[_key - 1] = arguments[_key];\n }\n\n var activeNames = (0, _flattenNames2.default)(activations);\n var merged = (0, _mergeClasses2.default)(classes, activeNames);\n return (0, _autoprefix2.default)(merged);\n};\n\nexports.default = ReactCSS;","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 {\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","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","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}","export default class CharacterStream {\n constructor(sourceText) {\n this.getStartOfToken = () => this._start;\n this.getCurrentPosition = () => this._pos;\n this.eol = () => this._sourceText.length === this._pos;\n this.sol = () => this._pos === 0;\n this.peek = () => {\n return this._sourceText.charAt(this._pos)\n ? this._sourceText.charAt(this._pos)\n : null;\n };\n this.next = () => {\n const char = this._sourceText.charAt(this._pos);\n this._pos++;\n return char;\n };\n this.eat = (pattern) => {\n const isMatched = this._testNextCharacter(pattern);\n if (isMatched) {\n this._start = this._pos;\n this._pos++;\n return this._sourceText.charAt(this._pos - 1);\n }\n return undefined;\n };\n this.eatWhile = (match) => {\n let isMatched = this._testNextCharacter(match);\n let didEat = false;\n if (isMatched) {\n didEat = isMatched;\n this._start = this._pos;\n }\n while (isMatched) {\n this._pos++;\n isMatched = this._testNextCharacter(match);\n didEat = true;\n }\n return didEat;\n };\n this.eatSpace = () => this.eatWhile(/[\\s\\u00a0]/);\n this.skipToEnd = () => {\n this._pos = this._sourceText.length;\n };\n this.skipTo = (position) => {\n this._pos = position;\n };\n this.match = (pattern, consume = true, caseFold = false) => {\n let token = null;\n let match = null;\n if (typeof pattern === 'string') {\n const regex = new RegExp(pattern, caseFold ? 'i' : 'g');\n match = regex.test(this._sourceText.substr(this._pos, pattern.length));\n token = pattern;\n }\n else if (pattern instanceof RegExp) {\n match = this._sourceText.slice(this._pos).match(pattern);\n token = match && match[0];\n }\n if (match != null) {\n if (typeof pattern === 'string' ||\n (match instanceof Array &&\n this._sourceText.startsWith(match[0], this._pos))) {\n if (consume) {\n this._start = this._pos;\n if (token && token.length) {\n this._pos += token.length;\n }\n }\n return match;\n }\n }\n return false;\n };\n this.backUp = (num) => {\n this._pos -= num;\n };\n this.column = () => this._pos;\n this.indentation = () => {\n const match = this._sourceText.match(/\\s*/);\n let indent = 0;\n if (match && match.length === 0) {\n const whitespaces = match[0];\n let pos = 0;\n while (whitespaces.length > pos) {\n if (whitespaces.charCodeAt(pos) === 9) {\n indent += 2;\n }\n else {\n indent++;\n }\n pos++;\n }\n }\n return indent;\n };\n this.current = () => this._sourceText.slice(this._start, this._pos);\n this._start = 0;\n this._pos = 0;\n this._sourceText = sourceText;\n }\n _testNextCharacter(pattern) {\n const character = this._sourceText.charAt(this._pos);\n let isMatched = false;\n if (typeof pattern === 'string') {\n isMatched = character === pattern;\n }\n else {\n isMatched =\n pattern instanceof RegExp\n ? pattern.test(character)\n : pattern(character);\n }\n return isMatched;\n }\n}\n//# sourceMappingURL=CharacterStream.js.map","export function opt(ofRule) {\n return { ofRule };\n}\nexport function list(ofRule, separator) {\n return { ofRule, isList: true, separator };\n}\nexport function butNot(rule, exclusions) {\n const ruleMatch = rule.match;\n rule.match = token => {\n let check = false;\n if (ruleMatch) {\n check = ruleMatch(token);\n }\n return (check &&\n exclusions.every(exclusion => exclusion.match && !exclusion.match(token)));\n };\n return rule;\n}\nexport function t(kind, style) {\n return { style, match: (token) => token.kind === kind };\n}\nexport function p(value, style) {\n return {\n style: style || 'punctuation',\n match: (token) => token.kind === 'Punctuation' && token.value === value,\n };\n}\n//# sourceMappingURL=RuleHelpers.js.map","import { opt, list, butNot, t, p } from './RuleHelpers';\nexport const isIgnored = (ch) => ch === ' ' ||\n ch === '\\t' ||\n ch === ',' ||\n ch === '\\n' ||\n ch === '\\r' ||\n ch === '\\uFEFF' ||\n ch === '\\u00A0';\nexport const LexRules = {\n Name: /^[_A-Za-z][_0-9A-Za-z]*/,\n Punctuation: /^(?:!|\\$|\\(|\\)|\\.\\.\\.|:|=|@|\\[|]|\\{|\\||\\})/,\n Number: /^-?(?:0|(?:[1-9][0-9]*))(?:\\.[0-9]*)?(?:[eE][+-]?[0-9]+)?/,\n String: /^(?:\"\"\"(?:\\\\\"\"\"|[^\"]|\"[^\"]|\"\"[^\"])*(?:\"\"\")?|\"(?:[^\"\\\\]|\\\\(?:\"|\\/|\\\\|b|f|n|r|t|u[0-9a-fA-F]{4}))*\"?)/,\n Comment: /^#.*/,\n};\nexport const ParseRules = {\n Document: [list('Definition')],\n Definition(token) {\n switch (token.value) {\n case '{':\n return 'ShortQuery';\n case 'query':\n return 'Query';\n case 'mutation':\n return 'Mutation';\n case 'subscription':\n return 'Subscription';\n case 'fragment':\n return 'FragmentDefinition';\n case 'schema':\n return 'SchemaDef';\n case 'scalar':\n return 'ScalarDef';\n case 'type':\n return 'ObjectTypeDef';\n case 'interface':\n return 'InterfaceDef';\n case 'union':\n return 'UnionDef';\n case 'enum':\n return 'EnumDef';\n case 'input':\n return 'InputDef';\n case 'extend':\n return 'ExtendDef';\n case 'directive':\n return 'DirectiveDef';\n }\n },\n ShortQuery: ['SelectionSet'],\n Query: [\n word('query'),\n opt(name('def')),\n opt('VariableDefinitions'),\n list('Directive'),\n 'SelectionSet',\n ],\n Mutation: [\n word('mutation'),\n opt(name('def')),\n opt('VariableDefinitions'),\n list('Directive'),\n 'SelectionSet',\n ],\n Subscription: [\n word('subscription'),\n opt(name('def')),\n opt('VariableDefinitions'),\n list('Directive'),\n 'SelectionSet',\n ],\n VariableDefinitions: [p('('), list('VariableDefinition'), p(')')],\n VariableDefinition: ['Variable', p(':'), 'Type', opt('DefaultValue')],\n Variable: [p('$', 'variable'), name('variable')],\n DefaultValue: [p('='), 'Value'],\n SelectionSet: [p('{'), list('Selection'), p('}')],\n Selection(token, stream) {\n return token.value === '...'\n ? stream.match(/[\\s\\u00a0,]*(on\\b|@|{)/, false)\n ? 'InlineFragment'\n : 'FragmentSpread'\n : stream.match(/[\\s\\u00a0,]*:/, false)\n ? 'AliasedField'\n : 'Field';\n },\n AliasedField: [\n name('property'),\n p(':'),\n name('qualifier'),\n opt('Arguments'),\n list('Directive'),\n opt('SelectionSet'),\n ],\n Field: [\n name('property'),\n opt('Arguments'),\n list('Directive'),\n opt('SelectionSet'),\n ],\n Arguments: [p('('), list('Argument'), p(')')],\n Argument: [name('attribute'), p(':'), 'Value'],\n FragmentSpread: [p('...'), name('def'), list('Directive')],\n InlineFragment: [\n p('...'),\n opt('TypeCondition'),\n list('Directive'),\n 'SelectionSet',\n ],\n FragmentDefinition: [\n word('fragment'),\n opt(butNot(name('def'), [word('on')])),\n 'TypeCondition',\n list('Directive'),\n 'SelectionSet',\n ],\n TypeCondition: [word('on'), 'NamedType'],\n Value(token) {\n switch (token.kind) {\n case 'Number':\n return 'NumberValue';\n case 'String':\n return 'StringValue';\n case 'Punctuation':\n switch (token.value) {\n case '[':\n return 'ListValue';\n case '{':\n return 'ObjectValue';\n case '$':\n return 'Variable';\n }\n return null;\n case 'Name':\n switch (token.value) {\n case 'true':\n case 'false':\n return 'BooleanValue';\n }\n if (token.value === 'null') {\n return 'NullValue';\n }\n return 'EnumValue';\n }\n },\n NumberValue: [t('Number', 'number')],\n StringValue: [t('String', 'string')],\n BooleanValue: [t('Name', 'builtin')],\n NullValue: [t('Name', 'keyword')],\n EnumValue: [name('string-2')],\n ListValue: [p('['), list('Value'), p(']')],\n ObjectValue: [p('{'), list('ObjectField'), p('}')],\n ObjectField: [name('attribute'), p(':'), 'Value'],\n Type(token) {\n return token.value === '[' ? 'ListType' : 'NonNullType';\n },\n ListType: [p('['), 'Type', p(']'), opt(p('!'))],\n NonNullType: ['NamedType', opt(p('!'))],\n NamedType: [type('atom')],\n Directive: [p('@', 'meta'), name('meta'), opt('Arguments')],\n SchemaDef: [\n word('schema'),\n list('Directive'),\n p('{'),\n list('OperationTypeDef'),\n p('}'),\n ],\n OperationTypeDef: [name('keyword'), p(':'), name('atom')],\n ScalarDef: [word('scalar'), name('atom'), list('Directive')],\n ObjectTypeDef: [\n word('type'),\n name('atom'),\n opt('Implements'),\n list('Directive'),\n p('{'),\n list('FieldDef'),\n p('}'),\n ],\n Implements: [word('implements'), list('NamedType')],\n FieldDef: [\n name('property'),\n opt('ArgumentsDef'),\n p(':'),\n 'Type',\n list('Directive'),\n ],\n ArgumentsDef: [p('('), list('InputValueDef'), p(')')],\n InputValueDef: [\n name('attribute'),\n p(':'),\n 'Type',\n opt('DefaultValue'),\n list('Directive'),\n ],\n InterfaceDef: [\n word('interface'),\n name('atom'),\n list('Directive'),\n p('{'),\n list('FieldDef'),\n p('}'),\n ],\n UnionDef: [\n word('union'),\n name('atom'),\n list('Directive'),\n p('='),\n list('UnionMember', p('|')),\n ],\n UnionMember: ['NamedType'],\n EnumDef: [\n word('enum'),\n name('atom'),\n list('Directive'),\n p('{'),\n list('EnumValueDef'),\n p('}'),\n ],\n EnumValueDef: [name('string-2'), list('Directive')],\n InputDef: [\n word('input'),\n name('atom'),\n list('Directive'),\n p('{'),\n list('InputValueDef'),\n p('}'),\n ],\n ExtendDef: [word('extend'), 'ObjectTypeDef'],\n DirectiveDef: [\n word('directive'),\n p('@', 'meta'),\n name('meta'),\n opt('ArgumentsDef'),\n word('on'),\n list('DirectiveLocation', p('|')),\n ],\n DirectiveLocation: [name('string-2')],\n};\nfunction word(value) {\n return {\n style: 'keyword',\n match: (token) => token.kind === 'Name' && token.value === value,\n };\n}\nfunction name(style) {\n return {\n style,\n match: (token) => token.kind === 'Name',\n update(state, token) {\n state.name = token.value;\n },\n };\n}\nfunction type(style) {\n return {\n style,\n match: (token) => token.kind === 'Name',\n update(state, token) {\n if (state.prevState && state.prevState.prevState) {\n state.name = token.value;\n state.prevState.prevState.type = token.value;\n }\n },\n };\n}\n//# sourceMappingURL=Rules.js.map","import { LexRules, ParseRules, isIgnored } from './Rules';\nexport default function onlineParser(options = {\n eatWhitespace: stream => stream.eatWhile(isIgnored),\n lexRules: LexRules,\n parseRules: ParseRules,\n editorConfig: {},\n}) {\n return {\n startState() {\n const initialState = {\n level: 0,\n step: 0,\n name: null,\n kind: null,\n type: null,\n rule: null,\n needsSeperator: false,\n prevState: null,\n };\n pushRule(options.parseRules, initialState, 'Document');\n return initialState;\n },\n token(stream, state) {\n return getToken(stream, state, options);\n },\n };\n}\nfunction getToken(stream, state, options) {\n const { lexRules, parseRules, eatWhitespace, editorConfig } = options;\n if (state.rule && state.rule.length === 0) {\n popRule(state);\n }\n else if (state.needsAdvance) {\n state.needsAdvance = false;\n advanceRule(state, true);\n }\n if (stream.sol()) {\n const tabSize = (editorConfig && editorConfig.tabSize) || 2;\n state.indentLevel = Math.floor(stream.indentation() / tabSize);\n }\n if (eatWhitespace(stream)) {\n return 'ws';\n }\n const token = lex(lexRules, stream);\n if (!token) {\n const matchedSomething = stream.match(/\\S+/);\n if (!matchedSomething) {\n stream.match(/\\s/);\n }\n pushRule(SpecialParseRules, state, 'Invalid');\n return 'invalidchar';\n }\n if (token.kind === 'Comment') {\n pushRule(SpecialParseRules, state, 'Comment');\n return 'comment';\n }\n const backupState = assign({}, state);\n if (token.kind === 'Punctuation') {\n if (/^[{([]/.test(token.value)) {\n if (state.indentLevel !== undefined) {\n state.levels = (state.levels || []).concat(state.indentLevel + 1);\n }\n }\n else if (/^[})\\]]/.test(token.value)) {\n const levels = (state.levels = (state.levels || []).slice(0, -1));\n if (state.indentLevel) {\n if (levels.length > 0 &&\n levels[levels.length - 1] < state.indentLevel) {\n state.indentLevel = levels[levels.length - 1];\n }\n }\n }\n }\n while (state.rule) {\n let expected = typeof state.rule === 'function'\n ? state.step === 0\n ? state.rule(token, stream)\n : null\n : state.rule[state.step];\n if (state.needsSeperator) {\n expected = expected && expected.separator;\n }\n if (expected) {\n if (expected.ofRule) {\n expected = expected.ofRule;\n }\n if (typeof expected === 'string') {\n pushRule(parseRules, state, expected);\n continue;\n }\n if (expected.match && expected.match(token)) {\n if (expected.update) {\n expected.update(state, token);\n }\n if (token.kind === 'Punctuation') {\n advanceRule(state, true);\n }\n else {\n state.needsAdvance = true;\n }\n return expected.style;\n }\n }\n unsuccessful(state);\n }\n assign(state, backupState);\n pushRule(SpecialParseRules, state, 'Invalid');\n return 'invalidchar';\n}\nfunction assign(to, from) {\n const keys = Object.keys(from);\n for (let i = 0; i < keys.length; i++) {\n to[keys[i]] = from[keys[i]];\n }\n return to;\n}\nconst SpecialParseRules = {\n Invalid: [],\n Comment: [],\n};\nfunction pushRule(rules, state, ruleKind) {\n if (!rules[ruleKind]) {\n throw new TypeError('Unknown rule: ' + ruleKind);\n }\n state.prevState = Object.assign({}, state);\n state.kind = ruleKind;\n state.name = null;\n state.type = null;\n state.rule = rules[ruleKind];\n state.step = 0;\n state.needsSeperator = false;\n}\nfunction popRule(state) {\n if (!state.prevState) {\n return;\n }\n state.kind = state.prevState.kind;\n state.name = state.prevState.name;\n state.type = state.prevState.type;\n state.rule = state.prevState.rule;\n state.step = state.prevState.step;\n state.needsSeperator = state.prevState.needsSeperator;\n state.prevState = state.prevState.prevState;\n}\nfunction advanceRule(state, successful) {\n if (isList(state) && state.rule) {\n const step = state.rule[state.step];\n if (step.separator) {\n const separator = step.separator;\n state.needsSeperator = !state.needsSeperator;\n if (!state.needsSeperator && separator.ofRule) {\n return;\n }\n }\n if (successful) {\n return;\n }\n }\n state.needsSeperator = false;\n state.step++;\n while (state.rule &&\n !(Array.isArray(state.rule) && state.step < state.rule.length)) {\n popRule(state);\n if (state.rule) {\n if (isList(state)) {\n if (state.rule && state.rule[state.step].separator) {\n state.needsSeperator = !state.needsSeperator;\n }\n }\n else {\n state.needsSeperator = false;\n state.step++;\n }\n }\n }\n}\nfunction isList(state) {\n const step = Array.isArray(state.rule) &&\n typeof state.rule[state.step] !== 'string' &&\n state.rule[state.step];\n return step && step.isList;\n}\nfunction unsuccessful(state) {\n while (state.rule &&\n !(Array.isArray(state.rule) && state.rule[state.step].ofRule)) {\n popRule(state);\n }\n if (state.rule) {\n advanceRule(state, false);\n }\n}\nfunction lex(lexRules, stream) {\n const kinds = Object.keys(lexRules);\n for (let i = 0; i < kinds.length; i++) {\n const match = stream.match(lexRules[kinds[i]]);\n if (match && match instanceof Array) {\n return { kind: kinds[i], value: match[0] };\n }\n }\n}\n//# sourceMappingURL=onlineParser.js.map","import { Kind } from 'graphql';\nexport const AdditionalRuleKinds = {\n ALIASED_FIELD: 'AliasedField',\n ARGUMENTS: 'Arguments',\n SHORT_QUERY: 'ShortQuery',\n QUERY: 'Query',\n MUTATION: 'Mutation',\n SUBSCRIPTION: 'Subscription',\n TYPE_CONDITION: 'TypeCondition',\n INVALID: 'Invalid',\n COMMENT: 'Comment',\n SCHEMA_DEF: 'SchemaDef',\n SCALAR_DEF: 'ScalarDef',\n OBJECT_TYPE_DEF: 'ObjectTypeDef',\n OBJECT_VALUE: 'ObjectValue',\n LIST_VALUE: 'ListValue',\n INTERFACE_DEF: 'InterfaceDef',\n UNION_DEF: 'UnionDef',\n ENUM_DEF: 'EnumDef',\n ENUM_VALUE: 'EnumValue',\n FIELD_DEF: 'FieldDef',\n INPUT_DEF: 'InputDef',\n INPUT_VALUE_DEF: 'InputValueDef',\n ARGUMENTS_DEF: 'ArgumentsDef',\n EXTEND_DEF: 'ExtendDef',\n DIRECTIVE_DEF: 'DirectiveDef',\n};\nexport const RuleKinds = Object.assign(Object.assign({}, Kind), AdditionalRuleKinds);\n//# sourceMappingURL=types.js.map","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}","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","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 {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const 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.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n 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 sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\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 devAssert(condition, message) {\n var booleanCondition = Boolean(condition);\n\n if (!booleanCondition) {\n throw new Error(message);\n }\n}\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className]);\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false && cache.compat !== undefined) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(\".\" + className, current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles };\n","import '@babel/runtime/helpers/inheritsLoose';\nimport { createContext, forwardRef, createElement } from 'react';\nimport createCache from '@emotion/cache';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar EmotionCacheContext = /*#__PURE__*/createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? createCache() : null);\nvar ThemeContext = /*#__PURE__*/createContext({});\nvar CacheProvider = EmotionCacheContext.Provider;\n\nvar withEmotionCache = function withEmotionCache(func) {\n var render = function render(props, ref) {\n return /*#__PURE__*/createElement(EmotionCacheContext.Consumer, null, function (cache) {\n return func(props, cache, ref);\n });\n }; // $FlowFixMe\n\n\n return /*#__PURE__*/forwardRef(render);\n};\n\n// thus we only need to replace what is a valid character for JS, but not for CSS\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/css' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // TODO: check if this still works with all of those different JSX functions\n\n if (process.env.NODE_ENV !== 'production') {\n var error = new Error();\n\n if (error.stack) {\n // chrome\n var match = error.stack.match(/at (?:Object\\.|Module\\.|)(?:jsx|createEmotionProps).*\\n\\s+at (?:Object\\.|)([A-Z][A-Za-z$]+) /);\n\n if (!match) {\n // safari and firefox\n match = error.stack.match(/.*\\n([A-Z][A-Za-z$]+)@/);\n }\n\n if (match) {\n newProps[labelPropName] = sanitizeIdentifier(match[1]);\n }\n }\n }\n\n return newProps;\n};\n\nvar render = function render(cache, props, theme, ref) {\n var cssProp = theme === null ? props.css : props.css(theme); // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var type = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles);\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n var rules = insertStyles(cache, serialized, typeof type === 'string');\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n var ele = /*#__PURE__*/createElement(type, newProps);\n\n return ele;\n}; // eslint-disable-next-line no-undef\n\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n if (typeof props.css === 'function') {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n return render(cache, props, theme, ref);\n });\n }\n\n return render(cache, props, null, ref);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, createEmotionProps as c, hasOwnProperty as h, withEmotionCache as w };\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport { createElement, Component } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext } from './emotion-element-57a3a7a3.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, w as withEmotionCache } from './emotion-element-57a3a7a3.browser.esm.js';\nimport { insertStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { StyleSheet } from '@emotion/sheet';\nimport css from '@emotion/css';\nexport { default as css } from '@emotion/css';\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false;\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n\n if (typeof styles === 'function') {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n var serialized = serializeStyles([styles(theme)]);\n return /*#__PURE__*/createElement(InnerGlobal, {\n serialized: serialized,\n cache: cache\n });\n });\n }\n\n var serialized = serializeStyles([styles]);\n return /*#__PURE__*/createElement(InnerGlobal, {\n serialized: serialized,\n cache: cache\n });\n});\n\n// maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\nvar InnerGlobal = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InnerGlobal, _React$Component);\n\n function InnerGlobal(props, context, updater) {\n return _React$Component.call(this, props, context, updater) || this;\n }\n\n var _proto = InnerGlobal.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.sheet = new StyleSheet({\n key: this.props.cache.key + \"-global\",\n nonce: this.props.cache.sheet.nonce,\n container: this.props.cache.sheet.container\n }); // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion-\" + this.props.cache.key + \"=\\\"\" + this.props.serialized.name + \"\\\"]\");\n\n if (node !== null) {\n this.sheet.tags.push(node);\n }\n\n if (this.props.cache.sheet.tags.length) {\n this.sheet.before = this.props.cache.sheet.tags[0];\n }\n\n this.insertStyles();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (prevProps.serialized.name !== this.props.serialized.name) {\n this.insertStyles();\n }\n };\n\n _proto.insertStyles = function insertStyles$1() {\n if (this.props.serialized.next !== undefined) {\n // insert keyframes\n insertStyles(this.props.cache, this.props.serialized.next, true);\n }\n\n if (this.sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = this.sheet.tags[this.sheet.tags.length - 1].nextElementSibling;\n this.sheet.before = element;\n this.sheet.flush();\n }\n\n this.props.cache.insert(\"\", this.props.serialized, this.sheet, false);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.sheet.flush();\n };\n\n _proto.render = function render() {\n\n return null;\n };\n\n return InnerGlobal;\n}(Component);\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar ClassNames = withEmotionCache(function (props, context) {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n var hasRendered = false;\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, context.registered);\n\n {\n insertStyles(context, serialized, false);\n }\n\n return context.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(context.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: theme\n };\n var ele = props.children(content);\n hasRendered = true;\n\n return ele;\n });\n});\n\nexport { ClassNames, Global, jsx as createElement, jsx, keyframes };\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}","/**\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","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","import objectValues from '../polyfills/objectValues';\nimport inspect from '../jsutils/inspect';\nimport invariant from '../jsutils/invariant';\nimport { print } from '../language/printer';\nimport { DirectiveLocation } from '../language/directiveLocation';\nimport { astFromValue } from '../utilities/astFromValue';\nimport { GraphQLString, GraphQLBoolean } from './scalars';\nimport { GraphQLObjectType, GraphQLEnumType, GraphQLList, GraphQLNonNull, isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isListType, isNonNullType, isAbstractType, isNamedType } from './definition';\nexport var __Schema = new GraphQLObjectType({\n name: '__Schema',\n description: 'A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.',\n fields: function fields() {\n return {\n types: {\n description: 'A list of all types supported by this server.',\n type: GraphQLNonNull(GraphQLList(GraphQLNonNull(__Type))),\n resolve: function resolve(schema) {\n return objectValues(schema.getTypeMap());\n }\n },\n queryType: {\n description: 'The type that query operations will be rooted at.',\n type: GraphQLNonNull(__Type),\n resolve: function resolve(schema) {\n return schema.getQueryType();\n }\n },\n mutationType: {\n description: 'If this server supports mutation, the type that mutation operations will be rooted at.',\n type: __Type,\n resolve: function resolve(schema) {\n return schema.getMutationType();\n }\n },\n subscriptionType: {\n description: 'If this server support subscription, the type that subscription operations will be rooted at.',\n type: __Type,\n resolve: function resolve(schema) {\n return schema.getSubscriptionType();\n }\n },\n directives: {\n description: 'A list of all directives supported by this server.',\n type: GraphQLNonNull(GraphQLList(GraphQLNonNull(__Directive))),\n resolve: function resolve(schema) {\n return schema.getDirectives();\n }\n }\n };\n }\n});\nexport var __Directive = new GraphQLObjectType({\n name: '__Directive',\n description: \"A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.\\n\\nIn some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.\",\n fields: function fields() {\n return {\n name: {\n type: GraphQLNonNull(GraphQLString),\n resolve: function resolve(obj) {\n return obj.name;\n }\n },\n description: {\n type: GraphQLString,\n resolve: function resolve(obj) {\n return obj.description;\n }\n },\n locations: {\n type: GraphQLNonNull(GraphQLList(GraphQLNonNull(__DirectiveLocation))),\n resolve: function resolve(obj) {\n return obj.locations;\n }\n },\n args: {\n type: GraphQLNonNull(GraphQLList(GraphQLNonNull(__InputValue))),\n resolve: function resolve(directive) {\n return directive.args;\n }\n }\n };\n }\n});\nexport var __DirectiveLocation = new GraphQLEnumType({\n name: '__DirectiveLocation',\n description: 'A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.',\n values: {\n QUERY: {\n value: DirectiveLocation.QUERY,\n description: 'Location adjacent to a query operation.'\n },\n MUTATION: {\n value: DirectiveLocation.MUTATION,\n description: 'Location adjacent to a mutation operation.'\n },\n SUBSCRIPTION: {\n value: DirectiveLocation.SUBSCRIPTION,\n description: 'Location adjacent to a subscription operation.'\n },\n FIELD: {\n value: DirectiveLocation.FIELD,\n description: 'Location adjacent to a field.'\n },\n FRAGMENT_DEFINITION: {\n value: DirectiveLocation.FRAGMENT_DEFINITION,\n description: 'Location adjacent to a fragment definition.'\n },\n FRAGMENT_SPREAD: {\n value: DirectiveLocation.FRAGMENT_SPREAD,\n description: 'Location adjacent to a fragment spread.'\n },\n INLINE_FRAGMENT: {\n value: DirectiveLocation.INLINE_FRAGMENT,\n description: 'Location adjacent to an inline fragment.'\n },\n VARIABLE_DEFINITION: {\n value: DirectiveLocation.VARIABLE_DEFINITION,\n description: 'Location adjacent to a variable definition.'\n },\n SCHEMA: {\n value: DirectiveLocation.SCHEMA,\n description: 'Location adjacent to a schema definition.'\n },\n SCALAR: {\n value: DirectiveLocation.SCALAR,\n description: 'Location adjacent to a scalar definition.'\n },\n OBJECT: {\n value: DirectiveLocation.OBJECT,\n description: 'Location adjacent to an object type definition.'\n },\n FIELD_DEFINITION: {\n value: DirectiveLocation.FIELD_DEFINITION,\n description: 'Location adjacent to a field definition.'\n },\n ARGUMENT_DEFINITION: {\n value: DirectiveLocation.ARGUMENT_DEFINITION,\n description: 'Location adjacent to an argument definition.'\n },\n INTERFACE: {\n value: DirectiveLocation.INTERFACE,\n description: 'Location adjacent to an interface definition.'\n },\n UNION: {\n value: DirectiveLocation.UNION,\n description: 'Location adjacent to a union definition.'\n },\n ENUM: {\n value: DirectiveLocation.ENUM,\n description: 'Location adjacent to an enum definition.'\n },\n ENUM_VALUE: {\n value: DirectiveLocation.ENUM_VALUE,\n description: 'Location adjacent to an enum value definition.'\n },\n INPUT_OBJECT: {\n value: DirectiveLocation.INPUT_OBJECT,\n description: 'Location adjacent to an input object type definition.'\n },\n INPUT_FIELD_DEFINITION: {\n value: DirectiveLocation.INPUT_FIELD_DEFINITION,\n description: 'Location adjacent to an input object field definition.'\n }\n }\n});\nexport var __Type = new GraphQLObjectType({\n name: '__Type',\n description: 'The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\\n\\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.',\n fields: function fields() {\n return {\n kind: {\n type: GraphQLNonNull(__TypeKind),\n resolve: function resolve(type) {\n if (isScalarType(type)) {\n return TypeKind.SCALAR;\n } else if (isObjectType(type)) {\n return TypeKind.OBJECT;\n } else if (isInterfaceType(type)) {\n return TypeKind.INTERFACE;\n } else if (isUnionType(type)) {\n return TypeKind.UNION;\n } else if (isEnumType(type)) {\n return TypeKind.ENUM;\n } else if (isInputObjectType(type)) {\n return TypeKind.INPUT_OBJECT;\n } else if (isListType(type)) {\n return TypeKind.LIST;\n } else if (isNonNullType(type)) {\n return TypeKind.NON_NULL;\n } // Not reachable. All possible types have been considered.\n\n\n /* istanbul ignore next */\n invariant(false, \"Unexpected type: \\\"\".concat(inspect(type), \"\\\".\"));\n }\n },\n name: {\n type: GraphQLString,\n resolve: function resolve(obj) {\n return obj.name !== undefined ? obj.name : undefined;\n }\n },\n description: {\n type: GraphQLString,\n resolve: function resolve(obj) {\n return obj.description !== undefined ? obj.description : undefined;\n }\n },\n fields: {\n type: GraphQLList(GraphQLNonNull(__Field)),\n args: {\n includeDeprecated: {\n type: GraphQLBoolean,\n defaultValue: false\n }\n },\n resolve: function resolve(type, _ref) {\n var includeDeprecated = _ref.includeDeprecated;\n\n if (isObjectType(type) || isInterfaceType(type)) {\n var fields = objectValues(type.getFields());\n\n if (!includeDeprecated) {\n fields = fields.filter(function (field) {\n return !field.deprecationReason;\n });\n }\n\n return fields;\n }\n\n return null;\n }\n },\n interfaces: {\n type: GraphQLList(GraphQLNonNull(__Type)),\n resolve: function resolve(type) {\n if (isObjectType(type)) {\n return type.getInterfaces();\n }\n }\n },\n possibleTypes: {\n type: GraphQLList(GraphQLNonNull(__Type)),\n resolve: function resolve(type, args, context, _ref2) {\n var schema = _ref2.schema;\n\n if (isAbstractType(type)) {\n return schema.getPossibleTypes(type);\n }\n }\n },\n enumValues: {\n type: GraphQLList(GraphQLNonNull(__EnumValue)),\n args: {\n includeDeprecated: {\n type: GraphQLBoolean,\n defaultValue: false\n }\n },\n resolve: function resolve(type, _ref3) {\n var includeDeprecated = _ref3.includeDeprecated;\n\n if (isEnumType(type)) {\n var values = type.getValues();\n\n if (!includeDeprecated) {\n values = values.filter(function (value) {\n return !value.deprecationReason;\n });\n }\n\n return values;\n }\n }\n },\n inputFields: {\n type: GraphQLList(GraphQLNonNull(__InputValue)),\n resolve: function resolve(type) {\n if (isInputObjectType(type)) {\n return objectValues(type.getFields());\n }\n }\n },\n ofType: {\n type: __Type,\n resolve: function resolve(obj) {\n return obj.ofType !== undefined ? obj.ofType : undefined;\n }\n }\n };\n }\n});\nexport var __Field = new GraphQLObjectType({\n name: '__Field',\n description: 'Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.',\n fields: function fields() {\n return {\n name: {\n type: GraphQLNonNull(GraphQLString),\n resolve: function resolve(obj) {\n return obj.name;\n }\n },\n description: {\n type: GraphQLString,\n resolve: function resolve(obj) {\n return obj.description;\n }\n },\n args: {\n type: GraphQLNonNull(GraphQLList(GraphQLNonNull(__InputValue))),\n resolve: function resolve(field) {\n return field.args;\n }\n },\n type: {\n type: GraphQLNonNull(__Type),\n resolve: function resolve(obj) {\n return obj.type;\n }\n },\n isDeprecated: {\n type: GraphQLNonNull(GraphQLBoolean),\n resolve: function resolve(obj) {\n return obj.isDeprecated;\n }\n },\n deprecationReason: {\n type: GraphQLString,\n resolve: function resolve(obj) {\n return obj.deprecationReason;\n }\n }\n };\n }\n});\nexport var __InputValue = new GraphQLObjectType({\n name: '__InputValue',\n description: 'Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.',\n fields: function fields() {\n return {\n name: {\n type: GraphQLNonNull(GraphQLString),\n resolve: function resolve(obj) {\n return obj.name;\n }\n },\n description: {\n type: GraphQLString,\n resolve: function resolve(obj) {\n return obj.description;\n }\n },\n type: {\n type: GraphQLNonNull(__Type),\n resolve: function resolve(obj) {\n return obj.type;\n }\n },\n defaultValue: {\n type: GraphQLString,\n description: 'A GraphQL-formatted string representing the default value for this input value.',\n resolve: function resolve(inputVal) {\n var valueAST = astFromValue(inputVal.defaultValue, inputVal.type);\n return valueAST ? print(valueAST) : null;\n }\n }\n };\n }\n});\nexport var __EnumValue = new GraphQLObjectType({\n name: '__EnumValue',\n description: 'One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.',\n fields: function fields() {\n return {\n name: {\n type: GraphQLNonNull(GraphQLString),\n resolve: function resolve(obj) {\n return obj.name;\n }\n },\n description: {\n type: GraphQLString,\n resolve: function resolve(obj) {\n return obj.description;\n }\n },\n isDeprecated: {\n type: GraphQLNonNull(GraphQLBoolean),\n resolve: function resolve(obj) {\n return obj.isDeprecated;\n }\n },\n deprecationReason: {\n type: GraphQLString,\n resolve: function resolve(obj) {\n return obj.deprecationReason;\n }\n }\n };\n }\n});\nexport var TypeKind = Object.freeze({\n SCALAR: 'SCALAR',\n OBJECT: 'OBJECT',\n INTERFACE: 'INTERFACE',\n UNION: 'UNION',\n ENUM: 'ENUM',\n INPUT_OBJECT: 'INPUT_OBJECT',\n LIST: 'LIST',\n NON_NULL: 'NON_NULL'\n});\nexport var __TypeKind = new GraphQLEnumType({\n name: '__TypeKind',\n description: 'An enum describing what kind of type a given `__Type` is.',\n values: {\n SCALAR: {\n value: TypeKind.SCALAR,\n description: 'Indicates this type is a scalar.'\n },\n OBJECT: {\n value: TypeKind.OBJECT,\n description: 'Indicates this type is an object. `fields` and `interfaces` are valid fields.'\n },\n INTERFACE: {\n value: TypeKind.INTERFACE,\n description: 'Indicates this type is an interface. `fields` and `possibleTypes` are valid fields.'\n },\n UNION: {\n value: TypeKind.UNION,\n description: 'Indicates this type is a union. `possibleTypes` is a valid field.'\n },\n ENUM: {\n value: TypeKind.ENUM,\n description: 'Indicates this type is an enum. `enumValues` is a valid field.'\n },\n INPUT_OBJECT: {\n value: TypeKind.INPUT_OBJECT,\n description: 'Indicates this type is an input object. `inputFields` is a valid field.'\n },\n LIST: {\n value: TypeKind.LIST,\n description: 'Indicates this type is a list. `ofType` is a valid field.'\n },\n NON_NULL: {\n value: TypeKind.NON_NULL,\n description: 'Indicates this type is a non-null. `ofType` is a valid field.'\n }\n }\n});\n/**\n * Note that these are GraphQLField and not GraphQLFieldConfig,\n * so the format for args is different.\n */\n\nexport var SchemaMetaFieldDef = {\n name: '__schema',\n type: GraphQLNonNull(__Schema),\n description: 'Access the current type schema of this server.',\n args: [],\n resolve: function resolve(source, args, context, _ref4) {\n var schema = _ref4.schema;\n return schema;\n },\n deprecationReason: undefined,\n extensions: undefined,\n astNode: undefined\n};\nexport var TypeMetaFieldDef = {\n name: '__type',\n type: __Type,\n description: 'Request the type information of a single type.',\n args: [{\n name: 'name',\n description: undefined,\n type: GraphQLNonNull(GraphQLString),\n defaultValue: undefined,\n extensions: undefined,\n astNode: undefined\n }],\n resolve: function resolve(source, _ref5, context, _ref6) {\n var name = _ref5.name;\n var schema = _ref6.schema;\n return schema.getType(name);\n },\n deprecationReason: undefined,\n extensions: undefined,\n astNode: undefined\n};\nexport var TypeNameMetaFieldDef = {\n name: '__typename',\n type: GraphQLNonNull(GraphQLString),\n description: 'The name of the current Object type at runtime.',\n args: [],\n resolve: function resolve(source, args, context, _ref7) {\n var parentType = _ref7.parentType;\n return parentType.name;\n },\n deprecationReason: undefined,\n extensions: undefined,\n astNode: undefined\n};\nexport var introspectionTypes = Object.freeze([__Schema, __Directive, __DirectiveLocation, __Type, __Field, __InputValue, __EnumValue, __TypeKind]);\nexport function isIntrospectionType(type) {\n return isNamedType(type) && introspectionTypes.some(function (_ref8) {\n var name = _ref8.name;\n return type.name === name;\n });\n}\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\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\nexport default createNamedContext;\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 HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n 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 }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\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.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && 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.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(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 const location = useLocation();\n const match = useContext(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\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 _curry1 from './_curry1.js';\nimport _isPlaceholder from './_isPlaceholder.js';\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\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}","/* eslint-disable no-redeclare */\n// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/2221\nvar objectValues = Object.values || function (obj) {\n return Object.keys(obj).map(function (key) {\n return obj[key];\n });\n};\n\nexport default objectValues;\n","import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport { Component, createContext } from 'react';\nimport { jsx, keyframes, ClassNames } from '@emotion/core';\nimport { createPortal } from 'react-dom';\nimport _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _css from '@emotion/css';\nimport _taggedTemplateLiteral from '@babel/runtime/helpers/esm/taggedTemplateLiteral';\nimport AutosizeInput from 'react-input-autosize';\n\n// ==============================\n// NO OP\n// ==============================\nvar noop = function noop() {};\n// Class Name Prefixer\n// ==============================\n\n/**\n String representation of component state for styling with class names.\n\n Expects an array of strings OR a string/object pair:\n - className(['comp', 'comp-arg', 'comp-arg-2'])\n @returns 'react-select__comp react-select__comp-arg react-select__comp-arg-2'\n - className('comp', { some: true, state: false })\n @returns 'react-select__comp react-select__comp--some'\n*/\n\nfunction applyPrefixToName(prefix, name) {\n if (!name) {\n return prefix;\n } else if (name[0] === '-') {\n return prefix + name;\n } else {\n return prefix + '__' + name;\n }\n}\n\nfunction classNames(prefix, state, className) {\n var arr = [className];\n\n if (state && prefix) {\n for (var key in state) {\n if (state.hasOwnProperty(key) && state[key]) {\n arr.push(\"\".concat(applyPrefixToName(prefix, key)));\n }\n }\n }\n\n return arr.filter(function (i) {\n return i;\n }).map(function (i) {\n return String(i).trim();\n }).join(' ');\n} // ==============================\n// Clean Value\n// ==============================\n\nvar cleanValue = function cleanValue(value) {\n if (Array.isArray(value)) return value.filter(Boolean);\n if (_typeof(value) === 'object' && value !== null) return [value];\n return [];\n}; // ==============================\n// Handle Input Change\n// ==============================\n\nfunction handleInputChange(inputValue, actionMeta, onInputChange) {\n if (onInputChange) {\n var newValue = onInputChange(inputValue, actionMeta);\n if (typeof newValue === 'string') return newValue;\n }\n\n return inputValue;\n} // ==============================\n// Scroll Helpers\n// ==============================\n\nfunction isDocumentElement(el) {\n return [document.documentElement, document.body, window].indexOf(el) > -1;\n} // Normalized Scroll Top\n// ------------------------------\n\nfunction getScrollTop(el) {\n if (isDocumentElement(el)) {\n return window.pageYOffset;\n }\n\n return el.scrollTop;\n}\nfunction scrollTo(el, top) {\n // with a scroll distance, we perform scroll on the element\n if (isDocumentElement(el)) {\n window.scrollTo(0, top);\n return;\n }\n\n el.scrollTop = top;\n} // Get Scroll Parent\n// ------------------------------\n\nfunction getScrollParent(element) {\n var style = getComputedStyle(element);\n var excludeStaticParent = style.position === 'absolute';\n var overflowRx = /(auto|scroll)/;\n var docEl = document.documentElement; // suck it, flow...\n\n if (style.position === 'fixed') return docEl;\n\n for (var parent = element; parent = parent.parentElement;) {\n style = getComputedStyle(parent);\n\n if (excludeStaticParent && style.position === 'static') {\n continue;\n }\n\n if (overflowRx.test(style.overflow + style.overflowY + style.overflowX)) {\n return parent;\n }\n }\n\n return docEl;\n} // Animated Scroll To\n// ------------------------------\n\n/**\n @param t: time (elapsed)\n @param b: initial value\n @param c: amount of change\n @param d: duration\n*/\n\nfunction easeOutCubic(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t + 1) + b;\n}\n\nfunction animatedScrollTo(element, to) {\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;\n var callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : noop;\n var start = getScrollTop(element);\n var change = to - start;\n var increment = 10;\n var currentTime = 0;\n\n function animateScroll() {\n currentTime += increment;\n var val = easeOutCubic(currentTime, start, change, duration);\n scrollTo(element, val);\n\n if (currentTime < duration) {\n window.requestAnimationFrame(animateScroll);\n } else {\n callback(element);\n }\n }\n\n animateScroll();\n} // Scroll Into View\n// ------------------------------\n\nfunction scrollIntoView(menuEl, focusedEl) {\n var menuRect = menuEl.getBoundingClientRect();\n var focusedRect = focusedEl.getBoundingClientRect();\n var overScroll = focusedEl.offsetHeight / 3;\n\n if (focusedRect.bottom + overScroll > menuRect.bottom) {\n scrollTo(menuEl, Math.min(focusedEl.offsetTop + focusedEl.clientHeight - menuEl.offsetHeight + overScroll, menuEl.scrollHeight));\n } else if (focusedRect.top - overScroll < menuRect.top) {\n scrollTo(menuEl, Math.max(focusedEl.offsetTop - overScroll, 0));\n }\n} // ==============================\n// Get bounding client object\n// ==============================\n// cannot get keys using array notation with DOMRect\n\nfunction getBoundingClientObj(element) {\n var rect = element.getBoundingClientRect();\n return {\n bottom: rect.bottom,\n height: rect.height,\n left: rect.left,\n right: rect.right,\n top: rect.top,\n width: rect.width\n };\n}\n// Touch Capability Detector\n// ==============================\n\nfunction isTouchCapable() {\n try {\n document.createEvent('TouchEvent');\n return true;\n } catch (e) {\n return false;\n }\n} // ==============================\n// Mobile Device Detector\n// ==============================\n\nfunction isMobileDevice() {\n try {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n } catch (e) {\n return false;\n }\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _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; } }\nfunction getMenuPlacement(_ref) {\n var maxHeight = _ref.maxHeight,\n menuEl = _ref.menuEl,\n minHeight = _ref.minHeight,\n placement = _ref.placement,\n shouldScroll = _ref.shouldScroll,\n isFixedPosition = _ref.isFixedPosition,\n theme = _ref.theme;\n var spacing = theme.spacing;\n var scrollParent = getScrollParent(menuEl);\n var defaultState = {\n placement: 'bottom',\n maxHeight: maxHeight\n }; // something went wrong, return default state\n\n if (!menuEl || !menuEl.offsetParent) return defaultState; // we can't trust `scrollParent.scrollHeight` --> it may increase when\n // the menu is rendered\n\n var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),\n scrollHeight = _scrollParent$getBoun.height;\n\n var _menuEl$getBoundingCl = menuEl.getBoundingClientRect(),\n menuBottom = _menuEl$getBoundingCl.bottom,\n menuHeight = _menuEl$getBoundingCl.height,\n menuTop = _menuEl$getBoundingCl.top;\n\n var _menuEl$offsetParent$ = menuEl.offsetParent.getBoundingClientRect(),\n containerTop = _menuEl$offsetParent$.top;\n\n var viewHeight = window.innerHeight;\n var scrollTop = getScrollTop(scrollParent);\n var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);\n var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);\n var viewSpaceAbove = containerTop - marginTop;\n var viewSpaceBelow = viewHeight - menuTop;\n var scrollSpaceAbove = viewSpaceAbove + scrollTop;\n var scrollSpaceBelow = scrollHeight - scrollTop - menuTop;\n var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;\n var scrollUp = scrollTop + menuTop - marginTop;\n var scrollDuration = 160;\n\n switch (placement) {\n case 'auto':\n case 'bottom':\n // 1: the menu will fit, do nothing\n if (viewSpaceBelow >= menuHeight) {\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n } // 2: the menu will fit, if scrolled\n\n\n if (scrollSpaceBelow >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n }\n\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n } // 3: the menu will fit, if constrained\n\n\n if (!isFixedPosition && scrollSpaceBelow >= minHeight || isFixedPosition && viewSpaceBelow >= minHeight) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n } // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n\n\n var constrainedHeight = isFixedPosition ? viewSpaceBelow - marginBottom : scrollSpaceBelow - marginBottom;\n return {\n placement: 'bottom',\n maxHeight: constrainedHeight\n };\n } // 4. Forked beviour when there isn't enough space below\n // AUTO: flip the menu, render above\n\n\n if (placement === 'auto' || isFixedPosition) {\n // may need to be constrained after flipping\n var _constrainedHeight = maxHeight;\n var spaceAbove = isFixedPosition ? viewSpaceAbove : scrollSpaceAbove;\n\n if (spaceAbove >= minHeight) {\n _constrainedHeight = Math.min(spaceAbove - marginBottom - spacing.controlHeight, maxHeight);\n }\n\n return {\n placement: 'top',\n maxHeight: _constrainedHeight\n };\n } // BOTTOM: allow browser to increase scrollable area and immediately set scroll\n\n\n if (placement === 'bottom') {\n scrollTo(scrollParent, scrollDown);\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n }\n\n break;\n\n case 'top':\n // 1: the menu will fit, do nothing\n if (viewSpaceAbove >= menuHeight) {\n return {\n placement: 'top',\n maxHeight: maxHeight\n };\n } // 2: the menu will fit, if scrolled\n\n\n if (scrollSpaceAbove >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n\n return {\n placement: 'top',\n maxHeight: maxHeight\n };\n } // 3: the menu will fit, if constrained\n\n\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n var _constrainedHeight2 = maxHeight; // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n _constrainedHeight2 = isFixedPosition ? viewSpaceAbove - marginTop : scrollSpaceAbove - marginTop;\n }\n\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n\n return {\n placement: 'top',\n maxHeight: _constrainedHeight2\n };\n } // 4. not enough space, the browser WILL NOT increase scrollable area when\n // absolutely positioned element rendered above the viewport (only below).\n // Flip the menu, render below\n\n\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n\n default:\n throw new Error(\"Invalid placement provided \\\"\".concat(placement, \"\\\".\"));\n } // fulfil contract with flow: implicit return value of undefined\n\n\n return defaultState;\n} // Menu Component\n// ------------------------------\n\nfunction alignToControl(placement) {\n var placementToCSSProp = {\n bottom: 'top',\n top: 'bottom'\n };\n return placement ? placementToCSSProp[placement] : 'bottom';\n}\n\nvar coercePlacement = function coercePlacement(p) {\n return p === 'auto' ? 'bottom' : p;\n};\n\nvar menuCSS = function menuCSS(_ref2) {\n var _ref3;\n\n var placement = _ref2.placement,\n _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n spacing = _ref2$theme.spacing,\n colors = _ref2$theme.colors;\n return _ref3 = {\n label: 'menu'\n }, _defineProperty(_ref3, alignToControl(placement), '100%'), _defineProperty(_ref3, \"backgroundColor\", colors.neutral0), _defineProperty(_ref3, \"borderRadius\", borderRadius), _defineProperty(_ref3, \"boxShadow\", '0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)'), _defineProperty(_ref3, \"marginBottom\", spacing.menuGutter), _defineProperty(_ref3, \"marginTop\", spacing.menuGutter), _defineProperty(_ref3, \"position\", 'absolute'), _defineProperty(_ref3, \"width\", '100%'), _defineProperty(_ref3, \"zIndex\", 1), _ref3;\n};\nvar PortalPlacementContext = /*#__PURE__*/createContext({\n getPortalPlacement: null\n}); // NOTE: internal only\n\nvar MenuPlacer = /*#__PURE__*/function (_Component) {\n _inherits(MenuPlacer, _Component);\n\n var _super = _createSuper(MenuPlacer);\n\n function MenuPlacer() {\n var _this;\n\n _classCallCheck(this, MenuPlacer);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n maxHeight: _this.props.maxMenuHeight,\n placement: null\n };\n\n _this.getPlacement = function (ref) {\n var _this$props = _this.props,\n minMenuHeight = _this$props.minMenuHeight,\n maxMenuHeight = _this$props.maxMenuHeight,\n menuPlacement = _this$props.menuPlacement,\n menuPosition = _this$props.menuPosition,\n menuShouldScrollIntoView = _this$props.menuShouldScrollIntoView,\n theme = _this$props.theme;\n if (!ref) return; // DO NOT scroll if position is fixed\n\n var isFixedPosition = menuPosition === 'fixed';\n var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;\n var state = getMenuPlacement({\n maxHeight: maxMenuHeight,\n menuEl: ref,\n minHeight: minMenuHeight,\n placement: menuPlacement,\n shouldScroll: shouldScroll,\n isFixedPosition: isFixedPosition,\n theme: theme\n });\n var getPortalPlacement = _this.context.getPortalPlacement;\n if (getPortalPlacement) getPortalPlacement(state);\n\n _this.setState(state);\n };\n\n _this.getUpdatedProps = function () {\n var menuPlacement = _this.props.menuPlacement;\n var placement = _this.state.placement || coercePlacement(menuPlacement);\n return _objectSpread(_objectSpread({}, _this.props), {}, {\n placement: placement,\n maxHeight: _this.state.maxHeight\n });\n };\n\n return _this;\n }\n\n _createClass(MenuPlacer, [{\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n return children({\n ref: this.getPlacement,\n placerProps: this.getUpdatedProps()\n });\n }\n }]);\n\n return MenuPlacer;\n}(Component);\nMenuPlacer.contextType = PortalPlacementContext;\n\nvar Menu = function Menu(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('menu', props),\n className: cx({\n menu: true\n }, className)\n }, innerProps, {\n ref: innerRef\n }), children);\n};\n// Menu List\n// ==============================\n\nvar menuListCSS = function menuListCSS(_ref4) {\n var maxHeight = _ref4.maxHeight,\n baseUnit = _ref4.theme.spacing.baseUnit;\n return {\n maxHeight: maxHeight,\n overflowY: 'auto',\n paddingBottom: baseUnit,\n paddingTop: baseUnit,\n position: 'relative',\n // required for offset[Height, Top] > keyboard scroll\n WebkitOverflowScrolling: 'touch'\n };\n};\nvar MenuList = function MenuList(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isMulti = props.isMulti,\n innerRef = props.innerRef;\n return jsx(\"div\", {\n css: getStyles('menuList', props),\n className: cx({\n 'menu-list': true,\n 'menu-list--is-multi': isMulti\n }, className),\n ref: innerRef\n }, children);\n}; // ==============================\n// Menu Notices\n// ==============================\n\nvar noticeCSS = function noticeCSS(_ref5) {\n var _ref5$theme = _ref5.theme,\n baseUnit = _ref5$theme.spacing.baseUnit,\n colors = _ref5$theme.colors;\n return {\n color: colors.neutral40,\n padding: \"\".concat(baseUnit * 2, \"px \").concat(baseUnit * 3, \"px\"),\n textAlign: 'center'\n };\n};\n\nvar noOptionsMessageCSS = noticeCSS;\nvar loadingMessageCSS = noticeCSS;\nvar NoOptionsMessage = function NoOptionsMessage(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('noOptionsMessage', props),\n className: cx({\n 'menu-notice': true,\n 'menu-notice--no-options': true\n }, className)\n }, innerProps), children);\n};\nNoOptionsMessage.defaultProps = {\n children: 'No options'\n};\nvar LoadingMessage = function LoadingMessage(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('loadingMessage', props),\n className: cx({\n 'menu-notice': true,\n 'menu-notice--loading': true\n }, className)\n }, innerProps), children);\n};\nLoadingMessage.defaultProps = {\n children: 'Loading...'\n}; // ==============================\n// Menu Portal\n// ==============================\n\nvar menuPortalCSS = function menuPortalCSS(_ref6) {\n var rect = _ref6.rect,\n offset = _ref6.offset,\n position = _ref6.position;\n return {\n left: rect.left,\n position: position,\n top: offset,\n width: rect.width,\n zIndex: 1\n };\n};\nvar MenuPortal = /*#__PURE__*/function (_Component2) {\n _inherits(MenuPortal, _Component2);\n\n var _super2 = _createSuper(MenuPortal);\n\n function MenuPortal() {\n var _this2;\n\n _classCallCheck(this, MenuPortal);\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this2 = _super2.call.apply(_super2, [this].concat(args));\n _this2.state = {\n placement: null\n };\n\n _this2.getPortalPlacement = function (_ref7) {\n var placement = _ref7.placement;\n var initialPlacement = coercePlacement(_this2.props.menuPlacement); // avoid re-renders if the placement has not changed\n\n if (placement !== initialPlacement) {\n _this2.setState({\n placement: placement\n });\n }\n };\n\n return _this2;\n }\n\n _createClass(MenuPortal, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n appendTo = _this$props2.appendTo,\n children = _this$props2.children,\n controlElement = _this$props2.controlElement,\n menuPlacement = _this$props2.menuPlacement,\n position = _this$props2.menuPosition,\n getStyles = _this$props2.getStyles;\n var isFixed = position === 'fixed'; // bail early if required elements aren't present\n\n if (!appendTo && !isFixed || !controlElement) {\n return null;\n }\n\n var placement = this.state.placement || coercePlacement(menuPlacement);\n var rect = getBoundingClientObj(controlElement);\n var scrollDistance = isFixed ? 0 : window.pageYOffset;\n var offset = rect[placement] + scrollDistance;\n var state = {\n offset: offset,\n position: position,\n rect: rect\n }; // same wrapper element whether fixed or portalled\n\n var menuWrapper = jsx(\"div\", {\n css: getStyles('menuPortal', state)\n }, children);\n return jsx(PortalPlacementContext.Provider, {\n value: {\n getPortalPlacement: this.getPortalPlacement\n }\n }, appendTo ? /*#__PURE__*/createPortal(menuWrapper, appendTo) : menuWrapper);\n }\n }]);\n\n return MenuPortal;\n}(Component);\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && _typeof(a) == 'object' && _typeof(b) == 'object') {\n var arrA = isArray(a),\n arrB = isArray(b),\n i,\n length,\n key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n }\n\n if (arrA != arrB) return false;\n var dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n var regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length) {\n return false;\n }\n\n for (i = length; i-- !== 0;) {\n if (!hasProp.call(b, keys[i])) return false;\n } // end fast-deep-equal\n // Custom handling for React\n\n\n for (i = length; i-- !== 0;) {\n key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n } // fast-deep-equal index.js 2.0.1\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nfunction exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (error.message && error.message.match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n } // some other error. we should definitely know about these\n\n\n throw error;\n }\n}\n\nvar containerCSS = function containerCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isRtl = _ref.isRtl;\n return {\n label: 'container',\n direction: isRtl ? 'rtl' : null,\n pointerEvents: isDisabled ? 'none' : null,\n // cancel mouse events when disabled\n position: 'relative'\n };\n};\nvar SelectContainer = function SelectContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n isRtl = props.isRtl;\n return jsx(\"div\", _extends({\n css: getStyles('container', props),\n className: cx({\n '--is-disabled': isDisabled,\n '--is-rtl': isRtl\n }, className)\n }, innerProps), children);\n}; // ==============================\n// Value Container\n// ==============================\n\nvar valueContainerCSS = function valueContainerCSS(_ref2) {\n var spacing = _ref2.theme.spacing;\n return {\n alignItems: 'center',\n display: 'flex',\n flex: 1,\n flexWrap: 'wrap',\n padding: \"\".concat(spacing.baseUnit / 2, \"px \").concat(spacing.baseUnit * 2, \"px\"),\n WebkitOverflowScrolling: 'touch',\n position: 'relative',\n overflow: 'hidden'\n };\n};\nvar ValueContainer = function ValueContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n isMulti = props.isMulti,\n getStyles = props.getStyles,\n hasValue = props.hasValue;\n return jsx(\"div\", {\n css: getStyles('valueContainer', props),\n className: cx({\n 'value-container': true,\n 'value-container--is-multi': isMulti,\n 'value-container--has-value': hasValue\n }, className)\n }, children);\n}; // ==============================\n// Indicator Container\n// ==============================\n\nvar indicatorsContainerCSS = function indicatorsContainerCSS() {\n return {\n alignItems: 'center',\n alignSelf: 'stretch',\n display: 'flex',\n flexShrink: 0\n };\n};\nvar IndicatorsContainer = function IndicatorsContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles;\n return jsx(\"div\", {\n css: getStyles('indicatorsContainer', props),\n className: cx({\n indicators: true\n }, className)\n }, children);\n};\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteral([\"\\n 0%, 80%, 100% { opacity: 0; }\\n 40% { opacity: 1; }\\n\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\nvar _ref2 = process.env.NODE_ENV === \"production\" ? {\n name: \"19bqh2r\",\n styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0;\"\n} : {\n name: \"19bqh2r\",\n styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0JJIiwiZmlsZSI6ImluZGljYXRvcnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyB0eXBlIE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqc3gsIGtleWZyYW1lcyB9IGZyb20gJ0BlbW90aW9uL2NvcmUnO1xuXG5pbXBvcnQgdHlwZSB7IENvbW1vblByb3BzLCBUaGVtZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEljb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgU3ZnID0gKHsgc2l6ZSwgLi4ucHJvcHMgfTogeyBzaXplOiBudW1iZXIgfSkgPT4gKFxuICA8c3ZnXG4gICAgaGVpZ2h0PXtzaXplfVxuICAgIHdpZHRoPXtzaXplfVxuICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgIGNzcz17e1xuICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICBmaWxsOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGxpbmVIZWlnaHQ6IDEsXG4gICAgICBzdHJva2U6ICdjdXJyZW50Q29sb3InLFxuICAgICAgc3Ryb2tlV2lkdGg6IDAsXG4gICAgfX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pO1xuXG5leHBvcnQgY29uc3QgQ3Jvc3NJY29uID0gKHByb3BzOiBhbnkpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiIC8+XG4gIDwvU3ZnPlxuKTtcbmV4cG9ydCBjb25zdCBEb3duQ2hldnJvbiA9IChwcm9wczogYW55KSA9PiAoXG4gIDxTdmcgc2l6ZT17MjB9IHsuLi5wcm9wc30+XG4gICAgPHBhdGggZD1cIk00LjUxNiA3LjU0OGMwLjQzNi0wLjQ0NiAxLjA0My0wLjQ4MSAxLjU3NiAwbDMuOTA4IDMuNzQ3IDMuOTA4LTMuNzQ3YzAuNTMzLTAuNDgxIDEuMTQxLTAuNDQ2IDEuNTc0IDAgMC40MzYgMC40NDUgMC40MDggMS4xOTcgMCAxLjYxNS0wLjQwNiAwLjQxOC00LjY5NSA0LjUwMi00LjY5NSA0LjUwMi0wLjIxNyAwLjIyMy0wLjUwMiAwLjMzNS0wLjc4NyAwLjMzNXMtMC41Ny0wLjExMi0wLjc4OS0wLjMzNWMwIDAtNC4yODctNC4wODQtNC42OTUtNC41MDJzLTAuNDM2LTEuMTcgMC0xLjYxNXpcIiAvPlxuICA8L1N2Zz5cbik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRHJvcGRvd24gJiBDbGVhciBCdXR0b25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgSW5kaWNhdG9yUHJvcHMgPSBDb21tb25Qcm9wcyAmIHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW46IE5vZGUsXG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogYW55LFxuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuLFxuICAvKiogV2hldGhlciB0aGUgdGV4dCBpcyByaWdodCB0byBsZWZ0ICovXG4gIGlzUnRsOiBib29sZWFuLFxufTtcblxuY29uc3QgYmFzZUNTUyA9ICh7XG4gIGlzRm9jdXNlZCxcbiAgdGhlbWU6IHtcbiAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgY29sb3JzLFxuICB9LFxufTogSW5kaWNhdG9yUHJvcHMpID0+ICh7XG4gIGxhYmVsOiAnaW5kaWNhdG9yQ29udGFpbmVyJyxcbiAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHBhZGRpbmc6IGJhc2VVbml0ICogMixcbiAgdHJhbnNpdGlvbjogJ2NvbG9yIDE1MG1zJyxcblxuICAnOmhvdmVyJzoge1xuICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDgwIDogY29sb3JzLm5ldXRyYWw0MCxcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgZHJvcGRvd25JbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xuZXhwb3J0IGNvbnN0IERyb3Bkb3duSW5kaWNhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGN4LCBnZXRTdHlsZXMsIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2Ryb3Bkb3duSW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnZHJvcGRvd24taW5kaWNhdG9yJzogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8RG93bkNoZXZyb24gLz59XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgY2xlYXJJbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xuZXhwb3J0IGNvbnN0IENsZWFySW5kaWNhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGN4LCBnZXRTdHlsZXMsIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2NsZWFySW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnY2xlYXItaW5kaWNhdG9yJzogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8Q3Jvc3NJY29uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTZXBhcmF0b3Jcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG50eXBlIFNlcGFyYXRvclN0YXRlID0geyBpc0Rpc2FibGVkOiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCBpbmRpY2F0b3JTZXBhcmF0b3JDU1MgPSAoe1xuICBpc0Rpc2FibGVkLFxuICB0aGVtZToge1xuICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICBjb2xvcnMsXG4gIH0sXG59OiBDb21tb25Qcm9wcyAmIFNlcGFyYXRvclN0YXRlKSA9PiAoe1xuICBsYWJlbDogJ2luZGljYXRvclNlcGFyYXRvcicsXG4gIGFsaWduU2VsZjogJ3N0cmV0Y2gnLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGlzRGlzYWJsZWQgPyBjb2xvcnMubmV1dHJhbDEwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgbWFyZ2luQm90dG9tOiBiYXNlVW5pdCAqIDIsXG4gIG1hcmdpblRvcDogYmFzZVVuaXQgKiAyLFxuICB3aWR0aDogMSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNsYXNzTmFtZSwgY3gsIGdldFN0eWxlcywgaW5uZXJQcm9wcyB9ID0gcHJvcHM7XG4gIHJldHVybiAoXG4gICAgPHNwYW5cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2luZGljYXRvclNlcGFyYXRvcicsIHByb3BzKX1cbiAgICAgIGNsYXNzTmFtZT17Y3goeyAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUgfSwgY2xhc3NOYW1lKX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gKHtcbiAgaXNGb2N1c2VkLFxuICBzaXplLFxuICB0aGVtZToge1xuICAgIGNvbG9ycyxcbiAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gIH0sXG59OiB7XG4gIGlzRm9jdXNlZDogYm9vbGVhbixcbiAgc2l6ZTogbnVtYmVyLFxuICB0aGVtZTogVGhlbWUsXG59KSA9PiAoe1xuICBsYWJlbDogJ2xvYWRpbmdJbmRpY2F0b3InLFxuICBjb2xvcjogaXNGb2N1c2VkID8gY29sb3JzLm5ldXRyYWw2MCA6IGNvbG9ycy5uZXV0cmFsMjAsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICBmb250U2l6ZTogc2l6ZSxcbiAgbGluZUhlaWdodDogMSxcbiAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxufSk7XG5cbnR5cGUgRG90UHJvcHMgPSB7IGRlbGF5OiBudW1iZXIsIG9mZnNldDogYm9vbGVhbiB9O1xuY29uc3QgTG9hZGluZ0RvdCA9ICh7IGRlbGF5LCBvZmZzZXQgfTogRG90UHJvcHMpID0+IChcbiAgPHNwYW5cbiAgICBjc3M9e3tcbiAgICAgIGFuaW1hdGlvbjogYCR7bG9hZGluZ0RvdEFuaW1hdGlvbnN9IDFzIGVhc2UtaW4tb3V0ICR7ZGVsYXl9bXMgaW5maW5pdGU7YCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBib3JkZXJSYWRpdXM6ICcxZW0nLFxuICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICBtYXJnaW5MZWZ0OiBvZmZzZXQgPyAnMWVtJyA6IG51bGwsXG4gICAgICBoZWlnaHQ6ICcxZW0nLFxuICAgICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gICAgICB3aWR0aDogJzFlbScsXG4gICAgfX1cbiAgLz5cbik7XG5cbmV4cG9ydCB0eXBlIExvYWRpbmdJY29uUHJvcHMgPSB7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogYW55LFxuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuLFxuICAvKiogV2hldGhlciB0aGUgdGV4dCBpcyByaWdodCB0byBsZWZ0ICovXG4gIGlzUnRsOiBib29sZWFuLFxufSAmIENvbW1vblByb3BzICYge1xuICAgIC8qKiBTZXQgc2l6ZSBvZiB0aGUgY29udGFpbmVyLiAqL1xuICAgIHNpemU6IG51bWJlcixcbiAgfTtcbmV4cG9ydCBjb25zdCBMb2FkaW5nSW5kaWNhdG9yID0gKHByb3BzOiBMb2FkaW5nSWNvblByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY2xhc3NOYW1lLCBjeCwgZ2V0U3R5bGVzLCBpbm5lclByb3BzLCBpc1J0bCB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICAgIGNzcz17Z2V0U3R5bGVzKCdsb2FkaW5nSW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnbG9hZGluZy1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezB9IG9mZnNldD17aXNSdGx9IC8+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MTYwfSBvZmZzZXQgLz5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXszMjB9IG9mZnNldD17IWlzUnRsfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcbkxvYWRpbmdJbmRpY2F0b3IuZGVmYXVsdFByb3BzID0geyBzaXplOiA0IH07XG4iXX0= */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__\n};\n\n// ==============================\n// Dropdown & Clear Icons\n// ==============================\nvar Svg = function Svg(_ref) {\n var size = _ref.size,\n props = _objectWithoutProperties(_ref, [\"size\"]);\n\n return jsx(\"svg\", _extends({\n height: size,\n width: size,\n viewBox: \"0 0 20 20\",\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n css: _ref2\n }, props));\n};\n\nvar CrossIcon = function CrossIcon(props) {\n return jsx(Svg, _extends({\n size: 20\n }, props), jsx(\"path\", {\n d: \"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z\"\n }));\n};\nvar DownChevron = function DownChevron(props) {\n return jsx(Svg, _extends({\n size: 20\n }, props), jsx(\"path\", {\n d: \"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z\"\n }));\n}; // ==============================\n// Dropdown & Clear Buttons\n// ==============================\n\nvar baseCSS = function baseCSS(_ref3) {\n var isFocused = _ref3.isFocused,\n _ref3$theme = _ref3.theme,\n baseUnit = _ref3$theme.spacing.baseUnit,\n colors = _ref3$theme.colors;\n return {\n label: 'indicatorContainer',\n color: isFocused ? colors.neutral60 : colors.neutral20,\n display: 'flex',\n padding: baseUnit * 2,\n transition: 'color 150ms',\n ':hover': {\n color: isFocused ? colors.neutral80 : colors.neutral40\n }\n };\n};\n\nvar dropdownIndicatorCSS = baseCSS;\nvar DropdownIndicator = function DropdownIndicator(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({}, innerProps, {\n css: getStyles('dropdownIndicator', props),\n className: cx({\n indicator: true,\n 'dropdown-indicator': true\n }, className)\n }), children || jsx(DownChevron, null));\n};\nvar clearIndicatorCSS = baseCSS;\nvar ClearIndicator = function ClearIndicator(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({}, innerProps, {\n css: getStyles('clearIndicator', props),\n className: cx({\n indicator: true,\n 'clear-indicator': true\n }, className)\n }), children || jsx(CrossIcon, null));\n}; // ==============================\n// Separator\n// ==============================\n\nvar indicatorSeparatorCSS = function indicatorSeparatorCSS(_ref4) {\n var isDisabled = _ref4.isDisabled,\n _ref4$theme = _ref4.theme,\n baseUnit = _ref4$theme.spacing.baseUnit,\n colors = _ref4$theme.colors;\n return {\n label: 'indicatorSeparator',\n alignSelf: 'stretch',\n backgroundColor: isDisabled ? colors.neutral10 : colors.neutral20,\n marginBottom: baseUnit * 2,\n marginTop: baseUnit * 2,\n width: 1\n };\n};\nvar IndicatorSeparator = function IndicatorSeparator(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"span\", _extends({}, innerProps, {\n css: getStyles('indicatorSeparator', props),\n className: cx({\n 'indicator-separator': true\n }, className)\n }));\n}; // ==============================\n// Loading\n// ==============================\n\nvar loadingDotAnimations = keyframes(_templateObject());\nvar loadingIndicatorCSS = function loadingIndicatorCSS(_ref5) {\n var isFocused = _ref5.isFocused,\n size = _ref5.size,\n _ref5$theme = _ref5.theme,\n colors = _ref5$theme.colors,\n baseUnit = _ref5$theme.spacing.baseUnit;\n return {\n label: 'loadingIndicator',\n color: isFocused ? colors.neutral60 : colors.neutral20,\n display: 'flex',\n padding: baseUnit * 2,\n transition: 'color 150ms',\n alignSelf: 'center',\n fontSize: size,\n lineHeight: 1,\n marginRight: size,\n textAlign: 'center',\n verticalAlign: 'middle'\n };\n};\n\nvar LoadingDot = function LoadingDot(_ref6) {\n var delay = _ref6.delay,\n offset = _ref6.offset;\n return jsx(\"span\", {\n css: /*#__PURE__*/_css({\n animation: \"\".concat(loadingDotAnimations, \" 1s ease-in-out \").concat(delay, \"ms infinite;\"),\n backgroundColor: 'currentColor',\n borderRadius: '1em',\n display: 'inline-block',\n marginLeft: offset ? '1em' : null,\n height: '1em',\n verticalAlign: 'top',\n width: '1em'\n }, process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0xJIiwiZmlsZSI6ImluZGljYXRvcnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyB0eXBlIE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqc3gsIGtleWZyYW1lcyB9IGZyb20gJ0BlbW90aW9uL2NvcmUnO1xuXG5pbXBvcnQgdHlwZSB7IENvbW1vblByb3BzLCBUaGVtZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEljb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgU3ZnID0gKHsgc2l6ZSwgLi4ucHJvcHMgfTogeyBzaXplOiBudW1iZXIgfSkgPT4gKFxuICA8c3ZnXG4gICAgaGVpZ2h0PXtzaXplfVxuICAgIHdpZHRoPXtzaXplfVxuICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgIGNzcz17e1xuICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICBmaWxsOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGxpbmVIZWlnaHQ6IDEsXG4gICAgICBzdHJva2U6ICdjdXJyZW50Q29sb3InLFxuICAgICAgc3Ryb2tlV2lkdGg6IDAsXG4gICAgfX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pO1xuXG5leHBvcnQgY29uc3QgQ3Jvc3NJY29uID0gKHByb3BzOiBhbnkpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiIC8+XG4gIDwvU3ZnPlxuKTtcbmV4cG9ydCBjb25zdCBEb3duQ2hldnJvbiA9IChwcm9wczogYW55KSA9PiAoXG4gIDxTdmcgc2l6ZT17MjB9IHsuLi5wcm9wc30+XG4gICAgPHBhdGggZD1cIk00LjUxNiA3LjU0OGMwLjQzNi0wLjQ0NiAxLjA0My0wLjQ4MSAxLjU3NiAwbDMuOTA4IDMuNzQ3IDMuOTA4LTMuNzQ3YzAuNTMzLTAuNDgxIDEuMTQxLTAuNDQ2IDEuNTc0IDAgMC40MzYgMC40NDUgMC40MDggMS4xOTcgMCAxLjYxNS0wLjQwNiAwLjQxOC00LjY5NSA0LjUwMi00LjY5NSA0LjUwMi0wLjIxNyAwLjIyMy0wLjUwMiAwLjMzNS0wLjc4NyAwLjMzNXMtMC41Ny0wLjExMi0wLjc4OS0wLjMzNWMwIDAtNC4yODctNC4wODQtNC42OTUtNC41MDJzLTAuNDM2LTEuMTcgMC0xLjYxNXpcIiAvPlxuICA8L1N2Zz5cbik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRHJvcGRvd24gJiBDbGVhciBCdXR0b25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgSW5kaWNhdG9yUHJvcHMgPSBDb21tb25Qcm9wcyAmIHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW46IE5vZGUsXG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogYW55LFxuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuLFxuICAvKiogV2hldGhlciB0aGUgdGV4dCBpcyByaWdodCB0byBsZWZ0ICovXG4gIGlzUnRsOiBib29sZWFuLFxufTtcblxuY29uc3QgYmFzZUNTUyA9ICh7XG4gIGlzRm9jdXNlZCxcbiAgdGhlbWU6IHtcbiAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgY29sb3JzLFxuICB9LFxufTogSW5kaWNhdG9yUHJvcHMpID0+ICh7XG4gIGxhYmVsOiAnaW5kaWNhdG9yQ29udGFpbmVyJyxcbiAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHBhZGRpbmc6IGJhc2VVbml0ICogMixcbiAgdHJhbnNpdGlvbjogJ2NvbG9yIDE1MG1zJyxcblxuICAnOmhvdmVyJzoge1xuICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDgwIDogY29sb3JzLm5ldXRyYWw0MCxcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgZHJvcGRvd25JbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xuZXhwb3J0IGNvbnN0IERyb3Bkb3duSW5kaWNhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGN4LCBnZXRTdHlsZXMsIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2Ryb3Bkb3duSW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnZHJvcGRvd24taW5kaWNhdG9yJzogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8RG93bkNoZXZyb24gLz59XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgY2xlYXJJbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xuZXhwb3J0IGNvbnN0IENsZWFySW5kaWNhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGN4LCBnZXRTdHlsZXMsIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2NsZWFySW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnY2xlYXItaW5kaWNhdG9yJzogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8Q3Jvc3NJY29uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTZXBhcmF0b3Jcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG50eXBlIFNlcGFyYXRvclN0YXRlID0geyBpc0Rpc2FibGVkOiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCBpbmRpY2F0b3JTZXBhcmF0b3JDU1MgPSAoe1xuICBpc0Rpc2FibGVkLFxuICB0aGVtZToge1xuICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICBjb2xvcnMsXG4gIH0sXG59OiBDb21tb25Qcm9wcyAmIFNlcGFyYXRvclN0YXRlKSA9PiAoe1xuICBsYWJlbDogJ2luZGljYXRvclNlcGFyYXRvcicsXG4gIGFsaWduU2VsZjogJ3N0cmV0Y2gnLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGlzRGlzYWJsZWQgPyBjb2xvcnMubmV1dHJhbDEwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgbWFyZ2luQm90dG9tOiBiYXNlVW5pdCAqIDIsXG4gIG1hcmdpblRvcDogYmFzZVVuaXQgKiAyLFxuICB3aWR0aDogMSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNsYXNzTmFtZSwgY3gsIGdldFN0eWxlcywgaW5uZXJQcm9wcyB9ID0gcHJvcHM7XG4gIHJldHVybiAoXG4gICAgPHNwYW5cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2luZGljYXRvclNlcGFyYXRvcicsIHByb3BzKX1cbiAgICAgIGNsYXNzTmFtZT17Y3goeyAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUgfSwgY2xhc3NOYW1lKX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gKHtcbiAgaXNGb2N1c2VkLFxuICBzaXplLFxuICB0aGVtZToge1xuICAgIGNvbG9ycyxcbiAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gIH0sXG59OiB7XG4gIGlzRm9jdXNlZDogYm9vbGVhbixcbiAgc2l6ZTogbnVtYmVyLFxuICB0aGVtZTogVGhlbWUsXG59KSA9PiAoe1xuICBsYWJlbDogJ2xvYWRpbmdJbmRpY2F0b3InLFxuICBjb2xvcjogaXNGb2N1c2VkID8gY29sb3JzLm5ldXRyYWw2MCA6IGNvbG9ycy5uZXV0cmFsMjAsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICBmb250U2l6ZTogc2l6ZSxcbiAgbGluZUhlaWdodDogMSxcbiAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxufSk7XG5cbnR5cGUgRG90UHJvcHMgPSB7IGRlbGF5OiBudW1iZXIsIG9mZnNldDogYm9vbGVhbiB9O1xuY29uc3QgTG9hZGluZ0RvdCA9ICh7IGRlbGF5LCBvZmZzZXQgfTogRG90UHJvcHMpID0+IChcbiAgPHNwYW5cbiAgICBjc3M9e3tcbiAgICAgIGFuaW1hdGlvbjogYCR7bG9hZGluZ0RvdEFuaW1hdGlvbnN9IDFzIGVhc2UtaW4tb3V0ICR7ZGVsYXl9bXMgaW5maW5pdGU7YCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBib3JkZXJSYWRpdXM6ICcxZW0nLFxuICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICBtYXJnaW5MZWZ0OiBvZmZzZXQgPyAnMWVtJyA6IG51bGwsXG4gICAgICBoZWlnaHQ6ICcxZW0nLFxuICAgICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gICAgICB3aWR0aDogJzFlbScsXG4gICAgfX1cbiAgLz5cbik7XG5cbmV4cG9ydCB0eXBlIExvYWRpbmdJY29uUHJvcHMgPSB7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogYW55LFxuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuLFxuICAvKiogV2hldGhlciB0aGUgdGV4dCBpcyByaWdodCB0byBsZWZ0ICovXG4gIGlzUnRsOiBib29sZWFuLFxufSAmIENvbW1vblByb3BzICYge1xuICAgIC8qKiBTZXQgc2l6ZSBvZiB0aGUgY29udGFpbmVyLiAqL1xuICAgIHNpemU6IG51bWJlcixcbiAgfTtcbmV4cG9ydCBjb25zdCBMb2FkaW5nSW5kaWNhdG9yID0gKHByb3BzOiBMb2FkaW5nSWNvblByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY2xhc3NOYW1lLCBjeCwgZ2V0U3R5bGVzLCBpbm5lclByb3BzLCBpc1J0bCB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICAgIGNzcz17Z2V0U3R5bGVzKCdsb2FkaW5nSW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnbG9hZGluZy1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezB9IG9mZnNldD17aXNSdGx9IC8+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MTYwfSBvZmZzZXQgLz5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXszMjB9IG9mZnNldD17IWlzUnRsfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcbkxvYWRpbmdJbmRpY2F0b3IuZGVmYXVsdFByb3BzID0geyBzaXplOiA0IH07XG4iXX0= */\")\n });\n};\n\nvar LoadingIndicator = function LoadingIndicator(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isRtl = props.isRtl;\n return jsx(\"div\", _extends({}, innerProps, {\n css: getStyles('loadingIndicator', props),\n className: cx({\n indicator: true,\n 'loading-indicator': true\n }, className)\n }), jsx(LoadingDot, {\n delay: 0,\n offset: isRtl\n }), jsx(LoadingDot, {\n delay: 160,\n offset: true\n }), jsx(LoadingDot, {\n delay: 320,\n offset: !isRtl\n }));\n};\nLoadingIndicator.defaultProps = {\n size: 4\n};\n\nvar css = function css(_ref) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n _ref$theme = _ref.theme,\n colors = _ref$theme.colors,\n borderRadius = _ref$theme.borderRadius,\n spacing = _ref$theme.spacing;\n return {\n label: 'control',\n alignItems: 'center',\n backgroundColor: isDisabled ? colors.neutral5 : colors.neutral0,\n borderColor: isDisabled ? colors.neutral10 : isFocused ? colors.primary : colors.neutral20,\n borderRadius: borderRadius,\n borderStyle: 'solid',\n borderWidth: 1,\n boxShadow: isFocused ? \"0 0 0 1px \".concat(colors.primary) : null,\n cursor: 'default',\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n minHeight: spacing.controlHeight,\n outline: '0 !important',\n position: 'relative',\n transition: 'all 100ms',\n '&:hover': {\n borderColor: isFocused ? colors.primary : colors.neutral30\n }\n };\n};\n\nvar Control = function Control(props) {\n var children = props.children,\n cx = props.cx,\n getStyles = props.getStyles,\n className = props.className,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n innerRef = props.innerRef,\n innerProps = props.innerProps,\n menuIsOpen = props.menuIsOpen;\n return jsx(\"div\", _extends({\n ref: innerRef,\n css: getStyles('control', props),\n className: cx({\n control: true,\n 'control--is-disabled': isDisabled,\n 'control--is-focused': isFocused,\n 'control--menu-is-open': menuIsOpen\n }, className)\n }, innerProps), children);\n};\n\nfunction ownKeys$1(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$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar groupCSS = function groupCSS(_ref) {\n var spacing = _ref.theme.spacing;\n return {\n paddingBottom: spacing.baseUnit * 2,\n paddingTop: spacing.baseUnit * 2\n };\n};\n\nvar Group = function Group(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n Heading = props.Heading,\n headingProps = props.headingProps,\n label = props.label,\n theme = props.theme,\n selectProps = props.selectProps;\n return jsx(\"div\", {\n css: getStyles('group', props),\n className: cx({\n group: true\n }, className)\n }, jsx(Heading, _extends({}, headingProps, {\n selectProps: selectProps,\n theme: theme,\n getStyles: getStyles,\n cx: cx\n }), label), jsx(\"div\", null, children));\n};\n\nvar groupHeadingCSS = function groupHeadingCSS(_ref2) {\n var spacing = _ref2.theme.spacing;\n return {\n label: 'group',\n color: '#999',\n cursor: 'default',\n display: 'block',\n fontSize: '75%',\n fontWeight: '500',\n marginBottom: '0.25em',\n paddingLeft: spacing.baseUnit * 3,\n paddingRight: spacing.baseUnit * 3,\n textTransform: 'uppercase'\n };\n};\nvar GroupHeading = function GroupHeading(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n theme = props.theme,\n selectProps = props.selectProps,\n cleanProps = _objectWithoutProperties(props, [\"className\", \"cx\", \"getStyles\", \"theme\", \"selectProps\"]);\n\n return jsx(\"div\", _extends({\n css: getStyles('groupHeading', _objectSpread$1({\n theme: theme\n }, cleanProps)),\n className: cx({\n 'group-heading': true\n }, className)\n }, cleanProps));\n};\n\nfunction ownKeys$2(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$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar inputCSS = function inputCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n margin: spacing.baseUnit / 2,\n paddingBottom: spacing.baseUnit / 2,\n paddingTop: spacing.baseUnit / 2,\n visibility: isDisabled ? 'hidden' : 'visible',\n color: colors.neutral80\n };\n};\n\nvar inputStyle = function inputStyle(isHidden) {\n return {\n label: 'input',\n background: 0,\n border: 0,\n fontSize: 'inherit',\n opacity: isHidden ? 0 : 1,\n outline: 0,\n padding: 0,\n color: 'inherit'\n };\n};\n\nvar Input = function Input(_ref2) {\n var className = _ref2.className,\n cx = _ref2.cx,\n getStyles = _ref2.getStyles,\n innerRef = _ref2.innerRef,\n isHidden = _ref2.isHidden,\n isDisabled = _ref2.isDisabled,\n theme = _ref2.theme,\n selectProps = _ref2.selectProps,\n props = _objectWithoutProperties(_ref2, [\"className\", \"cx\", \"getStyles\", \"innerRef\", \"isHidden\", \"isDisabled\", \"theme\", \"selectProps\"]);\n\n return jsx(\"div\", {\n css: getStyles('input', _objectSpread$2({\n theme: theme\n }, props))\n }, jsx(AutosizeInput, _extends({\n className: cx({\n input: true\n }, className),\n inputRef: innerRef,\n inputStyle: inputStyle(isHidden),\n disabled: isDisabled\n }, props)));\n};\n\nfunction ownKeys$3(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$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar multiValueCSS = function multiValueCSS(_ref) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n borderRadius = _ref$theme.borderRadius,\n colors = _ref$theme.colors;\n return {\n label: 'multiValue',\n backgroundColor: colors.neutral10,\n borderRadius: borderRadius / 2,\n display: 'flex',\n margin: spacing.baseUnit / 2,\n minWidth: 0 // resolves flex/text-overflow bug\n\n };\n};\nvar multiValueLabelCSS = function multiValueLabelCSS(_ref2) {\n var _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n colors = _ref2$theme.colors,\n cropWithEllipsis = _ref2.cropWithEllipsis;\n return {\n borderRadius: borderRadius / 2,\n color: colors.neutral80,\n fontSize: '85%',\n overflow: 'hidden',\n padding: 3,\n paddingLeft: 6,\n textOverflow: cropWithEllipsis ? 'ellipsis' : null,\n whiteSpace: 'nowrap'\n };\n};\nvar multiValueRemoveCSS = function multiValueRemoveCSS(_ref3) {\n var _ref3$theme = _ref3.theme,\n spacing = _ref3$theme.spacing,\n borderRadius = _ref3$theme.borderRadius,\n colors = _ref3$theme.colors,\n isFocused = _ref3.isFocused;\n return {\n alignItems: 'center',\n borderRadius: borderRadius / 2,\n backgroundColor: isFocused && colors.dangerLight,\n display: 'flex',\n paddingLeft: spacing.baseUnit,\n paddingRight: spacing.baseUnit,\n ':hover': {\n backgroundColor: colors.dangerLight,\n color: colors.danger\n }\n };\n};\nvar MultiValueGeneric = function MultiValueGeneric(_ref4) {\n var children = _ref4.children,\n innerProps = _ref4.innerProps;\n return jsx(\"div\", innerProps, children);\n};\nvar MultiValueContainer = MultiValueGeneric;\nvar MultiValueLabel = MultiValueGeneric;\nfunction MultiValueRemove(_ref5) {\n var children = _ref5.children,\n innerProps = _ref5.innerProps;\n return jsx(\"div\", innerProps, children || jsx(CrossIcon, {\n size: 14\n }));\n}\n\nvar MultiValue = function MultiValue(props) {\n var children = props.children,\n className = props.className,\n components = props.components,\n cx = props.cx,\n data = props.data,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n removeProps = props.removeProps,\n selectProps = props.selectProps;\n var Container = components.Container,\n Label = components.Label,\n Remove = components.Remove;\n return jsx(ClassNames, null, function (_ref6) {\n var css = _ref6.css,\n emotionCx = _ref6.cx;\n return jsx(Container, {\n data: data,\n innerProps: _objectSpread$3(_objectSpread$3({}, innerProps), {}, {\n className: emotionCx(css(getStyles('multiValue', props)), cx({\n 'multi-value': true,\n 'multi-value--is-disabled': isDisabled\n }, className))\n }),\n selectProps: selectProps\n }, jsx(Label, {\n data: data,\n innerProps: {\n className: emotionCx(css(getStyles('multiValueLabel', props)), cx({\n 'multi-value__label': true\n }, className))\n },\n selectProps: selectProps\n }, children), jsx(Remove, {\n data: data,\n innerProps: _objectSpread$3({\n className: emotionCx(css(getStyles('multiValueRemove', props)), cx({\n 'multi-value__remove': true\n }, className))\n }, removeProps),\n selectProps: selectProps\n }));\n });\n};\n\nMultiValue.defaultProps = {\n cropWithEllipsis: true\n};\n\nvar optionCSS = function optionCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n isSelected = _ref.isSelected,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n label: 'option',\n backgroundColor: isSelected ? colors.primary : isFocused ? colors.primary25 : 'transparent',\n color: isDisabled ? colors.neutral20 : isSelected ? colors.neutral0 : 'inherit',\n cursor: 'default',\n display: 'block',\n fontSize: 'inherit',\n padding: \"\".concat(spacing.baseUnit * 2, \"px \").concat(spacing.baseUnit * 3, \"px\"),\n width: '100%',\n userSelect: 'none',\n WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)',\n // provide some affordance on touch devices\n ':active': {\n backgroundColor: !isDisabled && (isSelected ? colors.primary : colors.primary50)\n }\n };\n};\n\nvar Option = function Option(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n isSelected = props.isSelected,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('option', props),\n className: cx({\n option: true,\n 'option--is-disabled': isDisabled,\n 'option--is-focused': isFocused,\n 'option--is-selected': isSelected\n }, className),\n ref: innerRef\n }, innerProps), children);\n};\n\nvar placeholderCSS = function placeholderCSS(_ref) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n label: 'placeholder',\n color: colors.neutral50,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2,\n position: 'absolute',\n top: '50%',\n transform: 'translateY(-50%)'\n };\n};\n\nvar Placeholder = function Placeholder(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('placeholder', props),\n className: cx({\n placeholder: true\n }, className)\n }, innerProps), children);\n};\n\nvar css$1 = function css(_ref) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n label: 'singleValue',\n color: isDisabled ? colors.neutral40 : colors.neutral80,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2,\n maxWidth: \"calc(100% - \".concat(spacing.baseUnit * 2, \"px)\"),\n overflow: 'hidden',\n position: 'absolute',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n top: '50%',\n transform: 'translateY(-50%)'\n };\n};\n\nvar SingleValue = function SingleValue(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isDisabled = props.isDisabled,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('singleValue', props),\n className: cx({\n 'single-value': true,\n 'single-value--is-disabled': isDisabled\n }, className)\n }, innerProps), children);\n};\n\nfunction ownKeys$4(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$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar components = {\n ClearIndicator: ClearIndicator,\n Control: Control,\n DropdownIndicator: DropdownIndicator,\n DownChevron: DownChevron,\n CrossIcon: CrossIcon,\n Group: Group,\n GroupHeading: GroupHeading,\n IndicatorsContainer: IndicatorsContainer,\n IndicatorSeparator: IndicatorSeparator,\n Input: Input,\n LoadingIndicator: LoadingIndicator,\n Menu: Menu,\n MenuList: MenuList,\n MenuPortal: MenuPortal,\n LoadingMessage: LoadingMessage,\n NoOptionsMessage: NoOptionsMessage,\n MultiValue: MultiValue,\n MultiValueContainer: MultiValueContainer,\n MultiValueLabel: MultiValueLabel,\n MultiValueRemove: MultiValueRemove,\n Option: Option,\n Placeholder: Placeholder,\n SelectContainer: SelectContainer,\n SingleValue: SingleValue,\n ValueContainer: ValueContainer\n};\nvar defaultComponents = function defaultComponents(props) {\n return _objectSpread$4(_objectSpread$4({}, components), props.components);\n};\n\nexport { exportedEqual as A, cleanValue as B, scrollIntoView as C, classNames as D, noop as E, components as F, handleInputChange as G, MenuPlacer as M, containerCSS as a, css as b, clearIndicatorCSS as c, dropdownIndicatorCSS as d, groupHeadingCSS as e, indicatorSeparatorCSS as f, groupCSS as g, inputCSS as h, indicatorsContainerCSS as i, loadingMessageCSS as j, menuListCSS as k, loadingIndicatorCSS as l, menuCSS as m, menuPortalCSS as n, multiValueCSS as o, multiValueLabelCSS as p, multiValueRemoveCSS as q, noOptionsMessageCSS as r, optionCSS as s, placeholderCSS as t, css$1 as u, valueContainerCSS as v, isTouchCapable as w, isMobileDevice as x, defaultComponents as y, isDocumentElement as z };\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}","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","/* eslint-disable no-redeclare */\n// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/4441\nvar isFinitePolyfill = Number.isFinite || function (value) {\n return typeof value === 'number' && isFinite(value);\n};\n\nexport default isFinitePolyfill;\n","/* eslint-disable no-redeclare */\n// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/4441\nvar isInteger = Number.isInteger || function (value) {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n};\n\nexport default isInteger;\n","import isFinite from '../polyfills/isFinite';\nimport isInteger from '../polyfills/isInteger';\nimport inspect from '../jsutils/inspect';\nimport isObjectLike from '../jsutils/isObjectLike';\nimport { Kind } from '../language/kinds';\nimport { GraphQLScalarType, isScalarType } from './definition'; // As per the GraphQL Spec, Integers are only treated as valid when a valid\n// 32-bit signed integer, providing the broadest support across platforms.\n//\n// n.b. JavaScript's integers are safe between -(2^53 - 1) and 2^53 - 1 because\n// they are internally represented as IEEE 754 doubles.\n\nvar MAX_INT = 2147483647;\nvar MIN_INT = -2147483648;\n\nfunction serializeInt(value) {\n if (typeof value === 'boolean') {\n return value ? 1 : 0;\n }\n\n var num = value;\n\n if (typeof value === 'string' && value !== '') {\n num = Number(value);\n }\n\n if (!isInteger(num)) {\n throw new TypeError(\"Int cannot represent non-integer value: \".concat(inspect(value)));\n }\n\n if (num > MAX_INT || num < MIN_INT) {\n throw new TypeError(\"Int cannot represent non 32-bit signed integer value: \".concat(inspect(value)));\n }\n\n return num;\n}\n\nfunction coerceInt(value) {\n if (!isInteger(value)) {\n throw new TypeError(\"Int cannot represent non-integer value: \".concat(inspect(value)));\n }\n\n if (value > MAX_INT || value < MIN_INT) {\n throw new TypeError(\"Int cannot represent non 32-bit signed integer value: \".concat(inspect(value)));\n }\n\n return value;\n}\n\nexport var GraphQLInt = new GraphQLScalarType({\n name: 'Int',\n description: 'The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.',\n serialize: serializeInt,\n parseValue: coerceInt,\n parseLiteral: function parseLiteral(ast) {\n if (ast.kind === Kind.INT) {\n var num = parseInt(ast.value, 10);\n\n if (num <= MAX_INT && num >= MIN_INT) {\n return num;\n }\n }\n\n return undefined;\n }\n});\n\nfunction serializeFloat(value) {\n if (typeof value === 'boolean') {\n return value ? 1 : 0;\n }\n\n var num = value;\n\n if (typeof value === 'string' && value !== '') {\n num = Number(value);\n }\n\n if (!isFinite(num)) {\n throw new TypeError(\"Float cannot represent non numeric value: \".concat(inspect(value)));\n }\n\n return num;\n}\n\nfunction coerceFloat(value) {\n if (!isFinite(value)) {\n throw new TypeError(\"Float cannot represent non numeric value: \".concat(inspect(value)));\n }\n\n return value;\n}\n\nexport var GraphQLFloat = new GraphQLScalarType({\n name: 'Float',\n description: 'The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).',\n serialize: serializeFloat,\n parseValue: coerceFloat,\n parseLiteral: function parseLiteral(ast) {\n return ast.kind === Kind.FLOAT || ast.kind === Kind.INT ? parseFloat(ast.value) : undefined;\n }\n}); // Support serializing objects with custom valueOf() or toJSON() functions -\n// a common way to represent a complex value which can be represented as\n// a string (ex: MongoDB id objects).\n\nfunction serializeObject(value) {\n if (isObjectLike(value)) {\n if (typeof value.valueOf === 'function') {\n var valueOfResult = value.valueOf();\n\n if (!isObjectLike(valueOfResult)) {\n return valueOfResult;\n }\n }\n\n if (typeof value.toJSON === 'function') {\n // $FlowFixMe(>=0.90.0)\n return value.toJSON();\n }\n }\n\n return value;\n}\n\nfunction serializeString(rawValue) {\n var value = serializeObject(rawValue); // Serialize string, boolean and number values to a string, but do not\n // attempt to coerce object, function, symbol, or other types as strings.\n\n if (typeof value === 'string') {\n return value;\n }\n\n if (typeof value === 'boolean') {\n return value ? 'true' : 'false';\n }\n\n if (isFinite(value)) {\n return value.toString();\n }\n\n throw new TypeError(\"String cannot represent value: \".concat(inspect(rawValue)));\n}\n\nfunction coerceString(value) {\n if (typeof value !== 'string') {\n throw new TypeError(\"String cannot represent a non string value: \".concat(inspect(value)));\n }\n\n return value;\n}\n\nexport var GraphQLString = new GraphQLScalarType({\n name: 'String',\n description: 'The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.',\n serialize: serializeString,\n parseValue: coerceString,\n parseLiteral: function parseLiteral(ast) {\n return ast.kind === Kind.STRING ? ast.value : undefined;\n }\n});\n\nfunction serializeBoolean(value) {\n if (typeof value === 'boolean') {\n return value;\n }\n\n if (isFinite(value)) {\n return value !== 0;\n }\n\n throw new TypeError(\"Boolean cannot represent a non boolean value: \".concat(inspect(value)));\n}\n\nfunction coerceBoolean(value) {\n if (typeof value !== 'boolean') {\n throw new TypeError(\"Boolean cannot represent a non boolean value: \".concat(inspect(value)));\n }\n\n return value;\n}\n\nexport var GraphQLBoolean = new GraphQLScalarType({\n name: 'Boolean',\n description: 'The `Boolean` scalar type represents `true` or `false`.',\n serialize: serializeBoolean,\n parseValue: coerceBoolean,\n parseLiteral: function parseLiteral(ast) {\n return ast.kind === Kind.BOOLEAN ? ast.value : undefined;\n }\n});\n\nfunction serializeID(rawValue) {\n var value = serializeObject(rawValue);\n\n if (typeof value === 'string') {\n return value;\n }\n\n if (isInteger(value)) {\n return String(value);\n }\n\n throw new TypeError(\"ID cannot represent value: \".concat(inspect(rawValue)));\n}\n\nfunction coerceID(value) {\n if (typeof value === 'string') {\n return value;\n }\n\n if (isInteger(value)) {\n return value.toString();\n }\n\n throw new TypeError(\"ID cannot represent value: \".concat(inspect(value)));\n}\n\nexport var GraphQLID = new GraphQLScalarType({\n name: 'ID',\n description: 'The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `\"4\"`) or integer (such as `4`) input value will be accepted as an ID.',\n serialize: serializeID,\n parseValue: coerceID,\n parseLiteral: function parseLiteral(ast) {\n return ast.kind === Kind.STRING || ast.kind === Kind.INT ? ast.value : undefined;\n }\n});\nexport var specifiedScalarTypes = Object.freeze([GraphQLString, GraphQLInt, GraphQLFloat, GraphQLBoolean, GraphQLID]);\nexport function isSpecifiedScalarType(type) {\n return isScalarType(type) && specifiedScalarTypes.some(function (_ref) {\n var name = _ref.name;\n return type.name === name;\n });\n}\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// This is CodeMirror (https://codemirror.net), a code editor\n// implemented in JavaScript on top of the browser's DOM.\n//\n// You can find some technical background for some of the code below\n// at http://marijnhaverbeke.nl/blog/#cm-internals .\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 = global || self, global.CodeMirror = factory());\n}(this, (function () { 'use strict';\n\n // Kludges for bugs and behavior differences that can't be feature\n // detected are enabled based on userAgent etc sniffing.\n var userAgent = navigator.userAgent;\n var platform = navigator.platform;\n\n var gecko = /gecko\\/\\d/i.test(userAgent);\n var ie_upto10 = /MSIE \\d/.test(userAgent);\n var ie_11up = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(userAgent);\n var edge = /Edge\\/(\\d+)/.exec(userAgent);\n var ie = ie_upto10 || ie_11up || edge;\n var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : +(edge || ie_11up)[1]);\n var webkit = !edge && /WebKit\\//.test(userAgent);\n var qtwebkit = webkit && /Qt\\/\\d+\\.\\d+/.test(userAgent);\n var chrome = !edge && /Chrome\\//.test(userAgent);\n var presto = /Opera\\//.test(userAgent);\n var safari = /Apple Computer/.test(navigator.vendor);\n var mac_geMountainLion = /Mac OS X 1\\d\\D([8-9]|\\d\\d)\\D/.test(userAgent);\n var phantom = /PhantomJS/.test(userAgent);\n\n var ios = !edge && /AppleWebKit/.test(userAgent) && /Mobile\\/\\w+/.test(userAgent);\n var android = /Android/.test(userAgent);\n // This is woefully incomplete. Suggestions for alternative methods welcome.\n var mobile = ios || android || /webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent);\n var mac = ios || /Mac/.test(platform);\n var chromeOS = /\\bCrOS\\b/.test(userAgent);\n var windows = /win/i.test(platform);\n\n var presto_version = presto && userAgent.match(/Version\\/(\\d*\\.\\d*)/);\n if (presto_version) { presto_version = Number(presto_version[1]); }\n if (presto_version && presto_version >= 15) { presto = false; webkit = true; }\n // Some browsers use the wrong event properties to signal cmd/ctrl on OS X\n var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11));\n var captureRightClick = gecko || (ie && ie_version >= 9);\n\n function classTest(cls) { return new RegExp(\"(^|\\\\s)\" + cls + \"(?:$|\\\\s)\\\\s*\") }\n\n var rmClass = function(node, cls) {\n var current = node.className;\n var match = classTest(cls).exec(current);\n if (match) {\n var after = current.slice(match.index + match[0].length);\n node.className = current.slice(0, match.index) + (after ? match[1] + after : \"\");\n }\n };\n\n function removeChildren(e) {\n for (var count = e.childNodes.length; count > 0; --count)\n { e.removeChild(e.firstChild); }\n return e\n }\n\n function removeChildrenAndAdd(parent, e) {\n return removeChildren(parent).appendChild(e)\n }\n\n function elt(tag, content, className, style) {\n var e = document.createElement(tag);\n if (className) { e.className = className; }\n if (style) { e.style.cssText = style; }\n if (typeof content == \"string\") { e.appendChild(document.createTextNode(content)); }\n else if (content) { for (var i = 0; i < content.length; ++i) { e.appendChild(content[i]); } }\n return e\n }\n // wrapper for elt, which removes the elt from the accessibility tree\n function eltP(tag, content, className, style) {\n var e = elt(tag, content, className, style);\n e.setAttribute(\"role\", \"presentation\");\n return e\n }\n\n var range;\n if (document.createRange) { range = function(node, start, end, endNode) {\n var r = document.createRange();\n r.setEnd(endNode || node, end);\n r.setStart(node, start);\n return r\n }; }\n else { range = function(node, start, end) {\n var r = document.body.createTextRange();\n try { r.moveToElementText(node.parentNode); }\n catch(e) { return r }\n r.collapse(true);\n r.moveEnd(\"character\", end);\n r.moveStart(\"character\", start);\n return r\n }; }\n\n function contains(parent, child) {\n if (child.nodeType == 3) // Android browser always returns false when child is a textnode\n { child = child.parentNode; }\n if (parent.contains)\n { return parent.contains(child) }\n do {\n if (child.nodeType == 11) { child = child.host; }\n if (child == parent) { return true }\n } while (child = child.parentNode)\n }\n\n function activeElt() {\n // IE and Edge may throw an \"Unspecified Error\" when accessing document.activeElement.\n // IE < 10 will throw when accessed while the page is loading or in an iframe.\n // IE > 9 and Edge will throw when accessed in an iframe if document.body is unavailable.\n var activeElement;\n try {\n activeElement = document.activeElement;\n } catch(e) {\n activeElement = document.body || null;\n }\n while (activeElement && activeElement.shadowRoot && activeElement.shadowRoot.activeElement)\n { activeElement = activeElement.shadowRoot.activeElement; }\n return activeElement\n }\n\n function addClass(node, cls) {\n var current = node.className;\n if (!classTest(cls).test(current)) { node.className += (current ? \" \" : \"\") + cls; }\n }\n function joinClasses(a, b) {\n var as = a.split(\" \");\n for (var i = 0; i < as.length; i++)\n { if (as[i] && !classTest(as[i]).test(b)) { b += \" \" + as[i]; } }\n return b\n }\n\n var selectInput = function(node) { node.select(); };\n if (ios) // Mobile Safari apparently has a bug where select() is broken.\n { selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; }; }\n else if (ie) // Suppress mysterious IE10 errors\n { selectInput = function(node) { try { node.select(); } catch(_e) {} }; }\n\n function bind(f) {\n var args = Array.prototype.slice.call(arguments, 1);\n return function(){return f.apply(null, args)}\n }\n\n function copyObj(obj, target, overwrite) {\n if (!target) { target = {}; }\n for (var prop in obj)\n { if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))\n { target[prop] = obj[prop]; } }\n return target\n }\n\n // Counts the column offset in a string, taking tabs into account.\n // Used mostly to find indentation.\n function countColumn(string, end, tabSize, startIndex, startValue) {\n if (end == null) {\n end = string.search(/[^\\s\\u00a0]/);\n if (end == -1) { end = string.length; }\n }\n for (var i = startIndex || 0, n = startValue || 0;;) {\n var nextTab = string.indexOf(\"\\t\", i);\n if (nextTab < 0 || nextTab >= end)\n { return n + (end - i) }\n n += nextTab - i;\n n += tabSize - (n % tabSize);\n i = nextTab + 1;\n }\n }\n\n var Delayed = function() {\n this.id = null;\n this.f = null;\n this.time = 0;\n this.handler = bind(this.onTimeout, this);\n };\n Delayed.prototype.onTimeout = function (self) {\n self.id = 0;\n if (self.time <= +new Date) {\n self.f();\n } else {\n setTimeout(self.handler, self.time - +new Date);\n }\n };\n Delayed.prototype.set = function (ms, f) {\n this.f = f;\n var time = +new Date + ms;\n if (!this.id || time < this.time) {\n clearTimeout(this.id);\n this.id = setTimeout(this.handler, ms);\n this.time = time;\n }\n };\n\n function indexOf(array, elt) {\n for (var i = 0; i < array.length; ++i)\n { if (array[i] == elt) { return i } }\n return -1\n }\n\n // Number of pixels added to scroller and sizer to hide scrollbar\n var scrollerGap = 50;\n\n // Returned or thrown by various protocols to signal 'I'm not\n // handling this'.\n var Pass = {toString: function(){return \"CodeMirror.Pass\"}};\n\n // Reused option objects for setSelection & friends\n var sel_dontScroll = {scroll: false}, sel_mouse = {origin: \"*mouse\"}, sel_move = {origin: \"+move\"};\n\n // The inverse of countColumn -- find the offset that corresponds to\n // a particular column.\n function findColumn(string, goal, tabSize) {\n for (var pos = 0, col = 0;;) {\n var nextTab = string.indexOf(\"\\t\", pos);\n if (nextTab == -1) { nextTab = string.length; }\n var skipped = nextTab - pos;\n if (nextTab == string.length || col + skipped >= goal)\n { return pos + Math.min(skipped, goal - col) }\n col += nextTab - pos;\n col += tabSize - (col % tabSize);\n pos = nextTab + 1;\n if (col >= goal) { return pos }\n }\n }\n\n var spaceStrs = [\"\"];\n function spaceStr(n) {\n while (spaceStrs.length <= n)\n { spaceStrs.push(lst(spaceStrs) + \" \"); }\n return spaceStrs[n]\n }\n\n function lst(arr) { return arr[arr.length-1] }\n\n function map(array, f) {\n var out = [];\n for (var i = 0; i < array.length; i++) { out[i] = f(array[i], i); }\n return out\n }\n\n function insertSorted(array, value, score) {\n var pos = 0, priority = score(value);\n while (pos < array.length && score(array[pos]) <= priority) { pos++; }\n array.splice(pos, 0, value);\n }\n\n function nothing() {}\n\n function createObj(base, props) {\n var inst;\n if (Object.create) {\n inst = Object.create(base);\n } else {\n nothing.prototype = base;\n inst = new nothing();\n }\n if (props) { copyObj(props, inst); }\n return inst\n }\n\n var nonASCIISingleCaseWordChar = /[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;\n function isWordCharBasic(ch) {\n return /\\w/.test(ch) || ch > \"\\x80\" &&\n (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch))\n }\n function isWordChar(ch, helper) {\n if (!helper) { return isWordCharBasic(ch) }\n if (helper.source.indexOf(\"\\\\w\") > -1 && isWordCharBasic(ch)) { return true }\n return helper.test(ch)\n }\n\n function isEmpty(obj) {\n for (var n in obj) { if (obj.hasOwnProperty(n) && obj[n]) { return false } }\n return true\n }\n\n // Extending unicode characters. A series of a non-extending char +\n // any number of extending chars is treated as a single unit as far\n // as editing and measuring is concerned. This is not fully correct,\n // since some scripts/fonts/browsers also treat other configurations\n // of code points as a group.\n var extendingChars = /[\\u0300-\\u036f\\u0483-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u065e\\u0670\\u06d6-\\u06dc\\u06de-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0900-\\u0902\\u093c\\u0941-\\u0948\\u094d\\u0951-\\u0955\\u0962\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2\\u09e3\\u0a01\\u0a02\\u0a3c\\u0a41\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70\\u0a71\\u0a75\\u0a81\\u0a82\\u0abc\\u0ac1-\\u0ac5\\u0ac7\\u0ac8\\u0acd\\u0ae2\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0d3e\\u0d41-\\u0d44\\u0d4d\\u0d57\\u0d62\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0f18\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86\\u0f87\\u0f90-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039\\u103a\\u103d\\u103e\\u1058\\u1059\\u105e-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108d\\u109d\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193b\\u1a17\\u1a18\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1b00-\\u1b03\\u1b34\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80\\u1b81\\u1ba2-\\u1ba5\\u1ba8\\u1ba9\\u1c2c-\\u1c33\\u1c36\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1dc0-\\u1de6\\u1dfd-\\u1dff\\u200c\\u200d\\u20d0-\\u20f0\\u2cef-\\u2cf1\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua66f-\\ua672\\ua67c\\ua67d\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua825\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc\\uaa29-\\uaa2e\\uaa31\\uaa32\\uaa35\\uaa36\\uaa43\\uaa4c\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uabe5\\uabe8\\uabed\\udc00-\\udfff\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\uff9e\\uff9f]/;\n function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch) }\n\n // Returns a number from the range [`0`; `str.length`] unless `pos` is outside that range.\n function skipExtendingChars(str, pos, dir) {\n while ((dir < 0 ? pos > 0 : pos < str.length) && isExtendingChar(str.charAt(pos))) { pos += dir; }\n return pos\n }\n\n // Returns the value from the range [`from`; `to`] that satisfies\n // `pred` and is closest to `from`. Assumes that at least `to`\n // satisfies `pred`. Supports `from` being greater than `to`.\n function findFirst(pred, from, to) {\n // At any point we are certain `to` satisfies `pred`, don't know\n // whether `from` does.\n var dir = from > to ? -1 : 1;\n for (;;) {\n if (from == to) { return from }\n var midF = (from + to) / 2, mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF);\n if (mid == from) { return pred(mid) ? from : to }\n if (pred(mid)) { to = mid; }\n else { from = mid + dir; }\n }\n }\n\n // BIDI HELPERS\n\n function iterateBidiSections(order, from, to, f) {\n if (!order) { return f(from, to, \"ltr\", 0) }\n var found = false;\n for (var i = 0; i < order.length; ++i) {\n var part = order[i];\n if (part.from < to && part.to > from || from == to && part.to == from) {\n f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? \"rtl\" : \"ltr\", i);\n found = true;\n }\n }\n if (!found) { f(from, to, \"ltr\"); }\n }\n\n var bidiOther = null;\n function getBidiPartAt(order, ch, sticky) {\n var found;\n bidiOther = null;\n for (var i = 0; i < order.length; ++i) {\n var cur = order[i];\n if (cur.from < ch && cur.to > ch) { return i }\n if (cur.to == ch) {\n if (cur.from != cur.to && sticky == \"before\") { found = i; }\n else { bidiOther = i; }\n }\n if (cur.from == ch) {\n if (cur.from != cur.to && sticky != \"before\") { found = i; }\n else { bidiOther = i; }\n }\n }\n return found != null ? found : bidiOther\n }\n\n // Bidirectional ordering algorithm\n // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm\n // that this (partially) implements.\n\n // One-char codes used for character types:\n // L (L): Left-to-Right\n // R (R): Right-to-Left\n // r (AL): Right-to-Left Arabic\n // 1 (EN): European Number\n // + (ES): European Number Separator\n // % (ET): European Number Terminator\n // n (AN): Arabic Number\n // , (CS): Common Number Separator\n // m (NSM): Non-Spacing Mark\n // b (BN): Boundary Neutral\n // s (B): Paragraph Separator\n // t (S): Segment Separator\n // w (WS): Whitespace\n // N (ON): Other Neutrals\n\n // Returns null if characters are ordered as they appear\n // (left-to-right), or an array of sections ({from, to, level}\n // objects) in the order in which they occur visually.\n var bidiOrdering = (function() {\n // Character types for codepoints 0 to 0xff\n var lowTypes = \"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN\";\n // Character types for codepoints 0x600 to 0x6f9\n var arabicTypes = \"nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111\";\n function charType(code) {\n if (code <= 0xf7) { return lowTypes.charAt(code) }\n else if (0x590 <= code && code <= 0x5f4) { return \"R\" }\n else if (0x600 <= code && code <= 0x6f9) { return arabicTypes.charAt(code - 0x600) }\n else if (0x6ee <= code && code <= 0x8ac) { return \"r\" }\n else if (0x2000 <= code && code <= 0x200b) { return \"w\" }\n else if (code == 0x200c) { return \"b\" }\n else { return \"L\" }\n }\n\n var bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/;\n\n function BidiSpan(level, from, to) {\n this.level = level;\n this.from = from; this.to = to;\n }\n\n return function(str, direction) {\n var outerType = direction == \"ltr\" ? \"L\" : \"R\";\n\n if (str.length == 0 || direction == \"ltr\" && !bidiRE.test(str)) { return false }\n var len = str.length, types = [];\n for (var i = 0; i < len; ++i)\n { types.push(charType(str.charCodeAt(i))); }\n\n // W1. Examine each non-spacing mark (NSM) in the level run, and\n // change the type of the NSM to the type of the previous\n // character. If the NSM is at the start of the level run, it will\n // get the type of sor.\n for (var i$1 = 0, prev = outerType; i$1 < len; ++i$1) {\n var type = types[i$1];\n if (type == \"m\") { types[i$1] = prev; }\n else { prev = type; }\n }\n\n // W2. Search backwards from each instance of a European number\n // until the first strong type (R, L, AL, or sor) is found. If an\n // AL is found, change the type of the European number to Arabic\n // number.\n // W3. Change all ALs to R.\n for (var i$2 = 0, cur = outerType; i$2 < len; ++i$2) {\n var type$1 = types[i$2];\n if (type$1 == \"1\" && cur == \"r\") { types[i$2] = \"n\"; }\n else if (isStrong.test(type$1)) { cur = type$1; if (type$1 == \"r\") { types[i$2] = \"R\"; } }\n }\n\n // W4. A single European separator between two European numbers\n // changes to a European number. A single common separator between\n // two numbers of the same type changes to that type.\n for (var i$3 = 1, prev$1 = types[0]; i$3 < len - 1; ++i$3) {\n var type$2 = types[i$3];\n if (type$2 == \"+\" && prev$1 == \"1\" && types[i$3+1] == \"1\") { types[i$3] = \"1\"; }\n else if (type$2 == \",\" && prev$1 == types[i$3+1] &&\n (prev$1 == \"1\" || prev$1 == \"n\")) { types[i$3] = prev$1; }\n prev$1 = type$2;\n }\n\n // W5. A sequence of European terminators adjacent to European\n // numbers changes to all European numbers.\n // W6. Otherwise, separators and terminators change to Other\n // Neutral.\n for (var i$4 = 0; i$4 < len; ++i$4) {\n var type$3 = types[i$4];\n if (type$3 == \",\") { types[i$4] = \"N\"; }\n else if (type$3 == \"%\") {\n var end = (void 0);\n for (end = i$4 + 1; end < len && types[end] == \"%\"; ++end) {}\n var replace = (i$4 && types[i$4-1] == \"!\") || (end < len && types[end] == \"1\") ? \"1\" : \"N\";\n for (var j = i$4; j < end; ++j) { types[j] = replace; }\n i$4 = end - 1;\n }\n }\n\n // W7. Search backwards from each instance of a European number\n // until the first strong type (R, L, or sor) is found. If an L is\n // found, then change the type of the European number to L.\n for (var i$5 = 0, cur$1 = outerType; i$5 < len; ++i$5) {\n var type$4 = types[i$5];\n if (cur$1 == \"L\" && type$4 == \"1\") { types[i$5] = \"L\"; }\n else if (isStrong.test(type$4)) { cur$1 = type$4; }\n }\n\n // N1. A sequence of neutrals takes the direction of the\n // surrounding strong text if the text on both sides has the same\n // direction. European and Arabic numbers act as if they were R in\n // terms of their influence on neutrals. Start-of-level-run (sor)\n // and end-of-level-run (eor) are used at level run boundaries.\n // N2. Any remaining neutrals take the embedding direction.\n for (var i$6 = 0; i$6 < len; ++i$6) {\n if (isNeutral.test(types[i$6])) {\n var end$1 = (void 0);\n for (end$1 = i$6 + 1; end$1 < len && isNeutral.test(types[end$1]); ++end$1) {}\n var before = (i$6 ? types[i$6-1] : outerType) == \"L\";\n var after = (end$1 < len ? types[end$1] : outerType) == \"L\";\n var replace$1 = before == after ? (before ? \"L\" : \"R\") : outerType;\n for (var j$1 = i$6; j$1 < end$1; ++j$1) { types[j$1] = replace$1; }\n i$6 = end$1 - 1;\n }\n }\n\n // Here we depart from the documented algorithm, in order to avoid\n // building up an actual levels array. Since there are only three\n // levels (0, 1, 2) in an implementation that doesn't take\n // explicit embedding into account, we can build up the order on\n // the fly, without following the level-based algorithm.\n var order = [], m;\n for (var i$7 = 0; i$7 < len;) {\n if (countsAsLeft.test(types[i$7])) {\n var start = i$7;\n for (++i$7; i$7 < len && countsAsLeft.test(types[i$7]); ++i$7) {}\n order.push(new BidiSpan(0, start, i$7));\n } else {\n var pos = i$7, at = order.length, isRTL = direction == \"rtl\" ? 1 : 0;\n for (++i$7; i$7 < len && types[i$7] != \"L\"; ++i$7) {}\n for (var j$2 = pos; j$2 < i$7;) {\n if (countsAsNum.test(types[j$2])) {\n if (pos < j$2) { order.splice(at, 0, new BidiSpan(1, pos, j$2)); at += isRTL; }\n var nstart = j$2;\n for (++j$2; j$2 < i$7 && countsAsNum.test(types[j$2]); ++j$2) {}\n order.splice(at, 0, new BidiSpan(2, nstart, j$2));\n at += isRTL;\n pos = j$2;\n } else { ++j$2; }\n }\n if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); }\n }\n }\n if (direction == \"ltr\") {\n if (order[0].level == 1 && (m = str.match(/^\\s+/))) {\n order[0].from = m[0].length;\n order.unshift(new BidiSpan(0, 0, m[0].length));\n }\n if (lst(order).level == 1 && (m = str.match(/\\s+$/))) {\n lst(order).to -= m[0].length;\n order.push(new BidiSpan(0, len - m[0].length, len));\n }\n }\n\n return direction == \"rtl\" ? order.reverse() : order\n }\n })();\n\n // Get the bidi ordering for the given line (and cache it). Returns\n // false for lines that are fully left-to-right, and an array of\n // BidiSpan objects otherwise.\n function getOrder(line, direction) {\n var order = line.order;\n if (order == null) { order = line.order = bidiOrdering(line.text, direction); }\n return order\n }\n\n // EVENT HANDLING\n\n // Lightweight event framework. on/off also work on DOM nodes,\n // registering native DOM handlers.\n\n var noHandlers = [];\n\n var on = function(emitter, type, f) {\n if (emitter.addEventListener) {\n emitter.addEventListener(type, f, false);\n } else if (emitter.attachEvent) {\n emitter.attachEvent(\"on\" + type, f);\n } else {\n var map = emitter._handlers || (emitter._handlers = {});\n map[type] = (map[type] || noHandlers).concat(f);\n }\n };\n\n function getHandlers(emitter, type) {\n return emitter._handlers && emitter._handlers[type] || noHandlers\n }\n\n function off(emitter, type, f) {\n if (emitter.removeEventListener) {\n emitter.removeEventListener(type, f, false);\n } else if (emitter.detachEvent) {\n emitter.detachEvent(\"on\" + type, f);\n } else {\n var map = emitter._handlers, arr = map && map[type];\n if (arr) {\n var index = indexOf(arr, f);\n if (index > -1)\n { map[type] = arr.slice(0, index).concat(arr.slice(index + 1)); }\n }\n }\n }\n\n function signal(emitter, type /*, values...*/) {\n var handlers = getHandlers(emitter, type);\n if (!handlers.length) { return }\n var args = Array.prototype.slice.call(arguments, 2);\n for (var i = 0; i < handlers.length; ++i) { handlers[i].apply(null, args); }\n }\n\n // The DOM events that CodeMirror handles can be overridden by\n // registering a (non-DOM) handler on the editor for the event name,\n // and preventDefault-ing the event in that handler.\n function signalDOMEvent(cm, e, override) {\n if (typeof e == \"string\")\n { e = {type: e, preventDefault: function() { this.defaultPrevented = true; }}; }\n signal(cm, override || e.type, cm, e);\n return e_defaultPrevented(e) || e.codemirrorIgnore\n }\n\n function signalCursorActivity(cm) {\n var arr = cm._handlers && cm._handlers.cursorActivity;\n if (!arr) { return }\n var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []);\n for (var i = 0; i < arr.length; ++i) { if (indexOf(set, arr[i]) == -1)\n { set.push(arr[i]); } }\n }\n\n function hasHandler(emitter, type) {\n return getHandlers(emitter, type).length > 0\n }\n\n // Add on and off methods to a constructor's prototype, to make\n // registering events on such objects more convenient.\n function eventMixin(ctor) {\n ctor.prototype.on = function(type, f) {on(this, type, f);};\n ctor.prototype.off = function(type, f) {off(this, type, f);};\n }\n\n // Due to the fact that we still support jurassic IE versions, some\n // compatibility wrappers are needed.\n\n function e_preventDefault(e) {\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n }\n function e_stopPropagation(e) {\n if (e.stopPropagation) { e.stopPropagation(); }\n else { e.cancelBubble = true; }\n }\n function e_defaultPrevented(e) {\n return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false\n }\n function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);}\n\n function e_target(e) {return e.target || e.srcElement}\n function e_button(e) {\n var b = e.which;\n if (b == null) {\n if (e.button & 1) { b = 1; }\n else if (e.button & 2) { b = 3; }\n else if (e.button & 4) { b = 2; }\n }\n if (mac && e.ctrlKey && b == 1) { b = 3; }\n return b\n }\n\n // Detect drag-and-drop\n var dragAndDrop = function() {\n // There is *some* kind of drag-and-drop support in IE6-8, but I\n // couldn't get it to work yet.\n if (ie && ie_version < 9) { return false }\n var div = elt('div');\n return \"draggable\" in div || \"dragDrop\" in div\n }();\n\n var zwspSupported;\n function zeroWidthElement(measure) {\n if (zwspSupported == null) {\n var test = elt(\"span\", \"\\u200b\");\n removeChildrenAndAdd(measure, elt(\"span\", [test, document.createTextNode(\"x\")]));\n if (measure.firstChild.offsetHeight != 0)\n { zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); }\n }\n var node = zwspSupported ? elt(\"span\", \"\\u200b\") :\n elt(\"span\", \"\\u00a0\", null, \"display: inline-block; width: 1px; margin-right: -1px\");\n node.setAttribute(\"cm-text\", \"\");\n return node\n }\n\n // Feature-detect IE's crummy client rect reporting for bidi text\n var badBidiRects;\n function hasBadBidiRects(measure) {\n if (badBidiRects != null) { return badBidiRects }\n var txt = removeChildrenAndAdd(measure, document.createTextNode(\"A\\u062eA\"));\n var r0 = range(txt, 0, 1).getBoundingClientRect();\n var r1 = range(txt, 1, 2).getBoundingClientRect();\n removeChildren(measure);\n if (!r0 || r0.left == r0.right) { return false } // Safari returns null in some cases (#2780)\n return badBidiRects = (r1.right - r0.right < 3)\n }\n\n // See if \"\".split is the broken IE version, if so, provide an\n // alternative way to split lines.\n var splitLinesAuto = \"\\n\\nb\".split(/\\n/).length != 3 ? function (string) {\n var pos = 0, result = [], l = string.length;\n while (pos <= l) {\n var nl = string.indexOf(\"\\n\", pos);\n if (nl == -1) { nl = string.length; }\n var line = string.slice(pos, string.charAt(nl - 1) == \"\\r\" ? nl - 1 : nl);\n var rt = line.indexOf(\"\\r\");\n if (rt != -1) {\n result.push(line.slice(0, rt));\n pos += rt + 1;\n } else {\n result.push(line);\n pos = nl + 1;\n }\n }\n return result\n } : function (string) { return string.split(/\\r\\n?|\\n/); };\n\n var hasSelection = window.getSelection ? function (te) {\n try { return te.selectionStart != te.selectionEnd }\n catch(e) { return false }\n } : function (te) {\n var range;\n try {range = te.ownerDocument.selection.createRange();}\n catch(e) {}\n if (!range || range.parentElement() != te) { return false }\n return range.compareEndPoints(\"StartToEnd\", range) != 0\n };\n\n var hasCopyEvent = (function () {\n var e = elt(\"div\");\n if (\"oncopy\" in e) { return true }\n e.setAttribute(\"oncopy\", \"return;\");\n return typeof e.oncopy == \"function\"\n })();\n\n var badZoomedRects = null;\n function hasBadZoomedRects(measure) {\n if (badZoomedRects != null) { return badZoomedRects }\n var node = removeChildrenAndAdd(measure, elt(\"span\", \"x\"));\n var normal = node.getBoundingClientRect();\n var fromRange = range(node, 0, 1).getBoundingClientRect();\n return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1\n }\n\n // Known modes, by name and by MIME\n var modes = {}, mimeModes = {};\n\n // Extra arguments are stored as the mode's dependencies, which is\n // used by (legacy) mechanisms like loadmode.js to automatically\n // load a mode. (Preferred mechanism is the require/define calls.)\n function defineMode(name, mode) {\n if (arguments.length > 2)\n { mode.dependencies = Array.prototype.slice.call(arguments, 2); }\n modes[name] = mode;\n }\n\n function defineMIME(mime, spec) {\n mimeModes[mime] = spec;\n }\n\n // Given a MIME type, a {name, ...options} config object, or a name\n // string, return a mode config object.\n function resolveMode(spec) {\n if (typeof spec == \"string\" && mimeModes.hasOwnProperty(spec)) {\n spec = mimeModes[spec];\n } else if (spec && typeof spec.name == \"string\" && mimeModes.hasOwnProperty(spec.name)) {\n var found = mimeModes[spec.name];\n if (typeof found == \"string\") { found = {name: found}; }\n spec = createObj(found, spec);\n spec.name = found.name;\n } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(spec)) {\n return resolveMode(\"application/xml\")\n } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+json$/.test(spec)) {\n return resolveMode(\"application/json\")\n }\n if (typeof spec == \"string\") { return {name: spec} }\n else { return spec || {name: \"null\"} }\n }\n\n // Given a mode spec (anything that resolveMode accepts), find and\n // initialize an actual mode object.\n function getMode(options, spec) {\n spec = resolveMode(spec);\n var mfactory = modes[spec.name];\n if (!mfactory) { return getMode(options, \"text/plain\") }\n var modeObj = mfactory(options, spec);\n if (modeExtensions.hasOwnProperty(spec.name)) {\n var exts = modeExtensions[spec.name];\n for (var prop in exts) {\n if (!exts.hasOwnProperty(prop)) { continue }\n if (modeObj.hasOwnProperty(prop)) { modeObj[\"_\" + prop] = modeObj[prop]; }\n modeObj[prop] = exts[prop];\n }\n }\n modeObj.name = spec.name;\n if (spec.helperType) { modeObj.helperType = spec.helperType; }\n if (spec.modeProps) { for (var prop$1 in spec.modeProps)\n { modeObj[prop$1] = spec.modeProps[prop$1]; } }\n\n return modeObj\n }\n\n // This can be used to attach properties to mode objects from\n // outside the actual mode definition.\n var modeExtensions = {};\n function extendMode(mode, properties) {\n var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});\n copyObj(properties, exts);\n }\n\n function copyState(mode, state) {\n if (state === true) { return state }\n if (mode.copyState) { return mode.copyState(state) }\n var nstate = {};\n for (var n in state) {\n var val = state[n];\n if (val instanceof Array) { val = val.concat([]); }\n nstate[n] = val;\n }\n return nstate\n }\n\n // Given a mode and a state (for that mode), find the inner mode and\n // state at the position that the state refers to.\n function innerMode(mode, state) {\n var info;\n while (mode.innerMode) {\n info = mode.innerMode(state);\n if (!info || info.mode == mode) { break }\n state = info.state;\n mode = info.mode;\n }\n return info || {mode: mode, state: state}\n }\n\n function startState(mode, a1, a2) {\n return mode.startState ? mode.startState(a1, a2) : true\n }\n\n // STRING STREAM\n\n // Fed to the mode parsers, provides helper functions to make\n // parsers more succinct.\n\n var StringStream = function(string, tabSize, lineOracle) {\n this.pos = this.start = 0;\n this.string = string;\n this.tabSize = tabSize || 8;\n this.lastColumnPos = this.lastColumnValue = 0;\n this.lineStart = 0;\n this.lineOracle = lineOracle;\n };\n\n StringStream.prototype.eol = function () {return this.pos >= this.string.length};\n StringStream.prototype.sol = function () {return this.pos == this.lineStart};\n StringStream.prototype.peek = function () {return this.string.charAt(this.pos) || undefined};\n StringStream.prototype.next = function () {\n if (this.pos < this.string.length)\n { return this.string.charAt(this.pos++) }\n };\n StringStream.prototype.eat = function (match) {\n var ch = this.string.charAt(this.pos);\n var ok;\n if (typeof match == \"string\") { ok = ch == match; }\n else { ok = ch && (match.test ? match.test(ch) : match(ch)); }\n if (ok) {++this.pos; return ch}\n };\n StringStream.prototype.eatWhile = function (match) {\n var start = this.pos;\n while (this.eat(match)){}\n return this.pos > start\n };\n StringStream.prototype.eatSpace = function () {\n var start = this.pos;\n while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) { ++this.pos; }\n return this.pos > start\n };\n StringStream.prototype.skipToEnd = function () {this.pos = this.string.length;};\n StringStream.prototype.skipTo = function (ch) {\n var found = this.string.indexOf(ch, this.pos);\n if (found > -1) {this.pos = found; return true}\n };\n StringStream.prototype.backUp = function (n) {this.pos -= n;};\n StringStream.prototype.column = function () {\n if (this.lastColumnPos < this.start) {\n this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);\n this.lastColumnPos = this.start;\n }\n return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n };\n StringStream.prototype.indentation = function () {\n return countColumn(this.string, null, this.tabSize) -\n (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n };\n StringStream.prototype.match = function (pattern, consume, caseInsensitive) {\n if (typeof pattern == \"string\") {\n var cased = function (str) { return caseInsensitive ? str.toLowerCase() : str; };\n var substr = this.string.substr(this.pos, pattern.length);\n if (cased(substr) == cased(pattern)) {\n if (consume !== false) { this.pos += pattern.length; }\n return true\n }\n } else {\n var match = this.string.slice(this.pos).match(pattern);\n if (match && match.index > 0) { return null }\n if (match && consume !== false) { this.pos += match[0].length; }\n return match\n }\n };\n StringStream.prototype.current = function (){return this.string.slice(this.start, this.pos)};\n StringStream.prototype.hideFirstChars = function (n, inner) {\n this.lineStart += n;\n try { return inner() }\n finally { this.lineStart -= n; }\n };\n StringStream.prototype.lookAhead = function (n) {\n var oracle = this.lineOracle;\n return oracle && oracle.lookAhead(n)\n };\n StringStream.prototype.baseToken = function () {\n var oracle = this.lineOracle;\n return oracle && oracle.baseToken(this.pos)\n };\n\n // Find the line object corresponding to the given line number.\n function getLine(doc, n) {\n n -= doc.first;\n if (n < 0 || n >= doc.size) { throw new Error(\"There is no line \" + (n + doc.first) + \" in the document.\") }\n var chunk = doc;\n while (!chunk.lines) {\n for (var i = 0;; ++i) {\n var child = chunk.children[i], sz = child.chunkSize();\n if (n < sz) { chunk = child; break }\n n -= sz;\n }\n }\n return chunk.lines[n]\n }\n\n // Get the part of a document between two positions, as an array of\n // strings.\n function getBetween(doc, start, end) {\n var out = [], n = start.line;\n doc.iter(start.line, end.line + 1, function (line) {\n var text = line.text;\n if (n == end.line) { text = text.slice(0, end.ch); }\n if (n == start.line) { text = text.slice(start.ch); }\n out.push(text);\n ++n;\n });\n return out\n }\n // Get the lines between from and to, as array of strings.\n function getLines(doc, from, to) {\n var out = [];\n doc.iter(from, to, function (line) { out.push(line.text); }); // iter aborts when callback returns truthy value\n return out\n }\n\n // Update the height of a line, propagating the height change\n // upwards to parent nodes.\n function updateLineHeight(line, height) {\n var diff = height - line.height;\n if (diff) { for (var n = line; n; n = n.parent) { n.height += diff; } }\n }\n\n // Given a line object, find its line number by walking up through\n // its parent links.\n function lineNo(line) {\n if (line.parent == null) { return null }\n var cur = line.parent, no = indexOf(cur.lines, line);\n for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {\n for (var i = 0;; ++i) {\n if (chunk.children[i] == cur) { break }\n no += chunk.children[i].chunkSize();\n }\n }\n return no + cur.first\n }\n\n // Find the line at the given vertical position, using the height\n // information in the document tree.\n function lineAtHeight(chunk, h) {\n var n = chunk.first;\n outer: do {\n for (var i$1 = 0; i$1 < chunk.children.length; ++i$1) {\n var child = chunk.children[i$1], ch = child.height;\n if (h < ch) { chunk = child; continue outer }\n h -= ch;\n n += child.chunkSize();\n }\n return n\n } while (!chunk.lines)\n var i = 0;\n for (; i < chunk.lines.length; ++i) {\n var line = chunk.lines[i], lh = line.height;\n if (h < lh) { break }\n h -= lh;\n }\n return n + i\n }\n\n function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size}\n\n function lineNumberFor(options, i) {\n return String(options.lineNumberFormatter(i + options.firstLineNumber))\n }\n\n // A Pos instance represents a position within the text.\n function Pos(line, ch, sticky) {\n if ( sticky === void 0 ) sticky = null;\n\n if (!(this instanceof Pos)) { return new Pos(line, ch, sticky) }\n this.line = line;\n this.ch = ch;\n this.sticky = sticky;\n }\n\n // Compare two positions, return 0 if they are the same, a negative\n // number when a is less, and a positive number otherwise.\n function cmp(a, b) { return a.line - b.line || a.ch - b.ch }\n\n function equalCursorPos(a, b) { return a.sticky == b.sticky && cmp(a, b) == 0 }\n\n function copyPos(x) {return Pos(x.line, x.ch)}\n function maxPos(a, b) { return cmp(a, b) < 0 ? b : a }\n function minPos(a, b) { return cmp(a, b) < 0 ? a : b }\n\n // Most of the external API clips given positions to make sure they\n // actually exist within the document.\n function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1))}\n function clipPos(doc, pos) {\n if (pos.line < doc.first) { return Pos(doc.first, 0) }\n var last = doc.first + doc.size - 1;\n if (pos.line > last) { return Pos(last, getLine(doc, last).text.length) }\n return clipToLen(pos, getLine(doc, pos.line).text.length)\n }\n function clipToLen(pos, linelen) {\n var ch = pos.ch;\n if (ch == null || ch > linelen) { return Pos(pos.line, linelen) }\n else if (ch < 0) { return Pos(pos.line, 0) }\n else { return pos }\n }\n function clipPosArray(doc, array) {\n var out = [];\n for (var i = 0; i < array.length; i++) { out[i] = clipPos(doc, array[i]); }\n return out\n }\n\n var SavedContext = function(state, lookAhead) {\n this.state = state;\n this.lookAhead = lookAhead;\n };\n\n var Context = function(doc, state, line, lookAhead) {\n this.state = state;\n this.doc = doc;\n this.line = line;\n this.maxLookAhead = lookAhead || 0;\n this.baseTokens = null;\n this.baseTokenPos = 1;\n };\n\n Context.prototype.lookAhead = function (n) {\n var line = this.doc.getLine(this.line + n);\n if (line != null && n > this.maxLookAhead) { this.maxLookAhead = n; }\n return line\n };\n\n Context.prototype.baseToken = function (n) {\n if (!this.baseTokens) { return null }\n while (this.baseTokens[this.baseTokenPos] <= n)\n { this.baseTokenPos += 2; }\n var type = this.baseTokens[this.baseTokenPos + 1];\n return {type: type && type.replace(/( |^)overlay .*/, \"\"),\n size: this.baseTokens[this.baseTokenPos] - n}\n };\n\n Context.prototype.nextLine = function () {\n this.line++;\n if (this.maxLookAhead > 0) { this.maxLookAhead--; }\n };\n\n Context.fromSaved = function (doc, saved, line) {\n if (saved instanceof SavedContext)\n { return new Context(doc, copyState(doc.mode, saved.state), line, saved.lookAhead) }\n else\n { return new Context(doc, copyState(doc.mode, saved), line) }\n };\n\n Context.prototype.save = function (copy) {\n var state = copy !== false ? copyState(this.doc.mode, this.state) : this.state;\n return this.maxLookAhead > 0 ? new SavedContext(state, this.maxLookAhead) : state\n };\n\n\n // Compute a style array (an array starting with a mode generation\n // -- for invalidation -- followed by pairs of end positions and\n // style strings), which is used to highlight the tokens on the\n // line.\n function highlightLine(cm, line, context, forceToEnd) {\n // A styles array always starts with a number identifying the\n // mode/overlays that it is based on (for easy invalidation).\n var st = [cm.state.modeGen], lineClasses = {};\n // Compute the base array of styles\n runMode(cm, line.text, cm.doc.mode, context, function (end, style) { return st.push(end, style); },\n lineClasses, forceToEnd);\n var state = context.state;\n\n // Run overlays, adjust style array.\n var loop = function ( o ) {\n context.baseTokens = st;\n var overlay = cm.state.overlays[o], i = 1, at = 0;\n context.state = true;\n runMode(cm, line.text, overlay.mode, context, function (end, style) {\n var start = i;\n // Ensure there's a token end at the current position, and that i points at it\n while (at < end) {\n var i_end = st[i];\n if (i_end > end)\n { st.splice(i, 1, end, st[i+1], i_end); }\n i += 2;\n at = Math.min(end, i_end);\n }\n if (!style) { return }\n if (overlay.opaque) {\n st.splice(start, i - start, end, \"overlay \" + style);\n i = start + 2;\n } else {\n for (; start < i; start += 2) {\n var cur = st[start+1];\n st[start+1] = (cur ? cur + \" \" : \"\") + \"overlay \" + style;\n }\n }\n }, lineClasses);\n context.state = state;\n context.baseTokens = null;\n context.baseTokenPos = 1;\n };\n\n for (var o = 0; o < cm.state.overlays.length; ++o) loop( o );\n\n return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}\n }\n\n function getLineStyles(cm, line, updateFrontier) {\n if (!line.styles || line.styles[0] != cm.state.modeGen) {\n var context = getContextBefore(cm, lineNo(line));\n var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state);\n var result = highlightLine(cm, line, context);\n if (resetState) { context.state = resetState; }\n line.stateAfter = context.save(!resetState);\n line.styles = result.styles;\n if (result.classes) { line.styleClasses = result.classes; }\n else if (line.styleClasses) { line.styleClasses = null; }\n if (updateFrontier === cm.doc.highlightFrontier)\n { cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); }\n }\n return line.styles\n }\n\n function getContextBefore(cm, n, precise) {\n var doc = cm.doc, display = cm.display;\n if (!doc.mode.startState) { return new Context(doc, true, n) }\n var start = findStartLine(cm, n, precise);\n var saved = start > doc.first && getLine(doc, start - 1).stateAfter;\n var context = saved ? Context.fromSaved(doc, saved, start) : new Context(doc, startState(doc.mode), start);\n\n doc.iter(start, n, function (line) {\n processLine(cm, line.text, context);\n var pos = context.line;\n line.stateAfter = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo ? context.save() : null;\n context.nextLine();\n });\n if (precise) { doc.modeFrontier = context.line; }\n return context\n }\n\n // Lightweight form of highlight -- proceed over this line and\n // update state, but don't save a style array. Used for lines that\n // aren't currently visible.\n function processLine(cm, text, context, startAt) {\n var mode = cm.doc.mode;\n var stream = new StringStream(text, cm.options.tabSize, context);\n stream.start = stream.pos = startAt || 0;\n if (text == \"\") { callBlankLine(mode, context.state); }\n while (!stream.eol()) {\n readToken(mode, stream, context.state);\n stream.start = stream.pos;\n }\n }\n\n function callBlankLine(mode, state) {\n if (mode.blankLine) { return mode.blankLine(state) }\n if (!mode.innerMode) { return }\n var inner = innerMode(mode, state);\n if (inner.mode.blankLine) { return inner.mode.blankLine(inner.state) }\n }\n\n function readToken(mode, stream, state, inner) {\n for (var i = 0; i < 10; i++) {\n if (inner) { inner[0] = innerMode(mode, state).mode; }\n var style = mode.token(stream, state);\n if (stream.pos > stream.start) { return style }\n }\n throw new Error(\"Mode \" + mode.name + \" failed to advance stream.\")\n }\n\n var Token = function(stream, type, state) {\n this.start = stream.start; this.end = stream.pos;\n this.string = stream.current();\n this.type = type || null;\n this.state = state;\n };\n\n // Utility for getTokenAt and getLineTokens\n function takeToken(cm, pos, precise, asArray) {\n var doc = cm.doc, mode = doc.mode, style;\n pos = clipPos(doc, pos);\n var line = getLine(doc, pos.line), context = getContextBefore(cm, pos.line, precise);\n var stream = new StringStream(line.text, cm.options.tabSize, context), tokens;\n if (asArray) { tokens = []; }\n while ((asArray || stream.pos < pos.ch) && !stream.eol()) {\n stream.start = stream.pos;\n style = readToken(mode, stream, context.state);\n if (asArray) { tokens.push(new Token(stream, style, copyState(doc.mode, context.state))); }\n }\n return asArray ? tokens : new Token(stream, style, context.state)\n }\n\n function extractLineClasses(type, output) {\n if (type) { for (;;) {\n var lineClass = type.match(/(?:^|\\s+)line-(background-)?(\\S+)/);\n if (!lineClass) { break }\n type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length);\n var prop = lineClass[1] ? \"bgClass\" : \"textClass\";\n if (output[prop] == null)\n { output[prop] = lineClass[2]; }\n else if (!(new RegExp(\"(?:^|\\\\s)\" + lineClass[2] + \"(?:$|\\\\s)\")).test(output[prop]))\n { output[prop] += \" \" + lineClass[2]; }\n } }\n return type\n }\n\n // Run the given mode's parser over a line, calling f for each token.\n function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) {\n var flattenSpans = mode.flattenSpans;\n if (flattenSpans == null) { flattenSpans = cm.options.flattenSpans; }\n var curStart = 0, curStyle = null;\n var stream = new StringStream(text, cm.options.tabSize, context), style;\n var inner = cm.options.addModeClass && [null];\n if (text == \"\") { extractLineClasses(callBlankLine(mode, context.state), lineClasses); }\n while (!stream.eol()) {\n if (stream.pos > cm.options.maxHighlightLength) {\n flattenSpans = false;\n if (forceToEnd) { processLine(cm, text, context, stream.pos); }\n stream.pos = text.length;\n style = null;\n } else {\n style = extractLineClasses(readToken(mode, stream, context.state, inner), lineClasses);\n }\n if (inner) {\n var mName = inner[0].name;\n if (mName) { style = \"m-\" + (style ? mName + \" \" + style : mName); }\n }\n if (!flattenSpans || curStyle != style) {\n while (curStart < stream.start) {\n curStart = Math.min(stream.start, curStart + 5000);\n f(curStart, curStyle);\n }\n curStyle = style;\n }\n stream.start = stream.pos;\n }\n while (curStart < stream.pos) {\n // Webkit seems to refuse to render text nodes longer than 57444\n // characters, and returns inaccurate measurements in nodes\n // starting around 5000 chars.\n var pos = Math.min(stream.pos, curStart + 5000);\n f(pos, curStyle);\n curStart = pos;\n }\n }\n\n // Finds the line to start with when starting a parse. Tries to\n // find a line with a stateAfter, so that it can start with a\n // valid state. If that fails, it returns the line with the\n // smallest indentation, which tends to need the least context to\n // parse correctly.\n function findStartLine(cm, n, precise) {\n var minindent, minline, doc = cm.doc;\n var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);\n for (var search = n; search > lim; --search) {\n if (search <= doc.first) { return doc.first }\n var line = getLine(doc, search - 1), after = line.stateAfter;\n if (after && (!precise || search + (after instanceof SavedContext ? after.lookAhead : 0) <= doc.modeFrontier))\n { return search }\n var indented = countColumn(line.text, null, cm.options.tabSize);\n if (minline == null || minindent > indented) {\n minline = search - 1;\n minindent = indented;\n }\n }\n return minline\n }\n\n function retreatFrontier(doc, n) {\n doc.modeFrontier = Math.min(doc.modeFrontier, n);\n if (doc.highlightFrontier < n - 10) { return }\n var start = doc.first;\n for (var line = n - 1; line > start; line--) {\n var saved = getLine(doc, line).stateAfter;\n // change is on 3\n // state on line 1 looked ahead 2 -- so saw 3\n // test 1 + 2 < 3 should cover this\n if (saved && (!(saved instanceof SavedContext) || line + saved.lookAhead < n)) {\n start = line + 1;\n break\n }\n }\n doc.highlightFrontier = Math.min(doc.highlightFrontier, start);\n }\n\n // Optimize some code when these features are not used.\n var sawReadOnlySpans = false, sawCollapsedSpans = false;\n\n function seeReadOnlySpans() {\n sawReadOnlySpans = true;\n }\n\n function seeCollapsedSpans() {\n sawCollapsedSpans = true;\n }\n\n // TEXTMARKER SPANS\n\n function MarkedSpan(marker, from, to) {\n this.marker = marker;\n this.from = from; this.to = to;\n }\n\n // Search an array of spans for a span matching the given marker.\n function getMarkedSpanFor(spans, marker) {\n if (spans) { for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if (span.marker == marker) { return span }\n } }\n }\n // Remove a span from an array, returning undefined if no spans are\n // left (we don't store arrays for lines without spans).\n function removeMarkedSpan(spans, span) {\n var r;\n for (var i = 0; i < spans.length; ++i)\n { if (spans[i] != span) { (r || (r = [])).push(spans[i]); } }\n return r\n }\n // Add a span to a line.\n function addMarkedSpan(line, span) {\n line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span];\n span.marker.attachLine(line);\n }\n\n // Used for the algorithm that adjusts markers for a change in the\n // document. These functions cut an array of spans at a given\n // character position, returning an array of remaining chunks (or\n // undefined if nothing remains).\n function markedSpansBefore(old, startCh, isInsert) {\n var nw;\n if (old) { for (var i = 0; i < old.length; ++i) {\n var span = old[i], marker = span.marker;\n var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);\n if (startsBefore || span.from == startCh && marker.type == \"bookmark\" && (!isInsert || !span.marker.insertLeft)) {\n var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh)\n ;(nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to));\n }\n } }\n return nw\n }\n function markedSpansAfter(old, endCh, isInsert) {\n var nw;\n if (old) { for (var i = 0; i < old.length; ++i) {\n var span = old[i], marker = span.marker;\n var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);\n if (endsAfter || span.from == endCh && marker.type == \"bookmark\" && (!isInsert || span.marker.insertLeft)) {\n var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh)\n ;(nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh,\n span.to == null ? null : span.to - endCh));\n }\n } }\n return nw\n }\n\n // Given a change object, compute the new set of marker spans that\n // cover the line in which the change took place. Removes spans\n // entirely within the change, reconnects spans belonging to the\n // same marker that appear on both sides of the change, and cuts off\n // spans partially within the change. Returns an array of span\n // arrays with one element for each line in (after) the change.\n function stretchSpansOverChange(doc, change) {\n if (change.full) { return null }\n var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;\n var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;\n if (!oldFirst && !oldLast) { return null }\n\n var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0;\n // Get the spans that 'stick out' on both sides\n var first = markedSpansBefore(oldFirst, startCh, isInsert);\n var last = markedSpansAfter(oldLast, endCh, isInsert);\n\n // Next, merge those two ends\n var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0);\n if (first) {\n // Fix up .to properties of first\n for (var i = 0; i < first.length; ++i) {\n var span = first[i];\n if (span.to == null) {\n var found = getMarkedSpanFor(last, span.marker);\n if (!found) { span.to = startCh; }\n else if (sameLine) { span.to = found.to == null ? null : found.to + offset; }\n }\n }\n }\n if (last) {\n // Fix up .from in last (or move them into first in case of sameLine)\n for (var i$1 = 0; i$1 < last.length; ++i$1) {\n var span$1 = last[i$1];\n if (span$1.to != null) { span$1.to += offset; }\n if (span$1.from == null) {\n var found$1 = getMarkedSpanFor(first, span$1.marker);\n if (!found$1) {\n span$1.from = offset;\n if (sameLine) { (first || (first = [])).push(span$1); }\n }\n } else {\n span$1.from += offset;\n if (sameLine) { (first || (first = [])).push(span$1); }\n }\n }\n }\n // Make sure we didn't create any zero-length spans\n if (first) { first = clearEmptySpans(first); }\n if (last && last != first) { last = clearEmptySpans(last); }\n\n var newMarkers = [first];\n if (!sameLine) {\n // Fill gap with whole-line-spans\n var gap = change.text.length - 2, gapMarkers;\n if (gap > 0 && first)\n { for (var i$2 = 0; i$2 < first.length; ++i$2)\n { if (first[i$2].to == null)\n { (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i$2].marker, null, null)); } } }\n for (var i$3 = 0; i$3 < gap; ++i$3)\n { newMarkers.push(gapMarkers); }\n newMarkers.push(last);\n }\n return newMarkers\n }\n\n // Remove spans that are empty and don't have a clearWhenEmpty\n // option of false.\n function clearEmptySpans(spans) {\n for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false)\n { spans.splice(i--, 1); }\n }\n if (!spans.length) { return null }\n return spans\n }\n\n // Used to 'clip' out readOnly ranges when making a change.\n function removeReadOnlyRanges(doc, from, to) {\n var markers = null;\n doc.iter(from.line, to.line + 1, function (line) {\n if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n var mark = line.markedSpans[i].marker;\n if (mark.readOnly && (!markers || indexOf(markers, mark) == -1))\n { (markers || (markers = [])).push(mark); }\n } }\n });\n if (!markers) { return null }\n var parts = [{from: from, to: to}];\n for (var i = 0; i < markers.length; ++i) {\n var mk = markers[i], m = mk.find(0);\n for (var j = 0; j < parts.length; ++j) {\n var p = parts[j];\n if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) { continue }\n var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to);\n if (dfrom < 0 || !mk.inclusiveLeft && !dfrom)\n { newParts.push({from: p.from, to: m.from}); }\n if (dto > 0 || !mk.inclusiveRight && !dto)\n { newParts.push({from: m.to, to: p.to}); }\n parts.splice.apply(parts, newParts);\n j += newParts.length - 3;\n }\n }\n return parts\n }\n\n // Connect or disconnect spans from a line.\n function detachMarkedSpans(line) {\n var spans = line.markedSpans;\n if (!spans) { return }\n for (var i = 0; i < spans.length; ++i)\n { spans[i].marker.detachLine(line); }\n line.markedSpans = null;\n }\n function attachMarkedSpans(line, spans) {\n if (!spans) { return }\n for (var i = 0; i < spans.length; ++i)\n { spans[i].marker.attachLine(line); }\n line.markedSpans = spans;\n }\n\n // Helpers used when computing which overlapping collapsed span\n // counts as the larger one.\n function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0 }\n function extraRight(marker) { return marker.inclusiveRight ? 1 : 0 }\n\n // Returns a number indicating which of two overlapping collapsed\n // spans is larger (and thus includes the other). Falls back to\n // comparing ids when the spans cover exactly the same range.\n function compareCollapsedMarkers(a, b) {\n var lenDiff = a.lines.length - b.lines.length;\n if (lenDiff != 0) { return lenDiff }\n var aPos = a.find(), bPos = b.find();\n var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b);\n if (fromCmp) { return -fromCmp }\n var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b);\n if (toCmp) { return toCmp }\n return b.id - a.id\n }\n\n // Find out whether a line ends or starts in a collapsed span. If\n // so, return the marker for that span.\n function collapsedSpanAtSide(line, start) {\n var sps = sawCollapsedSpans && line.markedSpans, found;\n if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n sp = sps[i];\n if (sp.marker.collapsed && (start ? sp.from : sp.to) == null &&\n (!found || compareCollapsedMarkers(found, sp.marker) < 0))\n { found = sp.marker; }\n } }\n return found\n }\n function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true) }\n function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false) }\n\n function collapsedSpanAround(line, ch) {\n var sps = sawCollapsedSpans && line.markedSpans, found;\n if (sps) { for (var i = 0; i < sps.length; ++i) {\n var sp = sps[i];\n if (sp.marker.collapsed && (sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) &&\n (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { found = sp.marker; }\n } }\n return found\n }\n\n // Test whether there exists a collapsed span that partially\n // overlaps (covers the start or end, but not both) of a new span.\n // Such overlap is not allowed.\n function conflictingCollapsedRange(doc, lineNo, from, to, marker) {\n var line = getLine(doc, lineNo);\n var sps = sawCollapsedSpans && line.markedSpans;\n if (sps) { for (var i = 0; i < sps.length; ++i) {\n var sp = sps[i];\n if (!sp.marker.collapsed) { continue }\n var found = sp.marker.find(0);\n var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker);\n var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker);\n if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) { continue }\n if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) ||\n fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0))\n { return true }\n } }\n }\n\n // A visual line is a line as drawn on the screen. Folding, for\n // example, can cause multiple logical lines to appear on the same\n // visual line. This finds the start of the visual line that the\n // given line is part of (usually that is the line itself).\n function visualLine(line) {\n var merged;\n while (merged = collapsedSpanAtStart(line))\n { line = merged.find(-1, true).line; }\n return line\n }\n\n function visualLineEnd(line) {\n var merged;\n while (merged = collapsedSpanAtEnd(line))\n { line = merged.find(1, true).line; }\n return line\n }\n\n // Returns an array of logical lines that continue the visual line\n // started by the argument, or undefined if there are no such lines.\n function visualLineContinued(line) {\n var merged, lines;\n while (merged = collapsedSpanAtEnd(line)) {\n line = merged.find(1, true).line\n ;(lines || (lines = [])).push(line);\n }\n return lines\n }\n\n // Get the line number of the start of the visual line that the\n // given line number is part of.\n function visualLineNo(doc, lineN) {\n var line = getLine(doc, lineN), vis = visualLine(line);\n if (line == vis) { return lineN }\n return lineNo(vis)\n }\n\n // Get the line number of the start of the next visual line after\n // the given line.\n function visualLineEndNo(doc, lineN) {\n if (lineN > doc.lastLine()) { return lineN }\n var line = getLine(doc, lineN), merged;\n if (!lineIsHidden(doc, line)) { return lineN }\n while (merged = collapsedSpanAtEnd(line))\n { line = merged.find(1, true).line; }\n return lineNo(line) + 1\n }\n\n // Compute whether a line is hidden. Lines count as hidden when they\n // are part of a visual line that starts with another line, or when\n // they are entirely covered by collapsed, non-widget span.\n function lineIsHidden(doc, line) {\n var sps = sawCollapsedSpans && line.markedSpans;\n if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n sp = sps[i];\n if (!sp.marker.collapsed) { continue }\n if (sp.from == null) { return true }\n if (sp.marker.widgetNode) { continue }\n if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp))\n { return true }\n } }\n }\n function lineIsHiddenInner(doc, line, span) {\n if (span.to == null) {\n var end = span.marker.find(1, true);\n return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker))\n }\n if (span.marker.inclusiveRight && span.to == line.text.length)\n { return true }\n for (var sp = (void 0), i = 0; i < line.markedSpans.length; ++i) {\n sp = line.markedSpans[i];\n if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to &&\n (sp.to == null || sp.to != span.from) &&\n (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&\n lineIsHiddenInner(doc, line, sp)) { return true }\n }\n }\n\n // Find the height above the given line.\n function heightAtLine(lineObj) {\n lineObj = visualLine(lineObj);\n\n var h = 0, chunk = lineObj.parent;\n for (var i = 0; i < chunk.lines.length; ++i) {\n var line = chunk.lines[i];\n if (line == lineObj) { break }\n else { h += line.height; }\n }\n for (var p = chunk.parent; p; chunk = p, p = chunk.parent) {\n for (var i$1 = 0; i$1 < p.children.length; ++i$1) {\n var cur = p.children[i$1];\n if (cur == chunk) { break }\n else { h += cur.height; }\n }\n }\n return h\n }\n\n // Compute the character length of a line, taking into account\n // collapsed ranges (see markText) that might hide parts, and join\n // other lines onto it.\n function lineLength(line) {\n if (line.height == 0) { return 0 }\n var len = line.text.length, merged, cur = line;\n while (merged = collapsedSpanAtStart(cur)) {\n var found = merged.find(0, true);\n cur = found.from.line;\n len += found.from.ch - found.to.ch;\n }\n cur = line;\n while (merged = collapsedSpanAtEnd(cur)) {\n var found$1 = merged.find(0, true);\n len -= cur.text.length - found$1.from.ch;\n cur = found$1.to.line;\n len += cur.text.length - found$1.to.ch;\n }\n return len\n }\n\n // Find the longest line in the document.\n function findMaxLine(cm) {\n var d = cm.display, doc = cm.doc;\n d.maxLine = getLine(doc, doc.first);\n d.maxLineLength = lineLength(d.maxLine);\n d.maxLineChanged = true;\n doc.iter(function (line) {\n var len = lineLength(line);\n if (len > d.maxLineLength) {\n d.maxLineLength = len;\n d.maxLine = line;\n }\n });\n }\n\n // LINE DATA STRUCTURE\n\n // Line objects. These hold state related to a line, including\n // highlighting info (the styles array).\n var Line = function(text, markedSpans, estimateHeight) {\n this.text = text;\n attachMarkedSpans(this, markedSpans);\n this.height = estimateHeight ? estimateHeight(this) : 1;\n };\n\n Line.prototype.lineNo = function () { return lineNo(this) };\n eventMixin(Line);\n\n // Change the content (text, markers) of a line. Automatically\n // invalidates cached information and tries to re-estimate the\n // line's height.\n function updateLine(line, text, markedSpans, estimateHeight) {\n line.text = text;\n if (line.stateAfter) { line.stateAfter = null; }\n if (line.styles) { line.styles = null; }\n if (line.order != null) { line.order = null; }\n detachMarkedSpans(line);\n attachMarkedSpans(line, markedSpans);\n var estHeight = estimateHeight ? estimateHeight(line) : 1;\n if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n }\n\n // Detach a line from the document tree and its markers.\n function cleanUpLine(line) {\n line.parent = null;\n detachMarkedSpans(line);\n }\n\n // Convert a style as returned by a mode (either null, or a string\n // containing one or more styles) to a CSS style. This is cached,\n // and also looks for line-wide styles.\n var styleToClassCache = {}, styleToClassCacheWithMode = {};\n function interpretTokenStyle(style, options) {\n if (!style || /^\\s*$/.test(style)) { return null }\n var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache;\n return cache[style] ||\n (cache[style] = style.replace(/\\S+/g, \"cm-$&\"))\n }\n\n // Render the DOM representation of the text of a line. Also builds\n // up a 'line map', which points at the DOM nodes that represent\n // specific stretches of text, and is used by the measuring code.\n // The returned object contains the DOM node, this map, and\n // information about line-wide styles that were set by the mode.\n function buildLineContent(cm, lineView) {\n // The padding-right forces the element to have a 'border', which\n // is needed on Webkit to be able to get line-level bounding\n // rectangles for it (in measureChar).\n var content = eltP(\"span\", null, null, webkit ? \"padding-right: .1px\" : null);\n var builder = {pre: eltP(\"pre\", [content], \"CodeMirror-line\"), content: content,\n col: 0, pos: 0, cm: cm,\n trailingSpace: false,\n splitSpaces: cm.getOption(\"lineWrapping\")};\n lineView.measure = {};\n\n // Iterate over the logical lines that make up this visual line.\n for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) {\n var line = i ? lineView.rest[i - 1] : lineView.line, order = (void 0);\n builder.pos = 0;\n builder.addToken = buildToken;\n // Optionally wire in some hacks into the token-rendering\n // algorithm, to deal with browser quirks.\n if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line, cm.doc.direction)))\n { builder.addToken = buildTokenBadBidi(builder.addToken, order); }\n builder.map = [];\n var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line);\n insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate));\n if (line.styleClasses) {\n if (line.styleClasses.bgClass)\n { builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || \"\"); }\n if (line.styleClasses.textClass)\n { builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || \"\"); }\n }\n\n // Ensure at least a single node is present, for measuring.\n if (builder.map.length == 0)\n { builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); }\n\n // Store the map and a cache object for the current logical line\n if (i == 0) {\n lineView.measure.map = builder.map;\n lineView.measure.cache = {};\n } else {\n (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map)\n ;(lineView.measure.caches || (lineView.measure.caches = [])).push({});\n }\n }\n\n // See issue #2901\n if (webkit) {\n var last = builder.content.lastChild;\n if (/\\bcm-tab\\b/.test(last.className) || (last.querySelector && last.querySelector(\".cm-tab\")))\n { builder.content.className = \"cm-tab-wrap-hack\"; }\n }\n\n signal(cm, \"renderLine\", cm, lineView.line, builder.pre);\n if (builder.pre.className)\n { builder.textClass = joinClasses(builder.pre.className, builder.textClass || \"\"); }\n\n return builder\n }\n\n function defaultSpecialCharPlaceholder(ch) {\n var token = elt(\"span\", \"\\u2022\", \"cm-invalidchar\");\n token.title = \"\\\\u\" + ch.charCodeAt(0).toString(16);\n token.setAttribute(\"aria-label\", token.title);\n return token\n }\n\n // Build up the DOM representation for a single token, and add it to\n // the line map. Takes care to render special characters separately.\n function buildToken(builder, text, style, startStyle, endStyle, css, attributes) {\n if (!text) { return }\n var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text;\n var special = builder.cm.state.specialChars, mustWrap = false;\n var content;\n if (!special.test(text)) {\n builder.col += text.length;\n content = document.createTextNode(displayText);\n builder.map.push(builder.pos, builder.pos + text.length, content);\n if (ie && ie_version < 9) { mustWrap = true; }\n builder.pos += text.length;\n } else {\n content = document.createDocumentFragment();\n var pos = 0;\n while (true) {\n special.lastIndex = pos;\n var m = special.exec(text);\n var skipped = m ? m.index - pos : text.length - pos;\n if (skipped) {\n var txt = document.createTextNode(displayText.slice(pos, pos + skipped));\n if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt])); }\n else { content.appendChild(txt); }\n builder.map.push(builder.pos, builder.pos + skipped, txt);\n builder.col += skipped;\n builder.pos += skipped;\n }\n if (!m) { break }\n pos += skipped + 1;\n var txt$1 = (void 0);\n if (m[0] == \"\\t\") {\n var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize;\n txt$1 = content.appendChild(elt(\"span\", spaceStr(tabWidth), \"cm-tab\"));\n txt$1.setAttribute(\"role\", \"presentation\");\n txt$1.setAttribute(\"cm-text\", \"\\t\");\n builder.col += tabWidth;\n } else if (m[0] == \"\\r\" || m[0] == \"\\n\") {\n txt$1 = content.appendChild(elt(\"span\", m[0] == \"\\r\" ? \"\\u240d\" : \"\\u2424\", \"cm-invalidchar\"));\n txt$1.setAttribute(\"cm-text\", m[0]);\n builder.col += 1;\n } else {\n txt$1 = builder.cm.options.specialCharPlaceholder(m[0]);\n txt$1.setAttribute(\"cm-text\", m[0]);\n if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt$1])); }\n else { content.appendChild(txt$1); }\n builder.col += 1;\n }\n builder.map.push(builder.pos, builder.pos + 1, txt$1);\n builder.pos++;\n }\n }\n builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32;\n if (style || startStyle || endStyle || mustWrap || css || attributes) {\n var fullStyle = style || \"\";\n if (startStyle) { fullStyle += startStyle; }\n if (endStyle) { fullStyle += endStyle; }\n var token = elt(\"span\", [content], fullStyle, css);\n if (attributes) {\n for (var attr in attributes) { if (attributes.hasOwnProperty(attr) && attr != \"style\" && attr != \"class\")\n { token.setAttribute(attr, attributes[attr]); } }\n }\n return builder.content.appendChild(token)\n }\n builder.content.appendChild(content);\n }\n\n // Change some spaces to NBSP to prevent the browser from collapsing\n // trailing spaces at the end of a line when rendering text (issue #1362).\n function splitSpaces(text, trailingBefore) {\n if (text.length > 1 && !/ /.test(text)) { return text }\n var spaceBefore = trailingBefore, result = \"\";\n for (var i = 0; i < text.length; i++) {\n var ch = text.charAt(i);\n if (ch == \" \" && spaceBefore && (i == text.length - 1 || text.charCodeAt(i + 1) == 32))\n { ch = \"\\u00a0\"; }\n result += ch;\n spaceBefore = ch == \" \";\n }\n return result\n }\n\n // Work around nonsense dimensions being reported for stretches of\n // right-to-left text.\n function buildTokenBadBidi(inner, order) {\n return function (builder, text, style, startStyle, endStyle, css, attributes) {\n style = style ? style + \" cm-force-border\" : \"cm-force-border\";\n var start = builder.pos, end = start + text.length;\n for (;;) {\n // Find the part that overlaps with the start of this text\n var part = (void 0);\n for (var i = 0; i < order.length; i++) {\n part = order[i];\n if (part.to > start && part.from <= start) { break }\n }\n if (part.to >= end) { return inner(builder, text, style, startStyle, endStyle, css, attributes) }\n inner(builder, text.slice(0, part.to - start), style, startStyle, null, css, attributes);\n startStyle = null;\n text = text.slice(part.to - start);\n start = part.to;\n }\n }\n }\n\n function buildCollapsedSpan(builder, size, marker, ignoreWidget) {\n var widget = !ignoreWidget && marker.widgetNode;\n if (widget) { builder.map.push(builder.pos, builder.pos + size, widget); }\n if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) {\n if (!widget)\n { widget = builder.content.appendChild(document.createElement(\"span\")); }\n widget.setAttribute(\"cm-marker\", marker.id);\n }\n if (widget) {\n builder.cm.display.input.setUneditable(widget);\n builder.content.appendChild(widget);\n }\n builder.pos += size;\n builder.trailingSpace = false;\n }\n\n // Outputs a number of spans to make up a line, taking highlighting\n // and marked text into account.\n function insertLineContent(line, builder, styles) {\n var spans = line.markedSpans, allText = line.text, at = 0;\n if (!spans) {\n for (var i$1 = 1; i$1 < styles.length; i$1+=2)\n { builder.addToken(builder, allText.slice(at, at = styles[i$1]), interpretTokenStyle(styles[i$1+1], builder.cm.options)); }\n return\n }\n\n var len = allText.length, pos = 0, i = 1, text = \"\", style, css;\n var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, collapsed, attributes;\n for (;;) {\n if (nextChange == pos) { // Update current marker set\n spanStyle = spanEndStyle = spanStartStyle = css = \"\";\n attributes = null;\n collapsed = null; nextChange = Infinity;\n var foundBookmarks = [], endStyles = (void 0);\n for (var j = 0; j < spans.length; ++j) {\n var sp = spans[j], m = sp.marker;\n if (m.type == \"bookmark\" && sp.from == pos && m.widgetNode) {\n foundBookmarks.push(m);\n } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) {\n if (sp.to != null && sp.to != pos && nextChange > sp.to) {\n nextChange = sp.to;\n spanEndStyle = \"\";\n }\n if (m.className) { spanStyle += \" \" + m.className; }\n if (m.css) { css = (css ? css + \";\" : \"\") + m.css; }\n if (m.startStyle && sp.from == pos) { spanStartStyle += \" \" + m.startStyle; }\n if (m.endStyle && sp.to == nextChange) { (endStyles || (endStyles = [])).push(m.endStyle, sp.to); }\n // support for the old title property\n // https://github.com/codemirror/CodeMirror/pull/5673\n if (m.title) { (attributes || (attributes = {})).title = m.title; }\n if (m.attributes) {\n for (var attr in m.attributes)\n { (attributes || (attributes = {}))[attr] = m.attributes[attr]; }\n }\n if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0))\n { collapsed = sp; }\n } else if (sp.from > pos && nextChange > sp.from) {\n nextChange = sp.from;\n }\n }\n if (endStyles) { for (var j$1 = 0; j$1 < endStyles.length; j$1 += 2)\n { if (endStyles[j$1 + 1] == nextChange) { spanEndStyle += \" \" + endStyles[j$1]; } } }\n\n if (!collapsed || collapsed.from == pos) { for (var j$2 = 0; j$2 < foundBookmarks.length; ++j$2)\n { buildCollapsedSpan(builder, 0, foundBookmarks[j$2]); } }\n if (collapsed && (collapsed.from || 0) == pos) {\n buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos,\n collapsed.marker, collapsed.from == null);\n if (collapsed.to == null) { return }\n if (collapsed.to == pos) { collapsed = false; }\n }\n }\n if (pos >= len) { break }\n\n var upto = Math.min(len, nextChange);\n while (true) {\n if (text) {\n var end = pos + text.length;\n if (!collapsed) {\n var tokenText = end > upto ? text.slice(0, upto - pos) : text;\n builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle,\n spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : \"\", css, attributes);\n }\n if (end >= upto) {text = text.slice(upto - pos); pos = upto; break}\n pos = end;\n spanStartStyle = \"\";\n }\n text = allText.slice(at, at = styles[i++]);\n style = interpretTokenStyle(styles[i++], builder.cm.options);\n }\n }\n }\n\n\n // These objects are used to represent the visible (currently drawn)\n // part of the document. A LineView may correspond to multiple\n // logical lines, if those are connected by collapsed ranges.\n function LineView(doc, line, lineN) {\n // The starting line\n this.line = line;\n // Continuing lines, if any\n this.rest = visualLineContinued(line);\n // Number of logical lines in this visual line\n this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1;\n this.node = this.text = null;\n this.hidden = lineIsHidden(doc, line);\n }\n\n // Create a range of LineView objects for the given lines.\n function buildViewArray(cm, from, to) {\n var array = [], nextPos;\n for (var pos = from; pos < to; pos = nextPos) {\n var view = new LineView(cm.doc, getLine(cm.doc, pos), pos);\n nextPos = pos + view.size;\n array.push(view);\n }\n return array\n }\n\n var operationGroup = null;\n\n function pushOperation(op) {\n if (operationGroup) {\n operationGroup.ops.push(op);\n } else {\n op.ownsGroup = operationGroup = {\n ops: [op],\n delayedCallbacks: []\n };\n }\n }\n\n function fireCallbacksForOps(group) {\n // Calls delayed callbacks and cursorActivity handlers until no\n // new ones appear\n var callbacks = group.delayedCallbacks, i = 0;\n do {\n for (; i < callbacks.length; i++)\n { callbacks[i].call(null); }\n for (var j = 0; j < group.ops.length; j++) {\n var op = group.ops[j];\n if (op.cursorActivityHandlers)\n { while (op.cursorActivityCalled < op.cursorActivityHandlers.length)\n { op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm); } }\n }\n } while (i < callbacks.length)\n }\n\n function finishOperation(op, endCb) {\n var group = op.ownsGroup;\n if (!group) { return }\n\n try { fireCallbacksForOps(group); }\n finally {\n operationGroup = null;\n endCb(group);\n }\n }\n\n var orphanDelayedCallbacks = null;\n\n // Often, we want to signal events at a point where we are in the\n // middle of some work, but don't want the handler to start calling\n // other methods on the editor, which might be in an inconsistent\n // state or simply not expect any other events to happen.\n // signalLater looks whether there are any handlers, and schedules\n // them to be executed when the last operation ends, or, if no\n // operation is active, when a timeout fires.\n function signalLater(emitter, type /*, values...*/) {\n var arr = getHandlers(emitter, type);\n if (!arr.length) { return }\n var args = Array.prototype.slice.call(arguments, 2), list;\n if (operationGroup) {\n list = operationGroup.delayedCallbacks;\n } else if (orphanDelayedCallbacks) {\n list = orphanDelayedCallbacks;\n } else {\n list = orphanDelayedCallbacks = [];\n setTimeout(fireOrphanDelayed, 0);\n }\n var loop = function ( i ) {\n list.push(function () { return arr[i].apply(null, args); });\n };\n\n for (var i = 0; i < arr.length; ++i)\n loop( i );\n }\n\n function fireOrphanDelayed() {\n var delayed = orphanDelayedCallbacks;\n orphanDelayedCallbacks = null;\n for (var i = 0; i < delayed.length; ++i) { delayed[i](); }\n }\n\n // When an aspect of a line changes, a string is added to\n // lineView.changes. This updates the relevant part of the line's\n // DOM structure.\n function updateLineForChanges(cm, lineView, lineN, dims) {\n for (var j = 0; j < lineView.changes.length; j++) {\n var type = lineView.changes[j];\n if (type == \"text\") { updateLineText(cm, lineView); }\n else if (type == \"gutter\") { updateLineGutter(cm, lineView, lineN, dims); }\n else if (type == \"class\") { updateLineClasses(cm, lineView); }\n else if (type == \"widget\") { updateLineWidgets(cm, lineView, dims); }\n }\n lineView.changes = null;\n }\n\n // Lines with gutter elements, widgets or a background class need to\n // be wrapped, and have the extra elements added to the wrapper div\n function ensureLineWrapped(lineView) {\n if (lineView.node == lineView.text) {\n lineView.node = elt(\"div\", null, null, \"position: relative\");\n if (lineView.text.parentNode)\n { lineView.text.parentNode.replaceChild(lineView.node, lineView.text); }\n lineView.node.appendChild(lineView.text);\n if (ie && ie_version < 8) { lineView.node.style.zIndex = 2; }\n }\n return lineView.node\n }\n\n function updateLineBackground(cm, lineView) {\n var cls = lineView.bgClass ? lineView.bgClass + \" \" + (lineView.line.bgClass || \"\") : lineView.line.bgClass;\n if (cls) { cls += \" CodeMirror-linebackground\"; }\n if (lineView.background) {\n if (cls) { lineView.background.className = cls; }\n else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; }\n } else if (cls) {\n var wrap = ensureLineWrapped(lineView);\n lineView.background = wrap.insertBefore(elt(\"div\", null, cls), wrap.firstChild);\n cm.display.input.setUneditable(lineView.background);\n }\n }\n\n // Wrapper around buildLineContent which will reuse the structure\n // in display.externalMeasured when possible.\n function getLineContent(cm, lineView) {\n var ext = cm.display.externalMeasured;\n if (ext && ext.line == lineView.line) {\n cm.display.externalMeasured = null;\n lineView.measure = ext.measure;\n return ext.built\n }\n return buildLineContent(cm, lineView)\n }\n\n // Redraw the line's text. Interacts with the background and text\n // classes because the mode may output tokens that influence these\n // classes.\n function updateLineText(cm, lineView) {\n var cls = lineView.text.className;\n var built = getLineContent(cm, lineView);\n if (lineView.text == lineView.node) { lineView.node = built.pre; }\n lineView.text.parentNode.replaceChild(built.pre, lineView.text);\n lineView.text = built.pre;\n if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) {\n lineView.bgClass = built.bgClass;\n lineView.textClass = built.textClass;\n updateLineClasses(cm, lineView);\n } else if (cls) {\n lineView.text.className = cls;\n }\n }\n\n function updateLineClasses(cm, lineView) {\n updateLineBackground(cm, lineView);\n if (lineView.line.wrapClass)\n { ensureLineWrapped(lineView).className = lineView.line.wrapClass; }\n else if (lineView.node != lineView.text)\n { lineView.node.className = \"\"; }\n var textClass = lineView.textClass ? lineView.textClass + \" \" + (lineView.line.textClass || \"\") : lineView.line.textClass;\n lineView.text.className = textClass || \"\";\n }\n\n function updateLineGutter(cm, lineView, lineN, dims) {\n if (lineView.gutter) {\n lineView.node.removeChild(lineView.gutter);\n lineView.gutter = null;\n }\n if (lineView.gutterBackground) {\n lineView.node.removeChild(lineView.gutterBackground);\n lineView.gutterBackground = null;\n }\n if (lineView.line.gutterClass) {\n var wrap = ensureLineWrapped(lineView);\n lineView.gutterBackground = elt(\"div\", null, \"CodeMirror-gutter-background \" + lineView.line.gutterClass,\n (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px; width: \" + (dims.gutterTotalWidth) + \"px\"));\n cm.display.input.setUneditable(lineView.gutterBackground);\n wrap.insertBefore(lineView.gutterBackground, lineView.text);\n }\n var markers = lineView.line.gutterMarkers;\n if (cm.options.lineNumbers || markers) {\n var wrap$1 = ensureLineWrapped(lineView);\n var gutterWrap = lineView.gutter = elt(\"div\", null, \"CodeMirror-gutter-wrapper\", (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px\"));\n cm.display.input.setUneditable(gutterWrap);\n wrap$1.insertBefore(gutterWrap, lineView.text);\n if (lineView.line.gutterClass)\n { gutterWrap.className += \" \" + lineView.line.gutterClass; }\n if (cm.options.lineNumbers && (!markers || !markers[\"CodeMirror-linenumbers\"]))\n { lineView.lineNumber = gutterWrap.appendChild(\n elt(\"div\", lineNumberFor(cm.options, lineN),\n \"CodeMirror-linenumber CodeMirror-gutter-elt\",\n (\"left: \" + (dims.gutterLeft[\"CodeMirror-linenumbers\"]) + \"px; width: \" + (cm.display.lineNumInnerWidth) + \"px\"))); }\n if (markers) { for (var k = 0; k < cm.display.gutterSpecs.length; ++k) {\n var id = cm.display.gutterSpecs[k].className, found = markers.hasOwnProperty(id) && markers[id];\n if (found)\n { gutterWrap.appendChild(elt(\"div\", [found], \"CodeMirror-gutter-elt\",\n (\"left: \" + (dims.gutterLeft[id]) + \"px; width: \" + (dims.gutterWidth[id]) + \"px\"))); }\n } }\n }\n }\n\n function updateLineWidgets(cm, lineView, dims) {\n if (lineView.alignable) { lineView.alignable = null; }\n var isWidget = classTest(\"CodeMirror-linewidget\");\n for (var node = lineView.node.firstChild, next = (void 0); node; node = next) {\n next = node.nextSibling;\n if (isWidget.test(node.className)) { lineView.node.removeChild(node); }\n }\n insertLineWidgets(cm, lineView, dims);\n }\n\n // Build a line's DOM representation from scratch\n function buildLineElement(cm, lineView, lineN, dims) {\n var built = getLineContent(cm, lineView);\n lineView.text = lineView.node = built.pre;\n if (built.bgClass) { lineView.bgClass = built.bgClass; }\n if (built.textClass) { lineView.textClass = built.textClass; }\n\n updateLineClasses(cm, lineView);\n updateLineGutter(cm, lineView, lineN, dims);\n insertLineWidgets(cm, lineView, dims);\n return lineView.node\n }\n\n // A lineView may contain multiple logical lines (when merged by\n // collapsed spans). The widgets for all of them need to be drawn.\n function insertLineWidgets(cm, lineView, dims) {\n insertLineWidgetsFor(cm, lineView.line, lineView, dims, true);\n if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n { insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false); } }\n }\n\n function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) {\n if (!line.widgets) { return }\n var wrap = ensureLineWrapped(lineView);\n for (var i = 0, ws = line.widgets; i < ws.length; ++i) {\n var widget = ws[i], node = elt(\"div\", [widget.node], \"CodeMirror-linewidget\" + (widget.className ? \" \" + widget.className : \"\"));\n if (!widget.handleMouseEvents) { node.setAttribute(\"cm-ignore-events\", \"true\"); }\n positionLineWidget(widget, node, lineView, dims);\n cm.display.input.setUneditable(node);\n if (allowAbove && widget.above)\n { wrap.insertBefore(node, lineView.gutter || lineView.text); }\n else\n { wrap.appendChild(node); }\n signalLater(widget, \"redraw\");\n }\n }\n\n function positionLineWidget(widget, node, lineView, dims) {\n if (widget.noHScroll) {\n (lineView.alignable || (lineView.alignable = [])).push(node);\n var width = dims.wrapperWidth;\n node.style.left = dims.fixedPos + \"px\";\n if (!widget.coverGutter) {\n width -= dims.gutterTotalWidth;\n node.style.paddingLeft = dims.gutterTotalWidth + \"px\";\n }\n node.style.width = width + \"px\";\n }\n if (widget.coverGutter) {\n node.style.zIndex = 5;\n node.style.position = \"relative\";\n if (!widget.noHScroll) { node.style.marginLeft = -dims.gutterTotalWidth + \"px\"; }\n }\n }\n\n function widgetHeight(widget) {\n if (widget.height != null) { return widget.height }\n var cm = widget.doc.cm;\n if (!cm) { return 0 }\n if (!contains(document.body, widget.node)) {\n var parentStyle = \"position: relative;\";\n if (widget.coverGutter)\n { parentStyle += \"margin-left: -\" + cm.display.gutters.offsetWidth + \"px;\"; }\n if (widget.noHScroll)\n { parentStyle += \"width: \" + cm.display.wrapper.clientWidth + \"px;\"; }\n removeChildrenAndAdd(cm.display.measure, elt(\"div\", [widget.node], null, parentStyle));\n }\n return widget.height = widget.node.parentNode.offsetHeight\n }\n\n // Return true when the given mouse event happened in a widget\n function eventInWidget(display, e) {\n for (var n = e_target(e); n != display.wrapper; n = n.parentNode) {\n if (!n || (n.nodeType == 1 && n.getAttribute(\"cm-ignore-events\") == \"true\") ||\n (n.parentNode == display.sizer && n != display.mover))\n { return true }\n }\n }\n\n // POSITION MEASUREMENT\n\n function paddingTop(display) {return display.lineSpace.offsetTop}\n function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight}\n function paddingH(display) {\n if (display.cachedPaddingH) { return display.cachedPaddingH }\n var e = removeChildrenAndAdd(display.measure, elt(\"pre\", \"x\", \"CodeMirror-line-like\"));\n var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle;\n var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)};\n if (!isNaN(data.left) && !isNaN(data.right)) { display.cachedPaddingH = data; }\n return data\n }\n\n function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth }\n function displayWidth(cm) {\n return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth\n }\n function displayHeight(cm) {\n return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight\n }\n\n // Ensure the lineView.wrapping.heights array is populated. This is\n // an array of bottom offsets for the lines that make up a drawn\n // line. When lineWrapping is on, there might be more than one\n // height.\n function ensureLineHeights(cm, lineView, rect) {\n var wrapping = cm.options.lineWrapping;\n var curWidth = wrapping && displayWidth(cm);\n if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) {\n var heights = lineView.measure.heights = [];\n if (wrapping) {\n lineView.measure.width = curWidth;\n var rects = lineView.text.firstChild.getClientRects();\n for (var i = 0; i < rects.length - 1; i++) {\n var cur = rects[i], next = rects[i + 1];\n if (Math.abs(cur.bottom - next.bottom) > 2)\n { heights.push((cur.bottom + next.top) / 2 - rect.top); }\n }\n }\n heights.push(rect.bottom - rect.top);\n }\n }\n\n // Find a line map (mapping character offsets to text nodes) and a\n // measurement cache for the given line number. (A line view might\n // contain multiple lines when collapsed ranges are present.)\n function mapFromLineView(lineView, line, lineN) {\n if (lineView.line == line)\n { return {map: lineView.measure.map, cache: lineView.measure.cache} }\n for (var i = 0; i < lineView.rest.length; i++)\n { if (lineView.rest[i] == line)\n { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } }\n for (var i$1 = 0; i$1 < lineView.rest.length; i$1++)\n { if (lineNo(lineView.rest[i$1]) > lineN)\n { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } }\n }\n\n // Render a line into the hidden node display.externalMeasured. Used\n // when measurement is needed for a line that's not in the viewport.\n function updateExternalMeasurement(cm, line) {\n line = visualLine(line);\n var lineN = lineNo(line);\n var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN);\n view.lineN = lineN;\n var built = view.built = buildLineContent(cm, view);\n view.text = built.pre;\n removeChildrenAndAdd(cm.display.lineMeasure, built.pre);\n return view\n }\n\n // Get a {top, bottom, left, right} box (in line-local coordinates)\n // for a given character.\n function measureChar(cm, line, ch, bias) {\n return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias)\n }\n\n // Find a line view that corresponds to the given line number.\n function findViewForLine(cm, lineN) {\n if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo)\n { return cm.display.view[findViewIndex(cm, lineN)] }\n var ext = cm.display.externalMeasured;\n if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size)\n { return ext }\n }\n\n // Measurement can be split in two steps, the set-up work that\n // applies to the whole line, and the measurement of the actual\n // character. Functions like coordsChar, that need to do a lot of\n // measurements in a row, can thus ensure that the set-up work is\n // only done once.\n function prepareMeasureForLine(cm, line) {\n var lineN = lineNo(line);\n var view = findViewForLine(cm, lineN);\n if (view && !view.text) {\n view = null;\n } else if (view && view.changes) {\n updateLineForChanges(cm, view, lineN, getDimensions(cm));\n cm.curOp.forceUpdate = true;\n }\n if (!view)\n { view = updateExternalMeasurement(cm, line); }\n\n var info = mapFromLineView(view, line, lineN);\n return {\n line: line, view: view, rect: null,\n map: info.map, cache: info.cache, before: info.before,\n hasHeights: false\n }\n }\n\n // Given a prepared measurement object, measures the position of an\n // actual character (or fetches it from the cache).\n function measureCharPrepared(cm, prepared, ch, bias, varHeight) {\n if (prepared.before) { ch = -1; }\n var key = ch + (bias || \"\"), found;\n if (prepared.cache.hasOwnProperty(key)) {\n found = prepared.cache[key];\n } else {\n if (!prepared.rect)\n { prepared.rect = prepared.view.text.getBoundingClientRect(); }\n if (!prepared.hasHeights) {\n ensureLineHeights(cm, prepared.view, prepared.rect);\n prepared.hasHeights = true;\n }\n found = measureCharInner(cm, prepared, ch, bias);\n if (!found.bogus) { prepared.cache[key] = found; }\n }\n return {left: found.left, right: found.right,\n top: varHeight ? found.rtop : found.top,\n bottom: varHeight ? found.rbottom : found.bottom}\n }\n\n var nullRect = {left: 0, right: 0, top: 0, bottom: 0};\n\n function nodeAndOffsetInLineMap(map, ch, bias) {\n var node, start, end, collapse, mStart, mEnd;\n // First, search the line map for the text node corresponding to,\n // or closest to, the target character.\n for (var i = 0; i < map.length; i += 3) {\n mStart = map[i];\n mEnd = map[i + 1];\n if (ch < mStart) {\n start = 0; end = 1;\n collapse = \"left\";\n } else if (ch < mEnd) {\n start = ch - mStart;\n end = start + 1;\n } else if (i == map.length - 3 || ch == mEnd && map[i + 3] > ch) {\n end = mEnd - mStart;\n start = end - 1;\n if (ch >= mEnd) { collapse = \"right\"; }\n }\n if (start != null) {\n node = map[i + 2];\n if (mStart == mEnd && bias == (node.insertLeft ? \"left\" : \"right\"))\n { collapse = bias; }\n if (bias == \"left\" && start == 0)\n { while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) {\n node = map[(i -= 3) + 2];\n collapse = \"left\";\n } }\n if (bias == \"right\" && start == mEnd - mStart)\n { while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) {\n node = map[(i += 3) + 2];\n collapse = \"right\";\n } }\n break\n }\n }\n return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd}\n }\n\n function getUsefulRect(rects, bias) {\n var rect = nullRect;\n if (bias == \"left\") { for (var i = 0; i < rects.length; i++) {\n if ((rect = rects[i]).left != rect.right) { break }\n } } else { for (var i$1 = rects.length - 1; i$1 >= 0; i$1--) {\n if ((rect = rects[i$1]).left != rect.right) { break }\n } }\n return rect\n }\n\n function measureCharInner(cm, prepared, ch, bias) {\n var place = nodeAndOffsetInLineMap(prepared.map, ch, bias);\n var node = place.node, start = place.start, end = place.end, collapse = place.collapse;\n\n var rect;\n if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates.\n for (var i$1 = 0; i$1 < 4; i$1++) { // Retry a maximum of 4 times when nonsense rectangles are returned\n while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) { --start; }\n while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) { ++end; }\n if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart)\n { rect = node.parentNode.getBoundingClientRect(); }\n else\n { rect = getUsefulRect(range(node, start, end).getClientRects(), bias); }\n if (rect.left || rect.right || start == 0) { break }\n end = start;\n start = start - 1;\n collapse = \"right\";\n }\n if (ie && ie_version < 11) { rect = maybeUpdateRectForZooming(cm.display.measure, rect); }\n } else { // If it is a widget, simply get the box for the whole widget.\n if (start > 0) { collapse = bias = \"right\"; }\n var rects;\n if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1)\n { rect = rects[bias == \"right\" ? rects.length - 1 : 0]; }\n else\n { rect = node.getBoundingClientRect(); }\n }\n if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) {\n var rSpan = node.parentNode.getClientRects()[0];\n if (rSpan)\n { rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom}; }\n else\n { rect = nullRect; }\n }\n\n var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top;\n var mid = (rtop + rbot) / 2;\n var heights = prepared.view.measure.heights;\n var i = 0;\n for (; i < heights.length - 1; i++)\n { if (mid < heights[i]) { break } }\n var top = i ? heights[i - 1] : 0, bot = heights[i];\n var result = {left: (collapse == \"right\" ? rect.right : rect.left) - prepared.rect.left,\n right: (collapse == \"left\" ? rect.left : rect.right) - prepared.rect.left,\n top: top, bottom: bot};\n if (!rect.left && !rect.right) { result.bogus = true; }\n if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; }\n\n return result\n }\n\n // Work around problem with bounding client rects on ranges being\n // returned incorrectly when zoomed on IE10 and below.\n function maybeUpdateRectForZooming(measure, rect) {\n if (!window.screen || screen.logicalXDPI == null ||\n screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure))\n { return rect }\n var scaleX = screen.logicalXDPI / screen.deviceXDPI;\n var scaleY = screen.logicalYDPI / screen.deviceYDPI;\n return {left: rect.left * scaleX, right: rect.right * scaleX,\n top: rect.top * scaleY, bottom: rect.bottom * scaleY}\n }\n\n function clearLineMeasurementCacheFor(lineView) {\n if (lineView.measure) {\n lineView.measure.cache = {};\n lineView.measure.heights = null;\n if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n { lineView.measure.caches[i] = {}; } }\n }\n }\n\n function clearLineMeasurementCache(cm) {\n cm.display.externalMeasure = null;\n removeChildren(cm.display.lineMeasure);\n for (var i = 0; i < cm.display.view.length; i++)\n { clearLineMeasurementCacheFor(cm.display.view[i]); }\n }\n\n function clearCaches(cm) {\n clearLineMeasurementCache(cm);\n cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null;\n if (!cm.options.lineWrapping) { cm.display.maxLineChanged = true; }\n cm.display.lineNumChars = null;\n }\n\n function pageScrollX() {\n // Work around https://bugs.chromium.org/p/chromium/issues/detail?id=489206\n // which causes page_Offset and bounding client rects to use\n // different reference viewports and invalidate our calculations.\n if (chrome && android) { return -(document.body.getBoundingClientRect().left - parseInt(getComputedStyle(document.body).marginLeft)) }\n return window.pageXOffset || (document.documentElement || document.body).scrollLeft\n }\n function pageScrollY() {\n if (chrome && android) { return -(document.body.getBoundingClientRect().top - parseInt(getComputedStyle(document.body).marginTop)) }\n return window.pageYOffset || (document.documentElement || document.body).scrollTop\n }\n\n function widgetTopHeight(lineObj) {\n var height = 0;\n if (lineObj.widgets) { for (var i = 0; i < lineObj.widgets.length; ++i) { if (lineObj.widgets[i].above)\n { height += widgetHeight(lineObj.widgets[i]); } } }\n return height\n }\n\n // Converts a {top, bottom, left, right} box from line-local\n // coordinates into another coordinate system. Context may be one of\n // \"line\", \"div\" (display.lineDiv), \"local\"./null (editor), \"window\",\n // or \"page\".\n function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) {\n if (!includeWidgets) {\n var height = widgetTopHeight(lineObj);\n rect.top += height; rect.bottom += height;\n }\n if (context == \"line\") { return rect }\n if (!context) { context = \"local\"; }\n var yOff = heightAtLine(lineObj);\n if (context == \"local\") { yOff += paddingTop(cm.display); }\n else { yOff -= cm.display.viewOffset; }\n if (context == \"page\" || context == \"window\") {\n var lOff = cm.display.lineSpace.getBoundingClientRect();\n yOff += lOff.top + (context == \"window\" ? 0 : pageScrollY());\n var xOff = lOff.left + (context == \"window\" ? 0 : pageScrollX());\n rect.left += xOff; rect.right += xOff;\n }\n rect.top += yOff; rect.bottom += yOff;\n return rect\n }\n\n // Coverts a box from \"div\" coords to another coordinate system.\n // Context may be \"window\", \"page\", \"div\", or \"local\"./null.\n function fromCoordSystem(cm, coords, context) {\n if (context == \"div\") { return coords }\n var left = coords.left, top = coords.top;\n // First move into \"page\" coordinate system\n if (context == \"page\") {\n left -= pageScrollX();\n top -= pageScrollY();\n } else if (context == \"local\" || !context) {\n var localBox = cm.display.sizer.getBoundingClientRect();\n left += localBox.left;\n top += localBox.top;\n }\n\n var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect();\n return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top}\n }\n\n function charCoords(cm, pos, context, lineObj, bias) {\n if (!lineObj) { lineObj = getLine(cm.doc, pos.line); }\n return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context)\n }\n\n // Returns a box for a given cursor position, which may have an\n // 'other' property containing the position of the secondary cursor\n // on a bidi boundary.\n // A cursor Pos(line, char, \"before\") is on the same visual line as `char - 1`\n // and after `char - 1` in writing order of `char - 1`\n // A cursor Pos(line, char, \"after\") is on the same visual line as `char`\n // and before `char` in writing order of `char`\n // Examples (upper-case letters are RTL, lower-case are LTR):\n // Pos(0, 1, ...)\n // before after\n // ab a|b a|b\n // aB a|B aB|\n // Ab |Ab A|b\n // AB B|A B|A\n // Every position after the last character on a line is considered to stick\n // to the last character on the line.\n function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {\n lineObj = lineObj || getLine(cm.doc, pos.line);\n if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n function get(ch, right) {\n var m = measureCharPrepared(cm, preparedMeasure, ch, right ? \"right\" : \"left\", varHeight);\n if (right) { m.left = m.right; } else { m.right = m.left; }\n return intoCoordSystem(cm, lineObj, m, context)\n }\n var order = getOrder(lineObj, cm.doc.direction), ch = pos.ch, sticky = pos.sticky;\n if (ch >= lineObj.text.length) {\n ch = lineObj.text.length;\n sticky = \"before\";\n } else if (ch <= 0) {\n ch = 0;\n sticky = \"after\";\n }\n if (!order) { return get(sticky == \"before\" ? ch - 1 : ch, sticky == \"before\") }\n\n function getBidi(ch, partPos, invert) {\n var part = order[partPos], right = part.level == 1;\n return get(invert ? ch - 1 : ch, right != invert)\n }\n var partPos = getBidiPartAt(order, ch, sticky);\n var other = bidiOther;\n var val = getBidi(ch, partPos, sticky == \"before\");\n if (other != null) { val.other = getBidi(ch, other, sticky != \"before\"); }\n return val\n }\n\n // Used to cheaply estimate the coordinates for a position. Used for\n // intermediate scroll updates.\n function estimateCoords(cm, pos) {\n var left = 0;\n pos = clipPos(cm.doc, pos);\n if (!cm.options.lineWrapping) { left = charWidth(cm.display) * pos.ch; }\n var lineObj = getLine(cm.doc, pos.line);\n var top = heightAtLine(lineObj) + paddingTop(cm.display);\n return {left: left, right: left, top: top, bottom: top + lineObj.height}\n }\n\n // Positions returned by coordsChar contain some extra information.\n // xRel is the relative x position of the input coordinates compared\n // to the found position (so xRel > 0 means the coordinates are to\n // the right of the character position, for example). When outside\n // is true, that means the coordinates lie outside the line's\n // vertical range.\n function PosWithInfo(line, ch, sticky, outside, xRel) {\n var pos = Pos(line, ch, sticky);\n pos.xRel = xRel;\n if (outside) { pos.outside = outside; }\n return pos\n }\n\n // Compute the character position closest to the given coordinates.\n // Input must be lineSpace-local (\"div\" coordinate system).\n function coordsChar(cm, x, y) {\n var doc = cm.doc;\n y += cm.display.viewOffset;\n if (y < 0) { return PosWithInfo(doc.first, 0, null, -1, -1) }\n var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1;\n if (lineN > last)\n { return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, null, 1, 1) }\n if (x < 0) { x = 0; }\n\n var lineObj = getLine(doc, lineN);\n for (;;) {\n var found = coordsCharInner(cm, lineObj, lineN, x, y);\n var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 || found.outside > 0 ? 1 : 0));\n if (!collapsed) { return found }\n var rangeEnd = collapsed.find(1);\n if (rangeEnd.line == lineN) { return rangeEnd }\n lineObj = getLine(doc, lineN = rangeEnd.line);\n }\n }\n\n function wrappedLineExtent(cm, lineObj, preparedMeasure, y) {\n y -= widgetTopHeight(lineObj);\n var end = lineObj.text.length;\n var begin = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; }, end, 0);\n end = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch).top > y; }, begin, end);\n return {begin: begin, end: end}\n }\n\n function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) {\n if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), \"line\").top;\n return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop)\n }\n\n // Returns true if the given side of a box is after the given\n // coordinates, in top-to-bottom, left-to-right order.\n function boxIsAfter(box, x, y, left) {\n return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x\n }\n\n function coordsCharInner(cm, lineObj, lineNo, x, y) {\n // Move y into line-local coordinate space\n y -= heightAtLine(lineObj);\n var preparedMeasure = prepareMeasureForLine(cm, lineObj);\n // When directly calling `measureCharPrepared`, we have to adjust\n // for the widgets at this line.\n var widgetHeight = widgetTopHeight(lineObj);\n var begin = 0, end = lineObj.text.length, ltr = true;\n\n var order = getOrder(lineObj, cm.doc.direction);\n // If the line isn't plain left-to-right text, first figure out\n // which bidi section the coordinates fall into.\n if (order) {\n var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart)\n (cm, lineObj, lineNo, preparedMeasure, order, x, y);\n ltr = part.level != 1;\n // The awkward -1 offsets are needed because findFirst (called\n // on these below) will treat its first bound as inclusive,\n // second as exclusive, but we want to actually address the\n // characters in the part's range\n begin = ltr ? part.from : part.to - 1;\n end = ltr ? part.to : part.from - 1;\n }\n\n // A binary search to find the first character whose bounding box\n // starts after the coordinates. If we run across any whose box wrap\n // the coordinates, store that.\n var chAround = null, boxAround = null;\n var ch = findFirst(function (ch) {\n var box = measureCharPrepared(cm, preparedMeasure, ch);\n box.top += widgetHeight; box.bottom += widgetHeight;\n if (!boxIsAfter(box, x, y, false)) { return false }\n if (box.top <= y && box.left <= x) {\n chAround = ch;\n boxAround = box;\n }\n return true\n }, begin, end);\n\n var baseX, sticky, outside = false;\n // If a box around the coordinates was found, use that\n if (boxAround) {\n // Distinguish coordinates nearer to the left or right side of the box\n var atLeft = x - boxAround.left < boxAround.right - x, atStart = atLeft == ltr;\n ch = chAround + (atStart ? 0 : 1);\n sticky = atStart ? \"after\" : \"before\";\n baseX = atLeft ? boxAround.left : boxAround.right;\n } else {\n // (Adjust for extended bound, if necessary.)\n if (!ltr && (ch == end || ch == begin)) { ch++; }\n // To determine which side to associate with, get the box to the\n // left of the character and compare it's vertical position to the\n // coordinates\n sticky = ch == 0 ? \"after\" : ch == lineObj.text.length ? \"before\" :\n (measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight <= y) == ltr ?\n \"after\" : \"before\";\n // Now get accurate coordinates for this place, in order to get a\n // base X position\n var coords = cursorCoords(cm, Pos(lineNo, ch, sticky), \"line\", lineObj, preparedMeasure);\n baseX = coords.left;\n outside = y < coords.top ? -1 : y >= coords.bottom ? 1 : 0;\n }\n\n ch = skipExtendingChars(lineObj.text, ch, 1);\n return PosWithInfo(lineNo, ch, sticky, outside, x - baseX)\n }\n\n function coordsBidiPart(cm, lineObj, lineNo, preparedMeasure, order, x, y) {\n // Bidi parts are sorted left-to-right, and in a non-line-wrapping\n // situation, we can take this ordering to correspond to the visual\n // ordering. This finds the first part whose end is after the given\n // coordinates.\n var index = findFirst(function (i) {\n var part = order[i], ltr = part.level != 1;\n return boxIsAfter(cursorCoords(cm, Pos(lineNo, ltr ? part.to : part.from, ltr ? \"before\" : \"after\"),\n \"line\", lineObj, preparedMeasure), x, y, true)\n }, 0, order.length - 1);\n var part = order[index];\n // If this isn't the first part, the part's start is also after\n // the coordinates, and the coordinates aren't on the same line as\n // that start, move one part back.\n if (index > 0) {\n var ltr = part.level != 1;\n var start = cursorCoords(cm, Pos(lineNo, ltr ? part.from : part.to, ltr ? \"after\" : \"before\"),\n \"line\", lineObj, preparedMeasure);\n if (boxIsAfter(start, x, y, true) && start.top > y)\n { part = order[index - 1]; }\n }\n return part\n }\n\n function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) {\n // In a wrapped line, rtl text on wrapping boundaries can do things\n // that don't correspond to the ordering in our `order` array at\n // all, so a binary search doesn't work, and we want to return a\n // part that only spans one line so that the binary search in\n // coordsCharInner is safe. As such, we first find the extent of the\n // wrapped line, and then do a flat search in which we discard any\n // spans that aren't on the line.\n var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y);\n var begin = ref.begin;\n var end = ref.end;\n if (/\\s/.test(lineObj.text.charAt(end - 1))) { end--; }\n var part = null, closestDist = null;\n for (var i = 0; i < order.length; i++) {\n var p = order[i];\n if (p.from >= end || p.to <= begin) { continue }\n var ltr = p.level != 1;\n var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right;\n // Weigh against spans ending before this, so that they are only\n // picked if nothing ends after\n var dist = endX < x ? x - endX + 1e9 : endX - x;\n if (!part || closestDist > dist) {\n part = p;\n closestDist = dist;\n }\n }\n if (!part) { part = order[order.length - 1]; }\n // Clip the part to the wrapped line.\n if (part.from < begin) { part = {from: begin, to: part.to, level: part.level}; }\n if (part.to > end) { part = {from: part.from, to: end, level: part.level}; }\n return part\n }\n\n var measureText;\n // Compute the default text height.\n function textHeight(display) {\n if (display.cachedTextHeight != null) { return display.cachedTextHeight }\n if (measureText == null) {\n measureText = elt(\"pre\", null, \"CodeMirror-line-like\");\n // Measure a bunch of lines, for browsers that compute\n // fractional heights.\n for (var i = 0; i < 49; ++i) {\n measureText.appendChild(document.createTextNode(\"x\"));\n measureText.appendChild(elt(\"br\"));\n }\n measureText.appendChild(document.createTextNode(\"x\"));\n }\n removeChildrenAndAdd(display.measure, measureText);\n var height = measureText.offsetHeight / 50;\n if (height > 3) { display.cachedTextHeight = height; }\n removeChildren(display.measure);\n return height || 1\n }\n\n // Compute the default character width.\n function charWidth(display) {\n if (display.cachedCharWidth != null) { return display.cachedCharWidth }\n var anchor = elt(\"span\", \"xxxxxxxxxx\");\n var pre = elt(\"pre\", [anchor], \"CodeMirror-line-like\");\n removeChildrenAndAdd(display.measure, pre);\n var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10;\n if (width > 2) { display.cachedCharWidth = width; }\n return width || 10\n }\n\n // Do a bulk-read of the DOM positions and sizes needed to draw the\n // view, so that we don't interleave reading and writing to the DOM.\n function getDimensions(cm) {\n var d = cm.display, left = {}, width = {};\n var gutterLeft = d.gutters.clientLeft;\n for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) {\n var id = cm.display.gutterSpecs[i].className;\n left[id] = n.offsetLeft + n.clientLeft + gutterLeft;\n width[id] = n.clientWidth;\n }\n return {fixedPos: compensateForHScroll(d),\n gutterTotalWidth: d.gutters.offsetWidth,\n gutterLeft: left,\n gutterWidth: width,\n wrapperWidth: d.wrapper.clientWidth}\n }\n\n // Computes display.scroller.scrollLeft + display.gutters.offsetWidth,\n // but using getBoundingClientRect to get a sub-pixel-accurate\n // result.\n function compensateForHScroll(display) {\n return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left\n }\n\n // Returns a function that estimates the height of a line, to use as\n // first approximation until the line becomes visible (and is thus\n // properly measurable).\n function estimateHeight(cm) {\n var th = textHeight(cm.display), wrapping = cm.options.lineWrapping;\n var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3);\n return function (line) {\n if (lineIsHidden(cm.doc, line)) { return 0 }\n\n var widgetsHeight = 0;\n if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) {\n if (line.widgets[i].height) { widgetsHeight += line.widgets[i].height; }\n } }\n\n if (wrapping)\n { return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th }\n else\n { return widgetsHeight + th }\n }\n }\n\n function estimateLineHeights(cm) {\n var doc = cm.doc, est = estimateHeight(cm);\n doc.iter(function (line) {\n var estHeight = est(line);\n if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n });\n }\n\n // Given a mouse event, find the corresponding position. If liberal\n // is false, it checks whether a gutter or scrollbar was clicked,\n // and returns null if it was. forRect is used by rectangular\n // selections, and tries to estimate a character position even for\n // coordinates beyond the right of the text.\n function posFromMouse(cm, e, liberal, forRect) {\n var display = cm.display;\n if (!liberal && e_target(e).getAttribute(\"cm-not-content\") == \"true\") { return null }\n\n var x, y, space = display.lineSpace.getBoundingClientRect();\n // Fails unpredictably on IE[67] when mouse is dragged around quickly.\n try { x = e.clientX - space.left; y = e.clientY - space.top; }\n catch (e$1) { return null }\n var coords = coordsChar(cm, x, y), line;\n if (forRect && coords.xRel > 0 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) {\n var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length;\n coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff));\n }\n return coords\n }\n\n // Find the view element corresponding to a given line. Return null\n // when the line isn't visible.\n function findViewIndex(cm, n) {\n if (n >= cm.display.viewTo) { return null }\n n -= cm.display.viewFrom;\n if (n < 0) { return null }\n var view = cm.display.view;\n for (var i = 0; i < view.length; i++) {\n n -= view[i].size;\n if (n < 0) { return i }\n }\n }\n\n // Updates the display.view data structure for a given change to the\n // document. From and to are in pre-change coordinates. Lendiff is\n // the amount of lines added or subtracted by the change. This is\n // used for changes that span multiple lines, or change the way\n // lines are divided into visual lines. regLineChange (below)\n // registers single-line changes.\n function regChange(cm, from, to, lendiff) {\n if (from == null) { from = cm.doc.first; }\n if (to == null) { to = cm.doc.first + cm.doc.size; }\n if (!lendiff) { lendiff = 0; }\n\n var display = cm.display;\n if (lendiff && to < display.viewTo &&\n (display.updateLineNumbers == null || display.updateLineNumbers > from))\n { display.updateLineNumbers = from; }\n\n cm.curOp.viewChanged = true;\n\n if (from >= display.viewTo) { // Change after\n if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo)\n { resetView(cm); }\n } else if (to <= display.viewFrom) { // Change before\n if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) {\n resetView(cm);\n } else {\n display.viewFrom += lendiff;\n display.viewTo += lendiff;\n }\n } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap\n resetView(cm);\n } else if (from <= display.viewFrom) { // Top overlap\n var cut = viewCuttingPoint(cm, to, to + lendiff, 1);\n if (cut) {\n display.view = display.view.slice(cut.index);\n display.viewFrom = cut.lineN;\n display.viewTo += lendiff;\n } else {\n resetView(cm);\n }\n } else if (to >= display.viewTo) { // Bottom overlap\n var cut$1 = viewCuttingPoint(cm, from, from, -1);\n if (cut$1) {\n display.view = display.view.slice(0, cut$1.index);\n display.viewTo = cut$1.lineN;\n } else {\n resetView(cm);\n }\n } else { // Gap in the middle\n var cutTop = viewCuttingPoint(cm, from, from, -1);\n var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1);\n if (cutTop && cutBot) {\n display.view = display.view.slice(0, cutTop.index)\n .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN))\n .concat(display.view.slice(cutBot.index));\n display.viewTo += lendiff;\n } else {\n resetView(cm);\n }\n }\n\n var ext = display.externalMeasured;\n if (ext) {\n if (to < ext.lineN)\n { ext.lineN += lendiff; }\n else if (from < ext.lineN + ext.size)\n { display.externalMeasured = null; }\n }\n }\n\n // Register a change to a single line. Type must be one of \"text\",\n // \"gutter\", \"class\", \"widget\"\n function regLineChange(cm, line, type) {\n cm.curOp.viewChanged = true;\n var display = cm.display, ext = cm.display.externalMeasured;\n if (ext && line >= ext.lineN && line < ext.lineN + ext.size)\n { display.externalMeasured = null; }\n\n if (line < display.viewFrom || line >= display.viewTo) { return }\n var lineView = display.view[findViewIndex(cm, line)];\n if (lineView.node == null) { return }\n var arr = lineView.changes || (lineView.changes = []);\n if (indexOf(arr, type) == -1) { arr.push(type); }\n }\n\n // Clear the view.\n function resetView(cm) {\n cm.display.viewFrom = cm.display.viewTo = cm.doc.first;\n cm.display.view = [];\n cm.display.viewOffset = 0;\n }\n\n function viewCuttingPoint(cm, oldN, newN, dir) {\n var index = findViewIndex(cm, oldN), diff, view = cm.display.view;\n if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size)\n { return {index: index, lineN: newN} }\n var n = cm.display.viewFrom;\n for (var i = 0; i < index; i++)\n { n += view[i].size; }\n if (n != oldN) {\n if (dir > 0) {\n if (index == view.length - 1) { return null }\n diff = (n + view[index].size) - oldN;\n index++;\n } else {\n diff = n - oldN;\n }\n oldN += diff; newN += diff;\n }\n while (visualLineNo(cm.doc, newN) != newN) {\n if (index == (dir < 0 ? 0 : view.length - 1)) { return null }\n newN += dir * view[index - (dir < 0 ? 1 : 0)].size;\n index += dir;\n }\n return {index: index, lineN: newN}\n }\n\n // Force the view to cover a given range, adding empty view element\n // or clipping off existing ones as needed.\n function adjustView(cm, from, to) {\n var display = cm.display, view = display.view;\n if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) {\n display.view = buildViewArray(cm, from, to);\n display.viewFrom = from;\n } else {\n if (display.viewFrom > from)\n { display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); }\n else if (display.viewFrom < from)\n { display.view = display.view.slice(findViewIndex(cm, from)); }\n display.viewFrom = from;\n if (display.viewTo < to)\n { display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); }\n else if (display.viewTo > to)\n { display.view = display.view.slice(0, findViewIndex(cm, to)); }\n }\n display.viewTo = to;\n }\n\n // Count the number of lines in the view whose DOM representation is\n // out of date (or nonexistent).\n function countDirtyView(cm) {\n var view = cm.display.view, dirty = 0;\n for (var i = 0; i < view.length; i++) {\n var lineView = view[i];\n if (!lineView.hidden && (!lineView.node || lineView.changes)) { ++dirty; }\n }\n return dirty\n }\n\n function updateSelection(cm) {\n cm.display.input.showSelection(cm.display.input.prepareSelection());\n }\n\n function prepareSelection(cm, primary) {\n if ( primary === void 0 ) primary = true;\n\n var doc = cm.doc, result = {};\n var curFragment = result.cursors = document.createDocumentFragment();\n var selFragment = result.selection = document.createDocumentFragment();\n\n for (var i = 0; i < doc.sel.ranges.length; i++) {\n if (!primary && i == doc.sel.primIndex) { continue }\n var range = doc.sel.ranges[i];\n if (range.from().line >= cm.display.viewTo || range.to().line < cm.display.viewFrom) { continue }\n var collapsed = range.empty();\n if (collapsed || cm.options.showCursorWhenSelecting)\n { drawSelectionCursor(cm, range.head, curFragment); }\n if (!collapsed)\n { drawSelectionRange(cm, range, selFragment); }\n }\n return result\n }\n\n // Draws a cursor for the given range\n function drawSelectionCursor(cm, head, output) {\n var pos = cursorCoords(cm, head, \"div\", null, null, !cm.options.singleCursorHeightPerLine);\n\n var cursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor\"));\n cursor.style.left = pos.left + \"px\";\n cursor.style.top = pos.top + \"px\";\n cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + \"px\";\n\n if (pos.other) {\n // Secondary cursor, shown when on a 'jump' in bi-directional text\n var otherCursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor CodeMirror-secondarycursor\"));\n otherCursor.style.display = \"\";\n otherCursor.style.left = pos.other.left + \"px\";\n otherCursor.style.top = pos.other.top + \"px\";\n otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + \"px\";\n }\n }\n\n function cmpCoords(a, b) { return a.top - b.top || a.left - b.left }\n\n // Draws the given range as a highlighted selection\n function drawSelectionRange(cm, range, output) {\n var display = cm.display, doc = cm.doc;\n var fragment = document.createDocumentFragment();\n var padding = paddingH(cm.display), leftSide = padding.left;\n var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;\n var docLTR = doc.direction == \"ltr\";\n\n function add(left, top, width, bottom) {\n if (top < 0) { top = 0; }\n top = Math.round(top);\n bottom = Math.round(bottom);\n fragment.appendChild(elt(\"div\", null, \"CodeMirror-selected\", (\"position: absolute; left: \" + left + \"px;\\n top: \" + top + \"px; width: \" + (width == null ? rightSide - left : width) + \"px;\\n height: \" + (bottom - top) + \"px\")));\n }\n\n function drawForLine(line, fromArg, toArg) {\n var lineObj = getLine(doc, line);\n var lineLen = lineObj.text.length;\n var start, end;\n function coords(ch, bias) {\n return charCoords(cm, Pos(line, ch), \"div\", lineObj, bias)\n }\n\n function wrapX(pos, dir, side) {\n var extent = wrappedLineExtentChar(cm, lineObj, null, pos);\n var prop = (dir == \"ltr\") == (side == \"after\") ? \"left\" : \"right\";\n var ch = side == \"after\" ? extent.begin : extent.end - (/\\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1);\n return coords(ch, prop)[prop]\n }\n\n var order = getOrder(lineObj, doc.direction);\n iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i) {\n var ltr = dir == \"ltr\";\n var fromPos = coords(from, ltr ? \"left\" : \"right\");\n var toPos = coords(to - 1, ltr ? \"right\" : \"left\");\n\n var openStart = fromArg == null && from == 0, openEnd = toArg == null && to == lineLen;\n var first = i == 0, last = !order || i == order.length - 1;\n if (toPos.top - fromPos.top <= 3) { // Single line\n var openLeft = (docLTR ? openStart : openEnd) && first;\n var openRight = (docLTR ? openEnd : openStart) && last;\n var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left;\n var right = openRight ? rightSide : (ltr ? toPos : fromPos).right;\n add(left, fromPos.top, right - left, fromPos.bottom);\n } else { // Multiple lines\n var topLeft, topRight, botLeft, botRight;\n if (ltr) {\n topLeft = docLTR && openStart && first ? leftSide : fromPos.left;\n topRight = docLTR ? rightSide : wrapX(from, dir, \"before\");\n botLeft = docLTR ? leftSide : wrapX(to, dir, \"after\");\n botRight = docLTR && openEnd && last ? rightSide : toPos.right;\n } else {\n topLeft = !docLTR ? leftSide : wrapX(from, dir, \"before\");\n topRight = !docLTR && openStart && first ? rightSide : fromPos.right;\n botLeft = !docLTR && openEnd && last ? leftSide : toPos.left;\n botRight = !docLTR ? rightSide : wrapX(to, dir, \"after\");\n }\n add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom);\n if (fromPos.bottom < toPos.top) { add(leftSide, fromPos.bottom, null, toPos.top); }\n add(botLeft, toPos.top, botRight - botLeft, toPos.bottom);\n }\n\n if (!start || cmpCoords(fromPos, start) < 0) { start = fromPos; }\n if (cmpCoords(toPos, start) < 0) { start = toPos; }\n if (!end || cmpCoords(fromPos, end) < 0) { end = fromPos; }\n if (cmpCoords(toPos, end) < 0) { end = toPos; }\n });\n return {start: start, end: end}\n }\n\n var sFrom = range.from(), sTo = range.to();\n if (sFrom.line == sTo.line) {\n drawForLine(sFrom.line, sFrom.ch, sTo.ch);\n } else {\n var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line);\n var singleVLine = visualLine(fromLine) == visualLine(toLine);\n var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end;\n var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start;\n if (singleVLine) {\n if (leftEnd.top < rightStart.top - 2) {\n add(leftEnd.right, leftEnd.top, null, leftEnd.bottom);\n add(leftSide, rightStart.top, rightStart.left, rightStart.bottom);\n } else {\n add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom);\n }\n }\n if (leftEnd.bottom < rightStart.top)\n { add(leftSide, leftEnd.bottom, null, rightStart.top); }\n }\n\n output.appendChild(fragment);\n }\n\n // Cursor-blinking\n function restartBlink(cm) {\n if (!cm.state.focused) { return }\n var display = cm.display;\n clearInterval(display.blinker);\n var on = true;\n display.cursorDiv.style.visibility = \"\";\n if (cm.options.cursorBlinkRate > 0)\n { display.blinker = setInterval(function () {\n if (!cm.hasFocus()) { onBlur(cm); }\n display.cursorDiv.style.visibility = (on = !on) ? \"\" : \"hidden\";\n }, cm.options.cursorBlinkRate); }\n else if (cm.options.cursorBlinkRate < 0)\n { display.cursorDiv.style.visibility = \"hidden\"; }\n }\n\n function ensureFocus(cm) {\n if (!cm.hasFocus()) {\n cm.display.input.focus();\n if (!cm.state.focused) { onFocus(cm); }\n }\n }\n\n function delayBlurEvent(cm) {\n cm.state.delayingBlurEvent = true;\n setTimeout(function () { if (cm.state.delayingBlurEvent) {\n cm.state.delayingBlurEvent = false;\n if (cm.state.focused) { onBlur(cm); }\n } }, 100);\n }\n\n function onFocus(cm, e) {\n if (cm.state.delayingBlurEvent && !cm.state.draggingText) { cm.state.delayingBlurEvent = false; }\n\n if (cm.options.readOnly == \"nocursor\") { return }\n if (!cm.state.focused) {\n signal(cm, \"focus\", cm, e);\n cm.state.focused = true;\n addClass(cm.display.wrapper, \"CodeMirror-focused\");\n // This test prevents this from firing when a context\n // menu is closed (since the input reset would kill the\n // select-all detection hack)\n if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) {\n cm.display.input.reset();\n if (webkit) { setTimeout(function () { return cm.display.input.reset(true); }, 20); } // Issue #1730\n }\n cm.display.input.receivedFocus();\n }\n restartBlink(cm);\n }\n function onBlur(cm, e) {\n if (cm.state.delayingBlurEvent) { return }\n\n if (cm.state.focused) {\n signal(cm, \"blur\", cm, e);\n cm.state.focused = false;\n rmClass(cm.display.wrapper, \"CodeMirror-focused\");\n }\n clearInterval(cm.display.blinker);\n setTimeout(function () { if (!cm.state.focused) { cm.display.shift = false; } }, 150);\n }\n\n // Read the actual heights of the rendered lines, and update their\n // stored heights to match.\n function updateHeightsInViewport(cm) {\n var display = cm.display;\n var prevBottom = display.lineDiv.offsetTop;\n for (var i = 0; i < display.view.length; i++) {\n var cur = display.view[i], wrapping = cm.options.lineWrapping;\n var height = (void 0), width = 0;\n if (cur.hidden) { continue }\n if (ie && ie_version < 8) {\n var bot = cur.node.offsetTop + cur.node.offsetHeight;\n height = bot - prevBottom;\n prevBottom = bot;\n } else {\n var box = cur.node.getBoundingClientRect();\n height = box.bottom - box.top;\n // Check that lines don't extend past the right of the current\n // editor width\n if (!wrapping && cur.text.firstChild)\n { width = cur.text.firstChild.getBoundingClientRect().right - box.left - 1; }\n }\n var diff = cur.line.height - height;\n if (diff > .005 || diff < -.005) {\n updateLineHeight(cur.line, height);\n updateWidgetHeight(cur.line);\n if (cur.rest) { for (var j = 0; j < cur.rest.length; j++)\n { updateWidgetHeight(cur.rest[j]); } }\n }\n if (width > cm.display.sizerWidth) {\n var chWidth = Math.ceil(width / charWidth(cm.display));\n if (chWidth > cm.display.maxLineLength) {\n cm.display.maxLineLength = chWidth;\n cm.display.maxLine = cur.line;\n cm.display.maxLineChanged = true;\n }\n }\n }\n }\n\n // Read and store the height of line widgets associated with the\n // given line.\n function updateWidgetHeight(line) {\n if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i) {\n var w = line.widgets[i], parent = w.node.parentNode;\n if (parent) { w.height = parent.offsetHeight; }\n } }\n }\n\n // Compute the lines that are visible in a given viewport (defaults\n // the the current scroll position). viewport may contain top,\n // height, and ensure (see op.scrollToPos) properties.\n function visibleLines(display, doc, viewport) {\n var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop;\n top = Math.floor(top - paddingTop(display));\n var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight;\n\n var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom);\n // Ensure is a {from: {line, ch}, to: {line, ch}} object, and\n // forces those lines into the viewport (if possible).\n if (viewport && viewport.ensure) {\n var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line;\n if (ensureFrom < from) {\n from = ensureFrom;\n to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight);\n } else if (Math.min(ensureTo, doc.lastLine()) >= to) {\n from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight);\n to = ensureTo;\n }\n }\n return {from: from, to: Math.max(to, from + 1)}\n }\n\n // SCROLLING THINGS INTO VIEW\n\n // If an editor sits on the top or bottom of the window, partially\n // scrolled out of view, this ensures that the cursor is visible.\n function maybeScrollWindow(cm, rect) {\n if (signalDOMEvent(cm, \"scrollCursorIntoView\")) { return }\n\n var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;\n if (rect.top + box.top < 0) { doScroll = true; }\n else if (rect.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) { doScroll = false; }\n if (doScroll != null && !phantom) {\n var scrollNode = elt(\"div\", \"\\u200b\", null, (\"position: absolute;\\n top: \" + (rect.top - display.viewOffset - paddingTop(cm.display)) + \"px;\\n height: \" + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + \"px;\\n left: \" + (rect.left) + \"px; width: \" + (Math.max(2, rect.right - rect.left)) + \"px;\"));\n cm.display.lineSpace.appendChild(scrollNode);\n scrollNode.scrollIntoView(doScroll);\n cm.display.lineSpace.removeChild(scrollNode);\n }\n }\n\n // Scroll a given position into view (immediately), verifying that\n // it actually became visible (as line heights are accurately\n // measured, the position of something may 'drift' during drawing).\n function scrollPosIntoView(cm, pos, end, margin) {\n if (margin == null) { margin = 0; }\n var rect;\n if (!cm.options.lineWrapping && pos == end) {\n // Set pos and end to the cursor positions around the character pos sticks to\n // If pos.sticky == \"before\", that is around pos.ch - 1, otherwise around pos.ch\n // If pos == Pos(_, 0, \"before\"), pos and end are unchanged\n pos = pos.ch ? Pos(pos.line, pos.sticky == \"before\" ? pos.ch - 1 : pos.ch, \"after\") : pos;\n end = pos.sticky == \"before\" ? Pos(pos.line, pos.ch + 1, \"before\") : pos;\n }\n for (var limit = 0; limit < 5; limit++) {\n var changed = false;\n var coords = cursorCoords(cm, pos);\n var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);\n rect = {left: Math.min(coords.left, endCoords.left),\n top: Math.min(coords.top, endCoords.top) - margin,\n right: Math.max(coords.left, endCoords.left),\n bottom: Math.max(coords.bottom, endCoords.bottom) + margin};\n var scrollPos = calculateScrollPos(cm, rect);\n var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;\n if (scrollPos.scrollTop != null) {\n updateScrollTop(cm, scrollPos.scrollTop);\n if (Math.abs(cm.doc.scrollTop - startTop) > 1) { changed = true; }\n }\n if (scrollPos.scrollLeft != null) {\n setScrollLeft(cm, scrollPos.scrollLeft);\n if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { changed = true; }\n }\n if (!changed) { break }\n }\n return rect\n }\n\n // Scroll a given set of coordinates into view (immediately).\n function scrollIntoView(cm, rect) {\n var scrollPos = calculateScrollPos(cm, rect);\n if (scrollPos.scrollTop != null) { updateScrollTop(cm, scrollPos.scrollTop); }\n if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); }\n }\n\n // Calculate a new scroll position needed to scroll the given\n // rectangle into view. Returns an object with scrollTop and\n // scrollLeft properties. When these are undefined, the\n // vertical/horizontal position does not need to be adjusted.\n function calculateScrollPos(cm, rect) {\n var display = cm.display, snapMargin = textHeight(cm.display);\n if (rect.top < 0) { rect.top = 0; }\n var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;\n var screen = displayHeight(cm), result = {};\n if (rect.bottom - rect.top > screen) { rect.bottom = rect.top + screen; }\n var docBottom = cm.doc.height + paddingVert(display);\n var atTop = rect.top < snapMargin, atBottom = rect.bottom > docBottom - snapMargin;\n if (rect.top < screentop) {\n result.scrollTop = atTop ? 0 : rect.top;\n } else if (rect.bottom > screentop + screen) {\n var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen);\n if (newTop != screentop) { result.scrollTop = newTop; }\n }\n\n var gutterSpace = cm.options.fixedGutter ? 0 : display.gutters.offsetWidth;\n var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft - gutterSpace;\n var screenw = displayWidth(cm) - display.gutters.offsetWidth;\n var tooWide = rect.right - rect.left > screenw;\n if (tooWide) { rect.right = rect.left + screenw; }\n if (rect.left < 10)\n { result.scrollLeft = 0; }\n else if (rect.left < screenleft)\n { result.scrollLeft = Math.max(0, rect.left + gutterSpace - (tooWide ? 0 : 10)); }\n else if (rect.right > screenw + screenleft - 3)\n { result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; }\n return result\n }\n\n // Store a relative adjustment to the scroll position in the current\n // operation (to be applied when the operation finishes).\n function addToScrollTop(cm, top) {\n if (top == null) { return }\n resolveScrollToPos(cm);\n cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top;\n }\n\n // Make sure that at the end of the operation the current cursor is\n // shown.\n function ensureCursorVisible(cm) {\n resolveScrollToPos(cm);\n var cur = cm.getCursor();\n cm.curOp.scrollToPos = {from: cur, to: cur, margin: cm.options.cursorScrollMargin};\n }\n\n function scrollToCoords(cm, x, y) {\n if (x != null || y != null) { resolveScrollToPos(cm); }\n if (x != null) { cm.curOp.scrollLeft = x; }\n if (y != null) { cm.curOp.scrollTop = y; }\n }\n\n function scrollToRange(cm, range) {\n resolveScrollToPos(cm);\n cm.curOp.scrollToPos = range;\n }\n\n // When an operation has its scrollToPos property set, and another\n // scroll action is applied before the end of the operation, this\n // 'simulates' scrolling that position into view in a cheap way, so\n // that the effect of intermediate scroll commands is not ignored.\n function resolveScrollToPos(cm) {\n var range = cm.curOp.scrollToPos;\n if (range) {\n cm.curOp.scrollToPos = null;\n var from = estimateCoords(cm, range.from), to = estimateCoords(cm, range.to);\n scrollToCoordsRange(cm, from, to, range.margin);\n }\n }\n\n function scrollToCoordsRange(cm, from, to, margin) {\n var sPos = calculateScrollPos(cm, {\n left: Math.min(from.left, to.left),\n top: Math.min(from.top, to.top) - margin,\n right: Math.max(from.right, to.right),\n bottom: Math.max(from.bottom, to.bottom) + margin\n });\n scrollToCoords(cm, sPos.scrollLeft, sPos.scrollTop);\n }\n\n // Sync the scrollable area and scrollbars, ensure the viewport\n // covers the visible area.\n function updateScrollTop(cm, val) {\n if (Math.abs(cm.doc.scrollTop - val) < 2) { return }\n if (!gecko) { updateDisplaySimple(cm, {top: val}); }\n setScrollTop(cm, val, true);\n if (gecko) { updateDisplaySimple(cm); }\n startWorker(cm, 100);\n }\n\n function setScrollTop(cm, val, forceScroll) {\n val = Math.max(0, Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val));\n if (cm.display.scroller.scrollTop == val && !forceScroll) { return }\n cm.doc.scrollTop = val;\n cm.display.scrollbars.setScrollTop(val);\n if (cm.display.scroller.scrollTop != val) { cm.display.scroller.scrollTop = val; }\n }\n\n // Sync scroller and scrollbar, ensure the gutter elements are\n // aligned.\n function setScrollLeft(cm, val, isScroller, forceScroll) {\n val = Math.max(0, Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth));\n if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { return }\n cm.doc.scrollLeft = val;\n alignHorizontally(cm);\n if (cm.display.scroller.scrollLeft != val) { cm.display.scroller.scrollLeft = val; }\n cm.display.scrollbars.setScrollLeft(val);\n }\n\n // SCROLLBARS\n\n // Prepare DOM reads needed to update the scrollbars. Done in one\n // shot to minimize update/measure roundtrips.\n function measureForScrollbars(cm) {\n var d = cm.display, gutterW = d.gutters.offsetWidth;\n var docH = Math.round(cm.doc.height + paddingVert(cm.display));\n return {\n clientHeight: d.scroller.clientHeight,\n viewHeight: d.wrapper.clientHeight,\n scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth,\n viewWidth: d.wrapper.clientWidth,\n barLeft: cm.options.fixedGutter ? gutterW : 0,\n docHeight: docH,\n scrollHeight: docH + scrollGap(cm) + d.barHeight,\n nativeBarWidth: d.nativeBarWidth,\n gutterWidth: gutterW\n }\n }\n\n var NativeScrollbars = function(place, scroll, cm) {\n this.cm = cm;\n var vert = this.vert = elt(\"div\", [elt(\"div\", null, null, \"min-width: 1px\")], \"CodeMirror-vscrollbar\");\n var horiz = this.horiz = elt(\"div\", [elt(\"div\", null, null, \"height: 100%; min-height: 1px\")], \"CodeMirror-hscrollbar\");\n vert.tabIndex = horiz.tabIndex = -1;\n place(vert); place(horiz);\n\n on(vert, \"scroll\", function () {\n if (vert.clientHeight) { scroll(vert.scrollTop, \"vertical\"); }\n });\n on(horiz, \"scroll\", function () {\n if (horiz.clientWidth) { scroll(horiz.scrollLeft, \"horizontal\"); }\n });\n\n this.checkedZeroWidth = false;\n // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).\n if (ie && ie_version < 8) { this.horiz.style.minHeight = this.vert.style.minWidth = \"18px\"; }\n };\n\n NativeScrollbars.prototype.update = function (measure) {\n var needsH = measure.scrollWidth > measure.clientWidth + 1;\n var needsV = measure.scrollHeight > measure.clientHeight + 1;\n var sWidth = measure.nativeBarWidth;\n\n if (needsV) {\n this.vert.style.display = \"block\";\n this.vert.style.bottom = needsH ? sWidth + \"px\" : \"0\";\n var totalHeight = measure.viewHeight - (needsH ? sWidth : 0);\n // A bug in IE8 can cause this value to be negative, so guard it.\n this.vert.firstChild.style.height =\n Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + \"px\";\n } else {\n this.vert.style.display = \"\";\n this.vert.firstChild.style.height = \"0\";\n }\n\n if (needsH) {\n this.horiz.style.display = \"block\";\n this.horiz.style.right = needsV ? sWidth + \"px\" : \"0\";\n this.horiz.style.left = measure.barLeft + \"px\";\n var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0);\n this.horiz.firstChild.style.width =\n Math.max(0, measure.scrollWidth - measure.clientWidth + totalWidth) + \"px\";\n } else {\n this.horiz.style.display = \"\";\n this.horiz.firstChild.style.width = \"0\";\n }\n\n if (!this.checkedZeroWidth && measure.clientHeight > 0) {\n if (sWidth == 0) { this.zeroWidthHack(); }\n this.checkedZeroWidth = true;\n }\n\n return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0}\n };\n\n NativeScrollbars.prototype.setScrollLeft = function (pos) {\n if (this.horiz.scrollLeft != pos) { this.horiz.scrollLeft = pos; }\n if (this.disableHoriz) { this.enableZeroWidthBar(this.horiz, this.disableHoriz, \"horiz\"); }\n };\n\n NativeScrollbars.prototype.setScrollTop = function (pos) {\n if (this.vert.scrollTop != pos) { this.vert.scrollTop = pos; }\n if (this.disableVert) { this.enableZeroWidthBar(this.vert, this.disableVert, \"vert\"); }\n };\n\n NativeScrollbars.prototype.zeroWidthHack = function () {\n var w = mac && !mac_geMountainLion ? \"12px\" : \"18px\";\n this.horiz.style.height = this.vert.style.width = w;\n this.horiz.style.pointerEvents = this.vert.style.pointerEvents = \"none\";\n this.disableHoriz = new Delayed;\n this.disableVert = new Delayed;\n };\n\n NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) {\n bar.style.pointerEvents = \"auto\";\n function maybeDisable() {\n // To find out whether the scrollbar is still visible, we\n // check whether the element under the pixel in the bottom\n // right corner of the scrollbar box is the scrollbar box\n // itself (when the bar is still visible) or its filler child\n // (when the bar is hidden). If it is still visible, we keep\n // it enabled, if it's hidden, we disable pointer events.\n var box = bar.getBoundingClientRect();\n var elt = type == \"vert\" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2)\n : document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1);\n if (elt != bar) { bar.style.pointerEvents = \"none\"; }\n else { delay.set(1000, maybeDisable); }\n }\n delay.set(1000, maybeDisable);\n };\n\n NativeScrollbars.prototype.clear = function () {\n var parent = this.horiz.parentNode;\n parent.removeChild(this.horiz);\n parent.removeChild(this.vert);\n };\n\n var NullScrollbars = function () {};\n\n NullScrollbars.prototype.update = function () { return {bottom: 0, right: 0} };\n NullScrollbars.prototype.setScrollLeft = function () {};\n NullScrollbars.prototype.setScrollTop = function () {};\n NullScrollbars.prototype.clear = function () {};\n\n function updateScrollbars(cm, measure) {\n if (!measure) { measure = measureForScrollbars(cm); }\n var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight;\n updateScrollbarsInner(cm, measure);\n for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) {\n if (startWidth != cm.display.barWidth && cm.options.lineWrapping)\n { updateHeightsInViewport(cm); }\n updateScrollbarsInner(cm, measureForScrollbars(cm));\n startWidth = cm.display.barWidth; startHeight = cm.display.barHeight;\n }\n }\n\n // Re-synchronize the fake scrollbars with the actual size of the\n // content.\n function updateScrollbarsInner(cm, measure) {\n var d = cm.display;\n var sizes = d.scrollbars.update(measure);\n\n d.sizer.style.paddingRight = (d.barWidth = sizes.right) + \"px\";\n d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + \"px\";\n d.heightForcer.style.borderBottom = sizes.bottom + \"px solid transparent\";\n\n if (sizes.right && sizes.bottom) {\n d.scrollbarFiller.style.display = \"block\";\n d.scrollbarFiller.style.height = sizes.bottom + \"px\";\n d.scrollbarFiller.style.width = sizes.right + \"px\";\n } else { d.scrollbarFiller.style.display = \"\"; }\n if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) {\n d.gutterFiller.style.display = \"block\";\n d.gutterFiller.style.height = sizes.bottom + \"px\";\n d.gutterFiller.style.width = measure.gutterWidth + \"px\";\n } else { d.gutterFiller.style.display = \"\"; }\n }\n\n var scrollbarModel = {\"native\": NativeScrollbars, \"null\": NullScrollbars};\n\n function initScrollbars(cm) {\n if (cm.display.scrollbars) {\n cm.display.scrollbars.clear();\n if (cm.display.scrollbars.addClass)\n { rmClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n }\n\n cm.display.scrollbars = new scrollbarModel[cm.options.scrollbarStyle](function (node) {\n cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller);\n // Prevent clicks in the scrollbars from killing focus\n on(node, \"mousedown\", function () {\n if (cm.state.focused) { setTimeout(function () { return cm.display.input.focus(); }, 0); }\n });\n node.setAttribute(\"cm-not-content\", \"true\");\n }, function (pos, axis) {\n if (axis == \"horizontal\") { setScrollLeft(cm, pos); }\n else { updateScrollTop(cm, pos); }\n }, cm);\n if (cm.display.scrollbars.addClass)\n { addClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n }\n\n // Operations are used to wrap a series of changes to the editor\n // state in such a way that each change won't have to update the\n // cursor and display (which would be awkward, slow, and\n // error-prone). Instead, display updates are batched and then all\n // combined and executed at once.\n\n var nextOpId = 0;\n // Start a new operation.\n function startOperation(cm) {\n cm.curOp = {\n cm: cm,\n viewChanged: false, // Flag that indicates that lines might need to be redrawn\n startHeight: cm.doc.height, // Used to detect need to update scrollbar\n forceUpdate: false, // Used to force a redraw\n updateInput: 0, // Whether to reset the input textarea\n typing: false, // Whether this reset should be careful to leave existing text (for compositing)\n changeObjs: null, // Accumulated changes, for firing change events\n cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on\n cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already\n selectionChanged: false, // Whether the selection needs to be redrawn\n updateMaxLine: false, // Set when the widest line needs to be determined anew\n scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet\n scrollToPos: null, // Used to scroll to a specific position\n focus: false,\n id: ++nextOpId // Unique ID\n };\n pushOperation(cm.curOp);\n }\n\n // Finish an operation, updating the display and signalling delayed events\n function endOperation(cm) {\n var op = cm.curOp;\n if (op) { finishOperation(op, function (group) {\n for (var i = 0; i < group.ops.length; i++)\n { group.ops[i].cm.curOp = null; }\n endOperations(group);\n }); }\n }\n\n // The DOM updates done when an operation finishes are batched so\n // that the minimum number of relayouts are required.\n function endOperations(group) {\n var ops = group.ops;\n for (var i = 0; i < ops.length; i++) // Read DOM\n { endOperation_R1(ops[i]); }\n for (var i$1 = 0; i$1 < ops.length; i$1++) // Write DOM (maybe)\n { endOperation_W1(ops[i$1]); }\n for (var i$2 = 0; i$2 < ops.length; i$2++) // Read DOM\n { endOperation_R2(ops[i$2]); }\n for (var i$3 = 0; i$3 < ops.length; i$3++) // Write DOM (maybe)\n { endOperation_W2(ops[i$3]); }\n for (var i$4 = 0; i$4 < ops.length; i$4++) // Read DOM\n { endOperation_finish(ops[i$4]); }\n }\n\n function endOperation_R1(op) {\n var cm = op.cm, display = cm.display;\n maybeClipScrollbars(cm);\n if (op.updateMaxLine) { findMaxLine(cm); }\n\n op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null ||\n op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom ||\n op.scrollToPos.to.line >= display.viewTo) ||\n display.maxLineChanged && cm.options.lineWrapping;\n op.update = op.mustUpdate &&\n new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate);\n }\n\n function endOperation_W1(op) {\n op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update);\n }\n\n function endOperation_R2(op) {\n var cm = op.cm, display = cm.display;\n if (op.updatedDisplay) { updateHeightsInViewport(cm); }\n\n op.barMeasure = measureForScrollbars(cm);\n\n // If the max line changed since it was last measured, measure it,\n // and ensure the document's width matches it.\n // updateDisplay_W2 will use these properties to do the actual resizing\n if (display.maxLineChanged && !cm.options.lineWrapping) {\n op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3;\n cm.display.sizerWidth = op.adjustWidthTo;\n op.barMeasure.scrollWidth =\n Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth);\n op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm));\n }\n\n if (op.updatedDisplay || op.selectionChanged)\n { op.preparedSelection = display.input.prepareSelection(); }\n }\n\n function endOperation_W2(op) {\n var cm = op.cm;\n\n if (op.adjustWidthTo != null) {\n cm.display.sizer.style.minWidth = op.adjustWidthTo + \"px\";\n if (op.maxScrollLeft < cm.doc.scrollLeft)\n { setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); }\n cm.display.maxLineChanged = false;\n }\n\n var takeFocus = op.focus && op.focus == activeElt();\n if (op.preparedSelection)\n { cm.display.input.showSelection(op.preparedSelection, takeFocus); }\n if (op.updatedDisplay || op.startHeight != cm.doc.height)\n { updateScrollbars(cm, op.barMeasure); }\n if (op.updatedDisplay)\n { setDocumentHeight(cm, op.barMeasure); }\n\n if (op.selectionChanged) { restartBlink(cm); }\n\n if (cm.state.focused && op.updateInput)\n { cm.display.input.reset(op.typing); }\n if (takeFocus) { ensureFocus(op.cm); }\n }\n\n function endOperation_finish(op) {\n var cm = op.cm, display = cm.display, doc = cm.doc;\n\n if (op.updatedDisplay) { postUpdateDisplay(cm, op.update); }\n\n // Abort mouse wheel delta measurement, when scrolling explicitly\n if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos))\n { display.wheelStartX = display.wheelStartY = null; }\n\n // Propagate the scroll position to the actual DOM scroller\n if (op.scrollTop != null) { setScrollTop(cm, op.scrollTop, op.forceScroll); }\n\n if (op.scrollLeft != null) { setScrollLeft(cm, op.scrollLeft, true, true); }\n // If we need to scroll a specific position into view, do so.\n if (op.scrollToPos) {\n var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),\n clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin);\n maybeScrollWindow(cm, rect);\n }\n\n // Fire events for markers that are hidden/unidden by editing or\n // undoing\n var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers;\n if (hidden) { for (var i = 0; i < hidden.length; ++i)\n { if (!hidden[i].lines.length) { signal(hidden[i], \"hide\"); } } }\n if (unhidden) { for (var i$1 = 0; i$1 < unhidden.length; ++i$1)\n { if (unhidden[i$1].lines.length) { signal(unhidden[i$1], \"unhide\"); } } }\n\n if (display.wrapper.offsetHeight)\n { doc.scrollTop = cm.display.scroller.scrollTop; }\n\n // Fire change events, and delayed event handlers\n if (op.changeObjs)\n { signal(cm, \"changes\", cm, op.changeObjs); }\n if (op.update)\n { op.update.finish(); }\n }\n\n // Run the given function in an operation\n function runInOp(cm, f) {\n if (cm.curOp) { return f() }\n startOperation(cm);\n try { return f() }\n finally { endOperation(cm); }\n }\n // Wraps a function in an operation. Returns the wrapped function.\n function operation(cm, f) {\n return function() {\n if (cm.curOp) { return f.apply(cm, arguments) }\n startOperation(cm);\n try { return f.apply(cm, arguments) }\n finally { endOperation(cm); }\n }\n }\n // Used to add methods to editor and doc instances, wrapping them in\n // operations.\n function methodOp(f) {\n return function() {\n if (this.curOp) { return f.apply(this, arguments) }\n startOperation(this);\n try { return f.apply(this, arguments) }\n finally { endOperation(this); }\n }\n }\n function docMethodOp(f) {\n return function() {\n var cm = this.cm;\n if (!cm || cm.curOp) { return f.apply(this, arguments) }\n startOperation(cm);\n try { return f.apply(this, arguments) }\n finally { endOperation(cm); }\n }\n }\n\n // HIGHLIGHT WORKER\n\n function startWorker(cm, time) {\n if (cm.doc.highlightFrontier < cm.display.viewTo)\n { cm.state.highlight.set(time, bind(highlightWorker, cm)); }\n }\n\n function highlightWorker(cm) {\n var doc = cm.doc;\n if (doc.highlightFrontier >= cm.display.viewTo) { return }\n var end = +new Date + cm.options.workTime;\n var context = getContextBefore(cm, doc.highlightFrontier);\n var changedLines = [];\n\n doc.iter(context.line, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) {\n if (context.line >= cm.display.viewFrom) { // Visible\n var oldStyles = line.styles;\n var resetState = line.text.length > cm.options.maxHighlightLength ? copyState(doc.mode, context.state) : null;\n var highlighted = highlightLine(cm, line, context, true);\n if (resetState) { context.state = resetState; }\n line.styles = highlighted.styles;\n var oldCls = line.styleClasses, newCls = highlighted.classes;\n if (newCls) { line.styleClasses = newCls; }\n else if (oldCls) { line.styleClasses = null; }\n var ischange = !oldStyles || oldStyles.length != line.styles.length ||\n oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);\n for (var i = 0; !ischange && i < oldStyles.length; ++i) { ischange = oldStyles[i] != line.styles[i]; }\n if (ischange) { changedLines.push(context.line); }\n line.stateAfter = context.save();\n context.nextLine();\n } else {\n if (line.text.length <= cm.options.maxHighlightLength)\n { processLine(cm, line.text, context); }\n line.stateAfter = context.line % 5 == 0 ? context.save() : null;\n context.nextLine();\n }\n if (+new Date > end) {\n startWorker(cm, cm.options.workDelay);\n return true\n }\n });\n doc.highlightFrontier = context.line;\n doc.modeFrontier = Math.max(doc.modeFrontier, context.line);\n if (changedLines.length) { runInOp(cm, function () {\n for (var i = 0; i < changedLines.length; i++)\n { regLineChange(cm, changedLines[i], \"text\"); }\n }); }\n }\n\n // DISPLAY DRAWING\n\n var DisplayUpdate = function(cm, viewport, force) {\n var display = cm.display;\n\n this.viewport = viewport;\n // Store some values that we'll need later (but don't want to force a relayout for)\n this.visible = visibleLines(display, cm.doc, viewport);\n this.editorIsHidden = !display.wrapper.offsetWidth;\n this.wrapperHeight = display.wrapper.clientHeight;\n this.wrapperWidth = display.wrapper.clientWidth;\n this.oldDisplayWidth = displayWidth(cm);\n this.force = force;\n this.dims = getDimensions(cm);\n this.events = [];\n };\n\n DisplayUpdate.prototype.signal = function (emitter, type) {\n if (hasHandler(emitter, type))\n { this.events.push(arguments); }\n };\n DisplayUpdate.prototype.finish = function () {\n for (var i = 0; i < this.events.length; i++)\n { signal.apply(null, this.events[i]); }\n };\n\n function maybeClipScrollbars(cm) {\n var display = cm.display;\n if (!display.scrollbarsClipped && display.scroller.offsetWidth) {\n display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth;\n display.heightForcer.style.height = scrollGap(cm) + \"px\";\n display.sizer.style.marginBottom = -display.nativeBarWidth + \"px\";\n display.sizer.style.borderRightWidth = scrollGap(cm) + \"px\";\n display.scrollbarsClipped = true;\n }\n }\n\n function selectionSnapshot(cm) {\n if (cm.hasFocus()) { return null }\n var active = activeElt();\n if (!active || !contains(cm.display.lineDiv, active)) { return null }\n var result = {activeElt: active};\n if (window.getSelection) {\n var sel = window.getSelection();\n if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) {\n result.anchorNode = sel.anchorNode;\n result.anchorOffset = sel.anchorOffset;\n result.focusNode = sel.focusNode;\n result.focusOffset = sel.focusOffset;\n }\n }\n return result\n }\n\n function restoreSelection(snapshot) {\n if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt()) { return }\n snapshot.activeElt.focus();\n if (!/^(INPUT|TEXTAREA)$/.test(snapshot.activeElt.nodeName) &&\n snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) {\n var sel = window.getSelection(), range = document.createRange();\n range.setEnd(snapshot.anchorNode, snapshot.anchorOffset);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n sel.extend(snapshot.focusNode, snapshot.focusOffset);\n }\n }\n\n // Does the actual updating of the line display. Bails out\n // (returning false) when there is nothing to be done and forced is\n // false.\n function updateDisplayIfNeeded(cm, update) {\n var display = cm.display, doc = cm.doc;\n\n if (update.editorIsHidden) {\n resetView(cm);\n return false\n }\n\n // Bail out if the visible area is already rendered and nothing changed.\n if (!update.force &&\n update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo &&\n (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) &&\n display.renderedView == display.view && countDirtyView(cm) == 0)\n { return false }\n\n if (maybeUpdateLineNumberWidth(cm)) {\n resetView(cm);\n update.dims = getDimensions(cm);\n }\n\n // Compute a suitable new viewport (from & to)\n var end = doc.first + doc.size;\n var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first);\n var to = Math.min(end, update.visible.to + cm.options.viewportMargin);\n if (display.viewFrom < from && from - display.viewFrom < 20) { from = Math.max(doc.first, display.viewFrom); }\n if (display.viewTo > to && display.viewTo - to < 20) { to = Math.min(end, display.viewTo); }\n if (sawCollapsedSpans) {\n from = visualLineNo(cm.doc, from);\n to = visualLineEndNo(cm.doc, to);\n }\n\n var different = from != display.viewFrom || to != display.viewTo ||\n display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth;\n adjustView(cm, from, to);\n\n display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom));\n // Position the mover div to align with the current scroll position\n cm.display.mover.style.top = display.viewOffset + \"px\";\n\n var toUpdate = countDirtyView(cm);\n if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view &&\n (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo))\n { return false }\n\n // For big changes, we hide the enclosing element during the\n // update, since that speeds up the operations on most browsers.\n var selSnapshot = selectionSnapshot(cm);\n if (toUpdate > 4) { display.lineDiv.style.display = \"none\"; }\n patchDisplay(cm, display.updateLineNumbers, update.dims);\n if (toUpdate > 4) { display.lineDiv.style.display = \"\"; }\n display.renderedView = display.view;\n // There might have been a widget with a focused element that got\n // hidden or updated, if so re-focus it.\n restoreSelection(selSnapshot);\n\n // Prevent selection and cursors from interfering with the scroll\n // width and height.\n removeChildren(display.cursorDiv);\n removeChildren(display.selectionDiv);\n display.gutters.style.height = display.sizer.style.minHeight = 0;\n\n if (different) {\n display.lastWrapHeight = update.wrapperHeight;\n display.lastWrapWidth = update.wrapperWidth;\n startWorker(cm, 400);\n }\n\n display.updateLineNumbers = null;\n\n return true\n }\n\n function postUpdateDisplay(cm, update) {\n var viewport = update.viewport;\n\n for (var first = true;; first = false) {\n if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) {\n // Clip forced viewport to actual scrollable area.\n if (viewport && viewport.top != null)\n { viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)}; }\n // Updated line heights might result in the drawn area not\n // actually covering the viewport. Keep looping until it does.\n update.visible = visibleLines(cm.display, cm.doc, viewport);\n if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo)\n { break }\n } else if (first) {\n update.visible = visibleLines(cm.display, cm.doc, viewport);\n }\n if (!updateDisplayIfNeeded(cm, update)) { break }\n updateHeightsInViewport(cm);\n var barMeasure = measureForScrollbars(cm);\n updateSelection(cm);\n updateScrollbars(cm, barMeasure);\n setDocumentHeight(cm, barMeasure);\n update.force = false;\n }\n\n update.signal(cm, \"update\", cm);\n if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) {\n update.signal(cm, \"viewportChange\", cm, cm.display.viewFrom, cm.display.viewTo);\n cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo;\n }\n }\n\n function updateDisplaySimple(cm, viewport) {\n var update = new DisplayUpdate(cm, viewport);\n if (updateDisplayIfNeeded(cm, update)) {\n updateHeightsInViewport(cm);\n postUpdateDisplay(cm, update);\n var barMeasure = measureForScrollbars(cm);\n updateSelection(cm);\n updateScrollbars(cm, barMeasure);\n setDocumentHeight(cm, barMeasure);\n update.finish();\n }\n }\n\n // Sync the actual display DOM structure with display.view, removing\n // nodes for lines that are no longer in view, and creating the ones\n // that are not there yet, and updating the ones that are out of\n // date.\n function patchDisplay(cm, updateNumbersFrom, dims) {\n var display = cm.display, lineNumbers = cm.options.lineNumbers;\n var container = display.lineDiv, cur = container.firstChild;\n\n function rm(node) {\n var next = node.nextSibling;\n // Works around a throw-scroll bug in OS X Webkit\n if (webkit && mac && cm.display.currentWheelTarget == node)\n { node.style.display = \"none\"; }\n else\n { node.parentNode.removeChild(node); }\n return next\n }\n\n var view = display.view, lineN = display.viewFrom;\n // Loop over the elements in the view, syncing cur (the DOM nodes\n // in display.lineDiv) with the view as we go.\n for (var i = 0; i < view.length; i++) {\n var lineView = view[i];\n if (lineView.hidden) ; else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet\n var node = buildLineElement(cm, lineView, lineN, dims);\n container.insertBefore(node, cur);\n } else { // Already drawn\n while (cur != lineView.node) { cur = rm(cur); }\n var updateNumber = lineNumbers && updateNumbersFrom != null &&\n updateNumbersFrom <= lineN && lineView.lineNumber;\n if (lineView.changes) {\n if (indexOf(lineView.changes, \"gutter\") > -1) { updateNumber = false; }\n updateLineForChanges(cm, lineView, lineN, dims);\n }\n if (updateNumber) {\n removeChildren(lineView.lineNumber);\n lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN)));\n }\n cur = lineView.node.nextSibling;\n }\n lineN += lineView.size;\n }\n while (cur) { cur = rm(cur); }\n }\n\n function updateGutterSpace(display) {\n var width = display.gutters.offsetWidth;\n display.sizer.style.marginLeft = width + \"px\";\n }\n\n function setDocumentHeight(cm, measure) {\n cm.display.sizer.style.minHeight = measure.docHeight + \"px\";\n cm.display.heightForcer.style.top = measure.docHeight + \"px\";\n cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + \"px\";\n }\n\n // Re-align line numbers and gutter marks to compensate for\n // horizontal scrolling.\n function alignHorizontally(cm) {\n var display = cm.display, view = display.view;\n if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { return }\n var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;\n var gutterW = display.gutters.offsetWidth, left = comp + \"px\";\n for (var i = 0; i < view.length; i++) { if (!view[i].hidden) {\n if (cm.options.fixedGutter) {\n if (view[i].gutter)\n { view[i].gutter.style.left = left; }\n if (view[i].gutterBackground)\n { view[i].gutterBackground.style.left = left; }\n }\n var align = view[i].alignable;\n if (align) { for (var j = 0; j < align.length; j++)\n { align[j].style.left = left; } }\n } }\n if (cm.options.fixedGutter)\n { display.gutters.style.left = (comp + gutterW) + \"px\"; }\n }\n\n // Used to ensure that the line number gutter is still the right\n // size for the current document size. Returns true when an update\n // is needed.\n function maybeUpdateLineNumberWidth(cm) {\n if (!cm.options.lineNumbers) { return false }\n var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;\n if (last.length != display.lineNumChars) {\n var test = display.measure.appendChild(elt(\"div\", [elt(\"div\", last)],\n \"CodeMirror-linenumber CodeMirror-gutter-elt\"));\n var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;\n display.lineGutter.style.width = \"\";\n display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1;\n display.lineNumWidth = display.lineNumInnerWidth + padding;\n display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;\n display.lineGutter.style.width = display.lineNumWidth + \"px\";\n updateGutterSpace(cm.display);\n return true\n }\n return false\n }\n\n function getGutters(gutters, lineNumbers) {\n var result = [], sawLineNumbers = false;\n for (var i = 0; i < gutters.length; i++) {\n var name = gutters[i], style = null;\n if (typeof name != \"string\") { style = name.style; name = name.className; }\n if (name == \"CodeMirror-linenumbers\") {\n if (!lineNumbers) { continue }\n else { sawLineNumbers = true; }\n }\n result.push({className: name, style: style});\n }\n if (lineNumbers && !sawLineNumbers) { result.push({className: \"CodeMirror-linenumbers\", style: null}); }\n return result\n }\n\n // Rebuild the gutter elements, ensure the margin to the left of the\n // code matches their width.\n function renderGutters(display) {\n var gutters = display.gutters, specs = display.gutterSpecs;\n removeChildren(gutters);\n display.lineGutter = null;\n for (var i = 0; i < specs.length; ++i) {\n var ref = specs[i];\n var className = ref.className;\n var style = ref.style;\n var gElt = gutters.appendChild(elt(\"div\", null, \"CodeMirror-gutter \" + className));\n if (style) { gElt.style.cssText = style; }\n if (className == \"CodeMirror-linenumbers\") {\n display.lineGutter = gElt;\n gElt.style.width = (display.lineNumWidth || 1) + \"px\";\n }\n }\n gutters.style.display = specs.length ? \"\" : \"none\";\n updateGutterSpace(display);\n }\n\n function updateGutters(cm) {\n renderGutters(cm.display);\n regChange(cm);\n alignHorizontally(cm);\n }\n\n // The display handles the DOM integration, both for input reading\n // and content drawing. It holds references to DOM nodes and\n // display-related state.\n\n function Display(place, doc, input, options) {\n var d = this;\n this.input = input;\n\n // Covers bottom-right square when both scrollbars are present.\n d.scrollbarFiller = elt(\"div\", null, \"CodeMirror-scrollbar-filler\");\n d.scrollbarFiller.setAttribute(\"cm-not-content\", \"true\");\n // Covers bottom of gutter when coverGutterNextToScrollbar is on\n // and h scrollbar is present.\n d.gutterFiller = elt(\"div\", null, \"CodeMirror-gutter-filler\");\n d.gutterFiller.setAttribute(\"cm-not-content\", \"true\");\n // Will contain the actual code, positioned to cover the viewport.\n d.lineDiv = eltP(\"div\", null, \"CodeMirror-code\");\n // Elements are added to these to represent selection and cursors.\n d.selectionDiv = elt(\"div\", null, null, \"position: relative; z-index: 1\");\n d.cursorDiv = elt(\"div\", null, \"CodeMirror-cursors\");\n // A visibility: hidden element used to find the size of things.\n d.measure = elt(\"div\", null, \"CodeMirror-measure\");\n // When lines outside of the viewport are measured, they are drawn in this.\n d.lineMeasure = elt(\"div\", null, \"CodeMirror-measure\");\n // Wraps everything that needs to exist inside the vertically-padded coordinate system\n d.lineSpace = eltP(\"div\", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv],\n null, \"position: relative; outline: none\");\n var lines = eltP(\"div\", [d.lineSpace], \"CodeMirror-lines\");\n // Moved around its parent to cover visible view.\n d.mover = elt(\"div\", [lines], null, \"position: relative\");\n // Set to the height of the document, allowing scrolling.\n d.sizer = elt(\"div\", [d.mover], \"CodeMirror-sizer\");\n d.sizerWidth = null;\n // Behavior of elts with overflow: auto and padding is\n // inconsistent across browsers. This is used to ensure the\n // scrollable area is big enough.\n d.heightForcer = elt(\"div\", null, null, \"position: absolute; height: \" + scrollerGap + \"px; width: 1px;\");\n // Will contain the gutters, if any.\n d.gutters = elt(\"div\", null, \"CodeMirror-gutters\");\n d.lineGutter = null;\n // Actual scrollable element.\n d.scroller = elt(\"div\", [d.sizer, d.heightForcer, d.gutters], \"CodeMirror-scroll\");\n d.scroller.setAttribute(\"tabIndex\", \"-1\");\n // The element in which the editor lives.\n d.wrapper = elt(\"div\", [d.scrollbarFiller, d.gutterFiller, d.scroller], \"CodeMirror\");\n\n // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported)\n if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; }\n if (!webkit && !(gecko && mobile)) { d.scroller.draggable = true; }\n\n if (place) {\n if (place.appendChild) { place.appendChild(d.wrapper); }\n else { place(d.wrapper); }\n }\n\n // Current rendered range (may be bigger than the view window).\n d.viewFrom = d.viewTo = doc.first;\n d.reportedViewFrom = d.reportedViewTo = doc.first;\n // Information about the rendered lines.\n d.view = [];\n d.renderedView = null;\n // Holds info about a single rendered line when it was rendered\n // for measurement, while not in view.\n d.externalMeasured = null;\n // Empty space (in pixels) above the view\n d.viewOffset = 0;\n d.lastWrapHeight = d.lastWrapWidth = 0;\n d.updateLineNumbers = null;\n\n d.nativeBarWidth = d.barHeight = d.barWidth = 0;\n d.scrollbarsClipped = false;\n\n // Used to only resize the line number gutter when necessary (when\n // the amount of lines crosses a boundary that makes its width change)\n d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null;\n // Set to true when a non-horizontal-scrolling line widget is\n // added. As an optimization, line widget aligning is skipped when\n // this is false.\n d.alignWidgets = false;\n\n d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n\n // Tracks the maximum line length so that the horizontal scrollbar\n // can be kept static when scrolling.\n d.maxLine = null;\n d.maxLineLength = 0;\n d.maxLineChanged = false;\n\n // Used for measuring wheel scrolling granularity\n d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null;\n\n // True when shift is held down.\n d.shift = false;\n\n // Used to track whether anything happened since the context menu\n // was opened.\n d.selForContextMenu = null;\n\n d.activeTouch = null;\n\n d.gutterSpecs = getGutters(options.gutters, options.lineNumbers);\n renderGutters(d);\n\n input.init(d);\n }\n\n // Since the delta values reported on mouse wheel events are\n // unstandardized between browsers and even browser versions, and\n // generally horribly unpredictable, this code starts by measuring\n // the scroll effect that the first few mouse wheel events have,\n // and, from that, detects the way it can convert deltas to pixel\n // offsets afterwards.\n //\n // The reason we want to know the amount a wheel event will scroll\n // is that it gives us a chance to update the display before the\n // actual scrolling happens, reducing flickering.\n\n var wheelSamples = 0, wheelPixelsPerUnit = null;\n // Fill in a browser-detected starting value on browsers where we\n // know one. These don't have to be accurate -- the result of them\n // being wrong would just be a slight flicker on the first wheel\n // scroll (if it is large enough).\n if (ie) { wheelPixelsPerUnit = -.53; }\n else if (gecko) { wheelPixelsPerUnit = 15; }\n else if (chrome) { wheelPixelsPerUnit = -.7; }\n else if (safari) { wheelPixelsPerUnit = -1/3; }\n\n function wheelEventDelta(e) {\n var dx = e.wheelDeltaX, dy = e.wheelDeltaY;\n if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { dx = e.detail; }\n if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { dy = e.detail; }\n else if (dy == null) { dy = e.wheelDelta; }\n return {x: dx, y: dy}\n }\n function wheelEventPixels(e) {\n var delta = wheelEventDelta(e);\n delta.x *= wheelPixelsPerUnit;\n delta.y *= wheelPixelsPerUnit;\n return delta\n }\n\n function onScrollWheel(cm, e) {\n var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;\n\n var display = cm.display, scroll = display.scroller;\n // Quit if there's nothing to scroll here\n var canScrollX = scroll.scrollWidth > scroll.clientWidth;\n var canScrollY = scroll.scrollHeight > scroll.clientHeight;\n if (!(dx && canScrollX || dy && canScrollY)) { return }\n\n // Webkit browsers on OS X abort momentum scrolls when the target\n // of the scroll event is removed from the scrollable element.\n // This hack (see related code in patchDisplay) makes sure the\n // element is kept around.\n if (dy && mac && webkit) {\n outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {\n for (var i = 0; i < view.length; i++) {\n if (view[i].node == cur) {\n cm.display.currentWheelTarget = cur;\n break outer\n }\n }\n }\n }\n\n // On some browsers, horizontal scrolling will cause redraws to\n // happen before the gutter has been realigned, causing it to\n // wriggle around in a most unseemly way. When we have an\n // estimated pixels/delta value, we just handle horizontal\n // scrolling entirely here. It'll be slightly off from native, but\n // better than glitching out.\n if (dx && !gecko && !presto && wheelPixelsPerUnit != null) {\n if (dy && canScrollY)\n { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * wheelPixelsPerUnit)); }\n setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * wheelPixelsPerUnit));\n // Only prevent default scrolling if vertical scrolling is\n // actually possible. Otherwise, it causes vertical scroll\n // jitter on OSX trackpads when deltaX is small and deltaY\n // is large (issue #3579)\n if (!dy || (dy && canScrollY))\n { e_preventDefault(e); }\n display.wheelStartX = null; // Abort measurement, if in progress\n return\n }\n\n // 'Project' the visible viewport to cover the area that is being\n // scrolled into view (if we know enough to estimate it).\n if (dy && wheelPixelsPerUnit != null) {\n var pixels = dy * wheelPixelsPerUnit;\n var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;\n if (pixels < 0) { top = Math.max(0, top + pixels - 50); }\n else { bot = Math.min(cm.doc.height, bot + pixels + 50); }\n updateDisplaySimple(cm, {top: top, bottom: bot});\n }\n\n if (wheelSamples < 20) {\n if (display.wheelStartX == null) {\n display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;\n display.wheelDX = dx; display.wheelDY = dy;\n setTimeout(function () {\n if (display.wheelStartX == null) { return }\n var movedX = scroll.scrollLeft - display.wheelStartX;\n var movedY = scroll.scrollTop - display.wheelStartY;\n var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||\n (movedX && display.wheelDX && movedX / display.wheelDX);\n display.wheelStartX = display.wheelStartY = null;\n if (!sample) { return }\n wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);\n ++wheelSamples;\n }, 200);\n } else {\n display.wheelDX += dx; display.wheelDY += dy;\n }\n }\n }\n\n // Selection objects are immutable. A new one is created every time\n // the selection changes. A selection is one or more non-overlapping\n // (and non-touching) ranges, sorted, and an integer that indicates\n // which one is the primary selection (the one that's scrolled into\n // view, that getCursor returns, etc).\n var Selection = function(ranges, primIndex) {\n this.ranges = ranges;\n this.primIndex = primIndex;\n };\n\n Selection.prototype.primary = function () { return this.ranges[this.primIndex] };\n\n Selection.prototype.equals = function (other) {\n if (other == this) { return true }\n if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) { return false }\n for (var i = 0; i < this.ranges.length; i++) {\n var here = this.ranges[i], there = other.ranges[i];\n if (!equalCursorPos(here.anchor, there.anchor) || !equalCursorPos(here.head, there.head)) { return false }\n }\n return true\n };\n\n Selection.prototype.deepCopy = function () {\n var out = [];\n for (var i = 0; i < this.ranges.length; i++)\n { out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head)); }\n return new Selection(out, this.primIndex)\n };\n\n Selection.prototype.somethingSelected = function () {\n for (var i = 0; i < this.ranges.length; i++)\n { if (!this.ranges[i].empty()) { return true } }\n return false\n };\n\n Selection.prototype.contains = function (pos, end) {\n if (!end) { end = pos; }\n for (var i = 0; i < this.ranges.length; i++) {\n var range = this.ranges[i];\n if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0)\n { return i }\n }\n return -1\n };\n\n var Range = function(anchor, head) {\n this.anchor = anchor; this.head = head;\n };\n\n Range.prototype.from = function () { return minPos(this.anchor, this.head) };\n Range.prototype.to = function () { return maxPos(this.anchor, this.head) };\n Range.prototype.empty = function () { return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch };\n\n // Take an unsorted, potentially overlapping set of ranges, and\n // build a selection out of it. 'Consumes' ranges array (modifying\n // it).\n function normalizeSelection(cm, ranges, primIndex) {\n var mayTouch = cm && cm.options.selectionsMayTouch;\n var prim = ranges[primIndex];\n ranges.sort(function (a, b) { return cmp(a.from(), b.from()); });\n primIndex = indexOf(ranges, prim);\n for (var i = 1; i < ranges.length; i++) {\n var cur = ranges[i], prev = ranges[i - 1];\n var diff = cmp(prev.to(), cur.from());\n if (mayTouch && !cur.empty() ? diff > 0 : diff >= 0) {\n var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to());\n var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head;\n if (i <= primIndex) { --primIndex; }\n ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to));\n }\n }\n return new Selection(ranges, primIndex)\n }\n\n function simpleSelection(anchor, head) {\n return new Selection([new Range(anchor, head || anchor)], 0)\n }\n\n // Compute the position of the end of a change (its 'to' property\n // refers to the pre-change end).\n function changeEnd(change) {\n if (!change.text) { return change.to }\n return Pos(change.from.line + change.text.length - 1,\n lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0))\n }\n\n // Adjust a position to refer to the post-change position of the\n // same text, or the end of the change if the change covers it.\n function adjustForChange(pos, change) {\n if (cmp(pos, change.from) < 0) { return pos }\n if (cmp(pos, change.to) <= 0) { return changeEnd(change) }\n\n var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch;\n if (pos.line == change.to.line) { ch += changeEnd(change).ch - change.to.ch; }\n return Pos(line, ch)\n }\n\n function computeSelAfterChange(doc, change) {\n var out = [];\n for (var i = 0; i < doc.sel.ranges.length; i++) {\n var range = doc.sel.ranges[i];\n out.push(new Range(adjustForChange(range.anchor, change),\n adjustForChange(range.head, change)));\n }\n return normalizeSelection(doc.cm, out, doc.sel.primIndex)\n }\n\n function offsetPos(pos, old, nw) {\n if (pos.line == old.line)\n { return Pos(nw.line, pos.ch - old.ch + nw.ch) }\n else\n { return Pos(nw.line + (pos.line - old.line), pos.ch) }\n }\n\n // Used by replaceSelections to allow moving the selection to the\n // start or around the replaced test. Hint may be \"start\" or \"around\".\n function computeReplacedSel(doc, changes, hint) {\n var out = [];\n var oldPrev = Pos(doc.first, 0), newPrev = oldPrev;\n for (var i = 0; i < changes.length; i++) {\n var change = changes[i];\n var from = offsetPos(change.from, oldPrev, newPrev);\n var to = offsetPos(changeEnd(change), oldPrev, newPrev);\n oldPrev = change.to;\n newPrev = to;\n if (hint == \"around\") {\n var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0;\n out[i] = new Range(inv ? to : from, inv ? from : to);\n } else {\n out[i] = new Range(from, from);\n }\n }\n return new Selection(out, doc.sel.primIndex)\n }\n\n // Used to get the editor into a consistent state again when options change.\n\n function loadMode(cm) {\n cm.doc.mode = getMode(cm.options, cm.doc.modeOption);\n resetModeState(cm);\n }\n\n function resetModeState(cm) {\n cm.doc.iter(function (line) {\n if (line.stateAfter) { line.stateAfter = null; }\n if (line.styles) { line.styles = null; }\n });\n cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first;\n startWorker(cm, 100);\n cm.state.modeGen++;\n if (cm.curOp) { regChange(cm); }\n }\n\n // DOCUMENT DATA STRUCTURE\n\n // By default, updates that start and end at the beginning of a line\n // are treated specially, in order to make the association of line\n // widgets and marker elements with the text behave more intuitive.\n function isWholeLineUpdate(doc, change) {\n return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == \"\" &&\n (!doc.cm || doc.cm.options.wholeLineUpdateBefore)\n }\n\n // Perform a change on the document data structure.\n function updateDoc(doc, change, markedSpans, estimateHeight) {\n function spansFor(n) {return markedSpans ? markedSpans[n] : null}\n function update(line, text, spans) {\n updateLine(line, text, spans, estimateHeight);\n signalLater(line, \"change\", line, change);\n }\n function linesFor(start, end) {\n var result = [];\n for (var i = start; i < end; ++i)\n { result.push(new Line(text[i], spansFor(i), estimateHeight)); }\n return result\n }\n\n var from = change.from, to = change.to, text = change.text;\n var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line);\n var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line;\n\n // Adjust the line structure\n if (change.full) {\n doc.insert(0, linesFor(0, text.length));\n doc.remove(text.length, doc.size - text.length);\n } else if (isWholeLineUpdate(doc, change)) {\n // This is a whole-line replace. Treated specially to make\n // sure line objects move the way they are supposed to.\n var added = linesFor(0, text.length - 1);\n update(lastLine, lastLine.text, lastSpans);\n if (nlines) { doc.remove(from.line, nlines); }\n if (added.length) { doc.insert(from.line, added); }\n } else if (firstLine == lastLine) {\n if (text.length == 1) {\n update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans);\n } else {\n var added$1 = linesFor(1, text.length - 1);\n added$1.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight));\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n doc.insert(from.line + 1, added$1);\n }\n } else if (text.length == 1) {\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0));\n doc.remove(from.line + 1, nlines);\n } else {\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans);\n var added$2 = linesFor(1, text.length - 1);\n if (nlines > 1) { doc.remove(from.line + 1, nlines - 1); }\n doc.insert(from.line + 1, added$2);\n }\n\n signalLater(doc, \"change\", doc, change);\n }\n\n // Call f for all linked documents.\n function linkedDocs(doc, f, sharedHistOnly) {\n function propagate(doc, skip, sharedHist) {\n if (doc.linked) { for (var i = 0; i < doc.linked.length; ++i) {\n var rel = doc.linked[i];\n if (rel.doc == skip) { continue }\n var shared = sharedHist && rel.sharedHist;\n if (sharedHistOnly && !shared) { continue }\n f(rel.doc, shared);\n propagate(rel.doc, doc, shared);\n } }\n }\n propagate(doc, null, true);\n }\n\n // Attach a document to an editor.\n function attachDoc(cm, doc) {\n if (doc.cm) { throw new Error(\"This document is already in use.\") }\n cm.doc = doc;\n doc.cm = cm;\n estimateLineHeights(cm);\n loadMode(cm);\n setDirectionClass(cm);\n if (!cm.options.lineWrapping) { findMaxLine(cm); }\n cm.options.mode = doc.modeOption;\n regChange(cm);\n }\n\n function setDirectionClass(cm) {\n (cm.doc.direction == \"rtl\" ? addClass : rmClass)(cm.display.lineDiv, \"CodeMirror-rtl\");\n }\n\n function directionChanged(cm) {\n runInOp(cm, function () {\n setDirectionClass(cm);\n regChange(cm);\n });\n }\n\n function History(startGen) {\n // Arrays of change events and selections. Doing something adds an\n // event to done and clears undo. Undoing moves events from done\n // to undone, redoing moves them in the other direction.\n this.done = []; this.undone = [];\n this.undoDepth = Infinity;\n // Used to track when changes can be merged into a single undo\n // event\n this.lastModTime = this.lastSelTime = 0;\n this.lastOp = this.lastSelOp = null;\n this.lastOrigin = this.lastSelOrigin = null;\n // Used by the isClean() method\n this.generation = this.maxGeneration = startGen || 1;\n }\n\n // Create a history change event from an updateDoc-style change\n // object.\n function historyChangeFromChange(doc, change) {\n var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)};\n attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);\n linkedDocs(doc, function (doc) { return attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); }, true);\n return histChange\n }\n\n // Pop all selection events off the end of a history array. Stop at\n // a change event.\n function clearSelectionEvents(array) {\n while (array.length) {\n var last = lst(array);\n if (last.ranges) { array.pop(); }\n else { break }\n }\n }\n\n // Find the top change event in the history. Pop off selection\n // events that are in the way.\n function lastChangeEvent(hist, force) {\n if (force) {\n clearSelectionEvents(hist.done);\n return lst(hist.done)\n } else if (hist.done.length && !lst(hist.done).ranges) {\n return lst(hist.done)\n } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) {\n hist.done.pop();\n return lst(hist.done)\n }\n }\n\n // Register a change in the history. Merges changes that are within\n // a single operation, or are close together with an origin that\n // allows merging (starting with \"+\") into a single event.\n function addChangeToHistory(doc, change, selAfter, opId) {\n var hist = doc.history;\n hist.undone.length = 0;\n var time = +new Date, cur;\n var last;\n\n if ((hist.lastOp == opId ||\n hist.lastOrigin == change.origin && change.origin &&\n ((change.origin.charAt(0) == \"+\" && hist.lastModTime > time - (doc.cm ? doc.cm.options.historyEventDelay : 500)) ||\n change.origin.charAt(0) == \"*\")) &&\n (cur = lastChangeEvent(hist, hist.lastOp == opId))) {\n // Merge this change into the last event\n last = lst(cur.changes);\n if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) {\n // Optimized case for simple insertion -- don't want to add\n // new changesets for every character typed\n last.to = changeEnd(change);\n } else {\n // Add new sub-event\n cur.changes.push(historyChangeFromChange(doc, change));\n }\n } else {\n // Can not be merged, start a new event.\n var before = lst(hist.done);\n if (!before || !before.ranges)\n { pushSelectionToHistory(doc.sel, hist.done); }\n cur = {changes: [historyChangeFromChange(doc, change)],\n generation: hist.generation};\n hist.done.push(cur);\n while (hist.done.length > hist.undoDepth) {\n hist.done.shift();\n if (!hist.done[0].ranges) { hist.done.shift(); }\n }\n }\n hist.done.push(selAfter);\n hist.generation = ++hist.maxGeneration;\n hist.lastModTime = hist.lastSelTime = time;\n hist.lastOp = hist.lastSelOp = opId;\n hist.lastOrigin = hist.lastSelOrigin = change.origin;\n\n if (!last) { signal(doc, \"historyAdded\"); }\n }\n\n function selectionEventCanBeMerged(doc, origin, prev, sel) {\n var ch = origin.charAt(0);\n return ch == \"*\" ||\n ch == \"+\" &&\n prev.ranges.length == sel.ranges.length &&\n prev.somethingSelected() == sel.somethingSelected() &&\n new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500)\n }\n\n // Called whenever the selection changes, sets the new selection as\n // the pending selection in the history, and pushes the old pending\n // selection into the 'done' array when it was significantly\n // different (in number of selected ranges, emptiness, or time).\n function addSelectionToHistory(doc, sel, opId, options) {\n var hist = doc.history, origin = options && options.origin;\n\n // A new event is started when the previous origin does not match\n // the current, or the origins don't allow matching. Origins\n // starting with * are always merged, those starting with + are\n // merged when similar and close together in time.\n if (opId == hist.lastSelOp ||\n (origin && hist.lastSelOrigin == origin &&\n (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin ||\n selectionEventCanBeMerged(doc, origin, lst(hist.done), sel))))\n { hist.done[hist.done.length - 1] = sel; }\n else\n { pushSelectionToHistory(sel, hist.done); }\n\n hist.lastSelTime = +new Date;\n hist.lastSelOrigin = origin;\n hist.lastSelOp = opId;\n if (options && options.clearRedo !== false)\n { clearSelectionEvents(hist.undone); }\n }\n\n function pushSelectionToHistory(sel, dest) {\n var top = lst(dest);\n if (!(top && top.ranges && top.equals(sel)))\n { dest.push(sel); }\n }\n\n // Used to store marked span information in the history.\n function attachLocalSpans(doc, change, from, to) {\n var existing = change[\"spans_\" + doc.id], n = 0;\n doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function (line) {\n if (line.markedSpans)\n { (existing || (existing = change[\"spans_\" + doc.id] = {}))[n] = line.markedSpans; }\n ++n;\n });\n }\n\n // When un/re-doing restores text containing marked spans, those\n // that have been explicitly cleared should not be restored.\n function removeClearedSpans(spans) {\n if (!spans) { return null }\n var out;\n for (var i = 0; i < spans.length; ++i) {\n if (spans[i].marker.explicitlyCleared) { if (!out) { out = spans.slice(0, i); } }\n else if (out) { out.push(spans[i]); }\n }\n return !out ? spans : out.length ? out : null\n }\n\n // Retrieve and filter the old marked spans stored in a change event.\n function getOldSpans(doc, change) {\n var found = change[\"spans_\" + doc.id];\n if (!found) { return null }\n var nw = [];\n for (var i = 0; i < change.text.length; ++i)\n { nw.push(removeClearedSpans(found[i])); }\n return nw\n }\n\n // Used for un/re-doing changes from the history. Combines the\n // result of computing the existing spans with the set of spans that\n // existed in the history (so that deleting around a span and then\n // undoing brings back the span).\n function mergeOldSpans(doc, change) {\n var old = getOldSpans(doc, change);\n var stretched = stretchSpansOverChange(doc, change);\n if (!old) { return stretched }\n if (!stretched) { return old }\n\n for (var i = 0; i < old.length; ++i) {\n var oldCur = old[i], stretchCur = stretched[i];\n if (oldCur && stretchCur) {\n spans: for (var j = 0; j < stretchCur.length; ++j) {\n var span = stretchCur[j];\n for (var k = 0; k < oldCur.length; ++k)\n { if (oldCur[k].marker == span.marker) { continue spans } }\n oldCur.push(span);\n }\n } else if (stretchCur) {\n old[i] = stretchCur;\n }\n }\n return old\n }\n\n // Used both to provide a JSON-safe object in .getHistory, and, when\n // detaching a document, to split the history in two\n function copyHistoryArray(events, newGroup, instantiateSel) {\n var copy = [];\n for (var i = 0; i < events.length; ++i) {\n var event = events[i];\n if (event.ranges) {\n copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event);\n continue\n }\n var changes = event.changes, newChanges = [];\n copy.push({changes: newChanges});\n for (var j = 0; j < changes.length; ++j) {\n var change = changes[j], m = (void 0);\n newChanges.push({from: change.from, to: change.to, text: change.text});\n if (newGroup) { for (var prop in change) { if (m = prop.match(/^spans_(\\d+)$/)) {\n if (indexOf(newGroup, Number(m[1])) > -1) {\n lst(newChanges)[prop] = change[prop];\n delete change[prop];\n }\n } } }\n }\n }\n return copy\n }\n\n // The 'scroll' parameter given to many of these indicated whether\n // the new cursor position should be scrolled into view after\n // modifying the selection.\n\n // If shift is held or the extend flag is set, extends a range to\n // include a given position (and optionally a second position).\n // Otherwise, simply returns the range between the given positions.\n // Used for cursor motion and such.\n function extendRange(range, head, other, extend) {\n if (extend) {\n var anchor = range.anchor;\n if (other) {\n var posBefore = cmp(head, anchor) < 0;\n if (posBefore != (cmp(other, anchor) < 0)) {\n anchor = head;\n head = other;\n } else if (posBefore != (cmp(head, other) < 0)) {\n head = other;\n }\n }\n return new Range(anchor, head)\n } else {\n return new Range(other || head, head)\n }\n }\n\n // Extend the primary selection range, discard the rest.\n function extendSelection(doc, head, other, options, extend) {\n if (extend == null) { extend = doc.cm && (doc.cm.display.shift || doc.extend); }\n setSelection(doc, new Selection([extendRange(doc.sel.primary(), head, other, extend)], 0), options);\n }\n\n // Extend all selections (pos is an array of selections with length\n // equal the number of selections)\n function extendSelections(doc, heads, options) {\n var out = [];\n var extend = doc.cm && (doc.cm.display.shift || doc.extend);\n for (var i = 0; i < doc.sel.ranges.length; i++)\n { out[i] = extendRange(doc.sel.ranges[i], heads[i], null, extend); }\n var newSel = normalizeSelection(doc.cm, out, doc.sel.primIndex);\n setSelection(doc, newSel, options);\n }\n\n // Updates a single range in the selection.\n function replaceOneSelection(doc, i, range, options) {\n var ranges = doc.sel.ranges.slice(0);\n ranges[i] = range;\n setSelection(doc, normalizeSelection(doc.cm, ranges, doc.sel.primIndex), options);\n }\n\n // Reset the selection to a single range.\n function setSimpleSelection(doc, anchor, head, options) {\n setSelection(doc, simpleSelection(anchor, head), options);\n }\n\n // Give beforeSelectionChange handlers a change to influence a\n // selection update.\n function filterSelectionChange(doc, sel, options) {\n var obj = {\n ranges: sel.ranges,\n update: function(ranges) {\n this.ranges = [];\n for (var i = 0; i < ranges.length; i++)\n { this.ranges[i] = new Range(clipPos(doc, ranges[i].anchor),\n clipPos(doc, ranges[i].head)); }\n },\n origin: options && options.origin\n };\n signal(doc, \"beforeSelectionChange\", doc, obj);\n if (doc.cm) { signal(doc.cm, \"beforeSelectionChange\", doc.cm, obj); }\n if (obj.ranges != sel.ranges) { return normalizeSelection(doc.cm, obj.ranges, obj.ranges.length - 1) }\n else { return sel }\n }\n\n function setSelectionReplaceHistory(doc, sel, options) {\n var done = doc.history.done, last = lst(done);\n if (last && last.ranges) {\n done[done.length - 1] = sel;\n setSelectionNoUndo(doc, sel, options);\n } else {\n setSelection(doc, sel, options);\n }\n }\n\n // Set a new selection.\n function setSelection(doc, sel, options) {\n setSelectionNoUndo(doc, sel, options);\n addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options);\n }\n\n function setSelectionNoUndo(doc, sel, options) {\n if (hasHandler(doc, \"beforeSelectionChange\") || doc.cm && hasHandler(doc.cm, \"beforeSelectionChange\"))\n { sel = filterSelectionChange(doc, sel, options); }\n\n var bias = options && options.bias ||\n (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1);\n setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true));\n\n if (!(options && options.scroll === false) && doc.cm)\n { ensureCursorVisible(doc.cm); }\n }\n\n function setSelectionInner(doc, sel) {\n if (sel.equals(doc.sel)) { return }\n\n doc.sel = sel;\n\n if (doc.cm) {\n doc.cm.curOp.updateInput = 1;\n doc.cm.curOp.selectionChanged = true;\n signalCursorActivity(doc.cm);\n }\n signalLater(doc, \"cursorActivity\", doc);\n }\n\n // Verify that the selection does not partially select any atomic\n // marked ranges.\n function reCheckSelection(doc) {\n setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false));\n }\n\n // Return a selection that does not partially select any atomic\n // ranges.\n function skipAtomicInSelection(doc, sel, bias, mayClear) {\n var out;\n for (var i = 0; i < sel.ranges.length; i++) {\n var range = sel.ranges[i];\n var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i];\n var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear);\n var newHead = skipAtomic(doc, range.head, old && old.head, bias, mayClear);\n if (out || newAnchor != range.anchor || newHead != range.head) {\n if (!out) { out = sel.ranges.slice(0, i); }\n out[i] = new Range(newAnchor, newHead);\n }\n }\n return out ? normalizeSelection(doc.cm, out, sel.primIndex) : sel\n }\n\n function skipAtomicInner(doc, pos, oldPos, dir, mayClear) {\n var line = getLine(doc, pos.line);\n if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n var sp = line.markedSpans[i], m = sp.marker;\n\n // Determine if we should prevent the cursor being placed to the left/right of an atomic marker\n // Historically this was determined using the inclusiveLeft/Right option, but the new way to control it\n // is with selectLeft/Right\n var preventCursorLeft = (\"selectLeft\" in m) ? !m.selectLeft : m.inclusiveLeft;\n var preventCursorRight = (\"selectRight\" in m) ? !m.selectRight : m.inclusiveRight;\n\n if ((sp.from == null || (preventCursorLeft ? sp.from <= pos.ch : sp.from < pos.ch)) &&\n (sp.to == null || (preventCursorRight ? sp.to >= pos.ch : sp.to > pos.ch))) {\n if (mayClear) {\n signal(m, \"beforeCursorEnter\");\n if (m.explicitlyCleared) {\n if (!line.markedSpans) { break }\n else {--i; continue}\n }\n }\n if (!m.atomic) { continue }\n\n if (oldPos) {\n var near = m.find(dir < 0 ? 1 : -1), diff = (void 0);\n if (dir < 0 ? preventCursorRight : preventCursorLeft)\n { near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null); }\n if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0))\n { return skipAtomicInner(doc, near, pos, dir, mayClear) }\n }\n\n var far = m.find(dir < 0 ? -1 : 1);\n if (dir < 0 ? preventCursorLeft : preventCursorRight)\n { far = movePos(doc, far, dir, far.line == pos.line ? line : null); }\n return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null\n }\n } }\n return pos\n }\n\n // Ensure a given position is not inside an atomic range.\n function skipAtomic(doc, pos, oldPos, bias, mayClear) {\n var dir = bias || 1;\n var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) ||\n (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) ||\n skipAtomicInner(doc, pos, oldPos, -dir, mayClear) ||\n (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true));\n if (!found) {\n doc.cantEdit = true;\n return Pos(doc.first, 0)\n }\n return found\n }\n\n function movePos(doc, pos, dir, line) {\n if (dir < 0 && pos.ch == 0) {\n if (pos.line > doc.first) { return clipPos(doc, Pos(pos.line - 1)) }\n else { return null }\n } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) {\n if (pos.line < doc.first + doc.size - 1) { return Pos(pos.line + 1, 0) }\n else { return null }\n } else {\n return new Pos(pos.line, pos.ch + dir)\n }\n }\n\n function selectAll(cm) {\n cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll);\n }\n\n // UPDATING\n\n // Allow \"beforeChange\" event handlers to influence a change\n function filterChange(doc, change, update) {\n var obj = {\n canceled: false,\n from: change.from,\n to: change.to,\n text: change.text,\n origin: change.origin,\n cancel: function () { return obj.canceled = true; }\n };\n if (update) { obj.update = function (from, to, text, origin) {\n if (from) { obj.from = clipPos(doc, from); }\n if (to) { obj.to = clipPos(doc, to); }\n if (text) { obj.text = text; }\n if (origin !== undefined) { obj.origin = origin; }\n }; }\n signal(doc, \"beforeChange\", doc, obj);\n if (doc.cm) { signal(doc.cm, \"beforeChange\", doc.cm, obj); }\n\n if (obj.canceled) {\n if (doc.cm) { doc.cm.curOp.updateInput = 2; }\n return null\n }\n return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin}\n }\n\n // Apply a change to a document, and add it to the document's\n // history, and propagating it to all linked documents.\n function makeChange(doc, change, ignoreReadOnly) {\n if (doc.cm) {\n if (!doc.cm.curOp) { return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly) }\n if (doc.cm.state.suppressEdits) { return }\n }\n\n if (hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\")) {\n change = filterChange(doc, change, true);\n if (!change) { return }\n }\n\n // Possibly split or suppress the update based on the presence\n // of read-only spans in its range.\n var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);\n if (split) {\n for (var i = split.length - 1; i >= 0; --i)\n { makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [\"\"] : change.text, origin: change.origin}); }\n } else {\n makeChangeInner(doc, change);\n }\n }\n\n function makeChangeInner(doc, change) {\n if (change.text.length == 1 && change.text[0] == \"\" && cmp(change.from, change.to) == 0) { return }\n var selAfter = computeSelAfterChange(doc, change);\n addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN);\n\n makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change));\n var rebased = [];\n\n linkedDocs(doc, function (doc, sharedHist) {\n if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n rebaseHist(doc.history, change);\n rebased.push(doc.history);\n }\n makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change));\n });\n }\n\n // Revert a change stored in a document's history.\n function makeChangeFromHistory(doc, type, allowSelectionOnly) {\n var suppress = doc.cm && doc.cm.state.suppressEdits;\n if (suppress && !allowSelectionOnly) { return }\n\n var hist = doc.history, event, selAfter = doc.sel;\n var source = type == \"undo\" ? hist.done : hist.undone, dest = type == \"undo\" ? hist.undone : hist.done;\n\n // Verify that there is a useable event (so that ctrl-z won't\n // needlessly clear selection events)\n var i = 0;\n for (; i < source.length; i++) {\n event = source[i];\n if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges)\n { break }\n }\n if (i == source.length) { return }\n hist.lastOrigin = hist.lastSelOrigin = null;\n\n for (;;) {\n event = source.pop();\n if (event.ranges) {\n pushSelectionToHistory(event, dest);\n if (allowSelectionOnly && !event.equals(doc.sel)) {\n setSelection(doc, event, {clearRedo: false});\n return\n }\n selAfter = event;\n } else if (suppress) {\n source.push(event);\n return\n } else { break }\n }\n\n // Build up a reverse change object to add to the opposite history\n // stack (redo when undoing, and vice versa).\n var antiChanges = [];\n pushSelectionToHistory(selAfter, dest);\n dest.push({changes: antiChanges, generation: hist.generation});\n hist.generation = event.generation || ++hist.maxGeneration;\n\n var filter = hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\");\n\n var loop = function ( i ) {\n var change = event.changes[i];\n change.origin = type;\n if (filter && !filterChange(doc, change, false)) {\n source.length = 0;\n return {}\n }\n\n antiChanges.push(historyChangeFromChange(doc, change));\n\n var after = i ? computeSelAfterChange(doc, change) : lst(source);\n makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change));\n if (!i && doc.cm) { doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)}); }\n var rebased = [];\n\n // Propagate to the linked documents\n linkedDocs(doc, function (doc, sharedHist) {\n if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n rebaseHist(doc.history, change);\n rebased.push(doc.history);\n }\n makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change));\n });\n };\n\n for (var i$1 = event.changes.length - 1; i$1 >= 0; --i$1) {\n var returned = loop( i$1 );\n\n if ( returned ) return returned.v;\n }\n }\n\n // Sub-views need their line numbers shifted when text is added\n // above or below them in the parent document.\n function shiftDoc(doc, distance) {\n if (distance == 0) { return }\n doc.first += distance;\n doc.sel = new Selection(map(doc.sel.ranges, function (range) { return new Range(\n Pos(range.anchor.line + distance, range.anchor.ch),\n Pos(range.head.line + distance, range.head.ch)\n ); }), doc.sel.primIndex);\n if (doc.cm) {\n regChange(doc.cm, doc.first, doc.first - distance, distance);\n for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++)\n { regLineChange(doc.cm, l, \"gutter\"); }\n }\n }\n\n // More lower-level change function, handling only a single document\n // (not linked ones).\n function makeChangeSingleDoc(doc, change, selAfter, spans) {\n if (doc.cm && !doc.cm.curOp)\n { return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans) }\n\n if (change.to.line < doc.first) {\n shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));\n return\n }\n if (change.from.line > doc.lastLine()) { return }\n\n // Clip the change to the size of this doc\n if (change.from.line < doc.first) {\n var shift = change.text.length - 1 - (doc.first - change.from.line);\n shiftDoc(doc, shift);\n change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),\n text: [lst(change.text)], origin: change.origin};\n }\n var last = doc.lastLine();\n if (change.to.line > last) {\n change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),\n text: [change.text[0]], origin: change.origin};\n }\n\n change.removed = getBetween(doc, change.from, change.to);\n\n if (!selAfter) { selAfter = computeSelAfterChange(doc, change); }\n if (doc.cm) { makeChangeSingleDocInEditor(doc.cm, change, spans); }\n else { updateDoc(doc, change, spans); }\n setSelectionNoUndo(doc, selAfter, sel_dontScroll);\n\n if (doc.cantEdit && skipAtomic(doc, Pos(doc.firstLine(), 0)))\n { doc.cantEdit = false; }\n }\n\n // Handle the interaction of a change to a document with the editor\n // that this document is part of.\n function makeChangeSingleDocInEditor(cm, change, spans) {\n var doc = cm.doc, display = cm.display, from = change.from, to = change.to;\n\n var recomputeMaxLength = false, checkWidthStart = from.line;\n if (!cm.options.lineWrapping) {\n checkWidthStart = lineNo(visualLine(getLine(doc, from.line)));\n doc.iter(checkWidthStart, to.line + 1, function (line) {\n if (line == display.maxLine) {\n recomputeMaxLength = true;\n return true\n }\n });\n }\n\n if (doc.sel.contains(change.from, change.to) > -1)\n { signalCursorActivity(cm); }\n\n updateDoc(doc, change, spans, estimateHeight(cm));\n\n if (!cm.options.lineWrapping) {\n doc.iter(checkWidthStart, from.line + change.text.length, function (line) {\n var len = lineLength(line);\n if (len > display.maxLineLength) {\n display.maxLine = line;\n display.maxLineLength = len;\n display.maxLineChanged = true;\n recomputeMaxLength = false;\n }\n });\n if (recomputeMaxLength) { cm.curOp.updateMaxLine = true; }\n }\n\n retreatFrontier(doc, from.line);\n startWorker(cm, 400);\n\n var lendiff = change.text.length - (to.line - from.line) - 1;\n // Remember that these lines changed, for updating the display\n if (change.full)\n { regChange(cm); }\n else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change))\n { regLineChange(cm, from.line, \"text\"); }\n else\n { regChange(cm, from.line, to.line + 1, lendiff); }\n\n var changesHandler = hasHandler(cm, \"changes\"), changeHandler = hasHandler(cm, \"change\");\n if (changeHandler || changesHandler) {\n var obj = {\n from: from, to: to,\n text: change.text,\n removed: change.removed,\n origin: change.origin\n };\n if (changeHandler) { signalLater(cm, \"change\", cm, obj); }\n if (changesHandler) { (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); }\n }\n cm.display.selForContextMenu = null;\n }\n\n function replaceRange(doc, code, from, to, origin) {\n var assign;\n\n if (!to) { to = from; }\n if (cmp(to, from) < 0) { (assign = [to, from], from = assign[0], to = assign[1]); }\n if (typeof code == \"string\") { code = doc.splitLines(code); }\n makeChange(doc, {from: from, to: to, text: code, origin: origin});\n }\n\n // Rebasing/resetting history to deal with externally-sourced changes\n\n function rebaseHistSelSingle(pos, from, to, diff) {\n if (to < pos.line) {\n pos.line += diff;\n } else if (from < pos.line) {\n pos.line = from;\n pos.ch = 0;\n }\n }\n\n // Tries to rebase an array of history events given a change in the\n // document. If the change touches the same lines as the event, the\n // event, and everything 'behind' it, is discarded. If the change is\n // before the event, the event's positions are updated. Uses a\n // copy-on-write scheme for the positions, to avoid having to\n // reallocate them all on every rebase, but also avoid problems with\n // shared position objects being unsafely updated.\n function rebaseHistArray(array, from, to, diff) {\n for (var i = 0; i < array.length; ++i) {\n var sub = array[i], ok = true;\n if (sub.ranges) {\n if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; }\n for (var j = 0; j < sub.ranges.length; j++) {\n rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff);\n rebaseHistSelSingle(sub.ranges[j].head, from, to, diff);\n }\n continue\n }\n for (var j$1 = 0; j$1 < sub.changes.length; ++j$1) {\n var cur = sub.changes[j$1];\n if (to < cur.from.line) {\n cur.from = Pos(cur.from.line + diff, cur.from.ch);\n cur.to = Pos(cur.to.line + diff, cur.to.ch);\n } else if (from <= cur.to.line) {\n ok = false;\n break\n }\n }\n if (!ok) {\n array.splice(0, i + 1);\n i = 0;\n }\n }\n }\n\n function rebaseHist(hist, change) {\n var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1;\n rebaseHistArray(hist.done, from, to, diff);\n rebaseHistArray(hist.undone, from, to, diff);\n }\n\n // Utility for applying a change to a line by handle or number,\n // returning the number and optionally registering the line as\n // changed.\n function changeLine(doc, handle, changeType, op) {\n var no = handle, line = handle;\n if (typeof handle == \"number\") { line = getLine(doc, clipLine(doc, handle)); }\n else { no = lineNo(handle); }\n if (no == null) { return null }\n if (op(line, no) && doc.cm) { regLineChange(doc.cm, no, changeType); }\n return line\n }\n\n // The document is represented as a BTree consisting of leaves, with\n // chunk of lines in them, and branches, with up to ten leaves or\n // other branch nodes below them. The top node is always a branch\n // node, and is the document object itself (meaning it has\n // additional methods and properties).\n //\n // All nodes have parent links. The tree is used both to go from\n // line numbers to line objects, and to go from objects to numbers.\n // It also indexes by height, and is used to convert between height\n // and line object, and to find the total height of the document.\n //\n // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html\n\n function LeafChunk(lines) {\n this.lines = lines;\n this.parent = null;\n var height = 0;\n for (var i = 0; i < lines.length; ++i) {\n lines[i].parent = this;\n height += lines[i].height;\n }\n this.height = height;\n }\n\n LeafChunk.prototype = {\n chunkSize: function() { return this.lines.length },\n\n // Remove the n lines at offset 'at'.\n removeInner: function(at, n) {\n for (var i = at, e = at + n; i < e; ++i) {\n var line = this.lines[i];\n this.height -= line.height;\n cleanUpLine(line);\n signalLater(line, \"delete\");\n }\n this.lines.splice(at, n);\n },\n\n // Helper used to collapse a small branch into a single leaf.\n collapse: function(lines) {\n lines.push.apply(lines, this.lines);\n },\n\n // Insert the given array of lines at offset 'at', count them as\n // having the given height.\n insertInner: function(at, lines, height) {\n this.height += height;\n this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));\n for (var i = 0; i < lines.length; ++i) { lines[i].parent = this; }\n },\n\n // Used to iterate over a part of the tree.\n iterN: function(at, n, op) {\n for (var e = at + n; at < e; ++at)\n { if (op(this.lines[at])) { return true } }\n }\n };\n\n function BranchChunk(children) {\n this.children = children;\n var size = 0, height = 0;\n for (var i = 0; i < children.length; ++i) {\n var ch = children[i];\n size += ch.chunkSize(); height += ch.height;\n ch.parent = this;\n }\n this.size = size;\n this.height = height;\n this.parent = null;\n }\n\n BranchChunk.prototype = {\n chunkSize: function() { return this.size },\n\n removeInner: function(at, n) {\n this.size -= n;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at < sz) {\n var rm = Math.min(n, sz - at), oldHeight = child.height;\n child.removeInner(at, rm);\n this.height -= oldHeight - child.height;\n if (sz == rm) { this.children.splice(i--, 1); child.parent = null; }\n if ((n -= rm) == 0) { break }\n at = 0;\n } else { at -= sz; }\n }\n // If the result is smaller than 25 lines, ensure that it is a\n // single leaf node.\n if (this.size - n < 25 &&\n (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) {\n var lines = [];\n this.collapse(lines);\n this.children = [new LeafChunk(lines)];\n this.children[0].parent = this;\n }\n },\n\n collapse: function(lines) {\n for (var i = 0; i < this.children.length; ++i) { this.children[i].collapse(lines); }\n },\n\n insertInner: function(at, lines, height) {\n this.size += lines.length;\n this.height += height;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at <= sz) {\n child.insertInner(at, lines, height);\n if (child.lines && child.lines.length > 50) {\n // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced.\n // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest.\n var remaining = child.lines.length % 25 + 25;\n for (var pos = remaining; pos < child.lines.length;) {\n var leaf = new LeafChunk(child.lines.slice(pos, pos += 25));\n child.height -= leaf.height;\n this.children.splice(++i, 0, leaf);\n leaf.parent = this;\n }\n child.lines = child.lines.slice(0, remaining);\n this.maybeSpill();\n }\n break\n }\n at -= sz;\n }\n },\n\n // When a node has grown, check whether it should be split.\n maybeSpill: function() {\n if (this.children.length <= 10) { return }\n var me = this;\n do {\n var spilled = me.children.splice(me.children.length - 5, 5);\n var sibling = new BranchChunk(spilled);\n if (!me.parent) { // Become the parent node\n var copy = new BranchChunk(me.children);\n copy.parent = me;\n me.children = [copy, sibling];\n me = copy;\n } else {\n me.size -= sibling.size;\n me.height -= sibling.height;\n var myIndex = indexOf(me.parent.children, me);\n me.parent.children.splice(myIndex + 1, 0, sibling);\n }\n sibling.parent = me.parent;\n } while (me.children.length > 10)\n me.parent.maybeSpill();\n },\n\n iterN: function(at, n, op) {\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at < sz) {\n var used = Math.min(n, sz - at);\n if (child.iterN(at, used, op)) { return true }\n if ((n -= used) == 0) { break }\n at = 0;\n } else { at -= sz; }\n }\n }\n };\n\n // Line widgets are block elements displayed above or below a line.\n\n var LineWidget = function(doc, node, options) {\n if (options) { for (var opt in options) { if (options.hasOwnProperty(opt))\n { this[opt] = options[opt]; } } }\n this.doc = doc;\n this.node = node;\n };\n\n LineWidget.prototype.clear = function () {\n var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line);\n if (no == null || !ws) { return }\n for (var i = 0; i < ws.length; ++i) { if (ws[i] == this) { ws.splice(i--, 1); } }\n if (!ws.length) { line.widgets = null; }\n var height = widgetHeight(this);\n updateLineHeight(line, Math.max(0, line.height - height));\n if (cm) {\n runInOp(cm, function () {\n adjustScrollWhenAboveVisible(cm, line, -height);\n regLineChange(cm, no, \"widget\");\n });\n signalLater(cm, \"lineWidgetCleared\", cm, this, no);\n }\n };\n\n LineWidget.prototype.changed = function () {\n var this$1 = this;\n\n var oldH = this.height, cm = this.doc.cm, line = this.line;\n this.height = null;\n var diff = widgetHeight(this) - oldH;\n if (!diff) { return }\n if (!lineIsHidden(this.doc, line)) { updateLineHeight(line, line.height + diff); }\n if (cm) {\n runInOp(cm, function () {\n cm.curOp.forceUpdate = true;\n adjustScrollWhenAboveVisible(cm, line, diff);\n signalLater(cm, \"lineWidgetChanged\", cm, this$1, lineNo(line));\n });\n }\n };\n eventMixin(LineWidget);\n\n function adjustScrollWhenAboveVisible(cm, line, diff) {\n if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))\n { addToScrollTop(cm, diff); }\n }\n\n function addLineWidget(doc, handle, node, options) {\n var widget = new LineWidget(doc, node, options);\n var cm = doc.cm;\n if (cm && widget.noHScroll) { cm.display.alignWidgets = true; }\n changeLine(doc, handle, \"widget\", function (line) {\n var widgets = line.widgets || (line.widgets = []);\n if (widget.insertAt == null) { widgets.push(widget); }\n else { widgets.splice(Math.min(widgets.length, Math.max(0, widget.insertAt)), 0, widget); }\n widget.line = line;\n if (cm && !lineIsHidden(doc, line)) {\n var aboveVisible = heightAtLine(line) < doc.scrollTop;\n updateLineHeight(line, line.height + widgetHeight(widget));\n if (aboveVisible) { addToScrollTop(cm, widget.height); }\n cm.curOp.forceUpdate = true;\n }\n return true\n });\n if (cm) { signalLater(cm, \"lineWidgetAdded\", cm, widget, typeof handle == \"number\" ? handle : lineNo(handle)); }\n return widget\n }\n\n // TEXTMARKERS\n\n // Created with markText and setBookmark methods. A TextMarker is a\n // handle that can be used to clear or find a marked position in the\n // document. Line objects hold arrays (markedSpans) containing\n // {from, to, marker} object pointing to such marker objects, and\n // indicating that such a marker is present on that line. Multiple\n // lines may point to the same marker when it spans across lines.\n // The spans will have null for their from/to properties when the\n // marker continues beyond the start/end of the line. Markers have\n // links back to the lines they currently touch.\n\n // Collapsed markers have unique ids, in order to be able to order\n // them, which is needed for uniquely determining an outer marker\n // when they overlap (they may nest, but not partially overlap).\n var nextMarkerId = 0;\n\n var TextMarker = function(doc, type) {\n this.lines = [];\n this.type = type;\n this.doc = doc;\n this.id = ++nextMarkerId;\n };\n\n // Clear the marker.\n TextMarker.prototype.clear = function () {\n if (this.explicitlyCleared) { return }\n var cm = this.doc.cm, withOp = cm && !cm.curOp;\n if (withOp) { startOperation(cm); }\n if (hasHandler(this, \"clear\")) {\n var found = this.find();\n if (found) { signalLater(this, \"clear\", found.from, found.to); }\n }\n var min = null, max = null;\n for (var i = 0; i < this.lines.length; ++i) {\n var line = this.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this);\n if (cm && !this.collapsed) { regLineChange(cm, lineNo(line), \"text\"); }\n else if (cm) {\n if (span.to != null) { max = lineNo(line); }\n if (span.from != null) { min = lineNo(line); }\n }\n line.markedSpans = removeMarkedSpan(line.markedSpans, span);\n if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm)\n { updateLineHeight(line, textHeight(cm.display)); }\n }\n if (cm && this.collapsed && !cm.options.lineWrapping) { for (var i$1 = 0; i$1 < this.lines.length; ++i$1) {\n var visual = visualLine(this.lines[i$1]), len = lineLength(visual);\n if (len > cm.display.maxLineLength) {\n cm.display.maxLine = visual;\n cm.display.maxLineLength = len;\n cm.display.maxLineChanged = true;\n }\n } }\n\n if (min != null && cm && this.collapsed) { regChange(cm, min, max + 1); }\n this.lines.length = 0;\n this.explicitlyCleared = true;\n if (this.atomic && this.doc.cantEdit) {\n this.doc.cantEdit = false;\n if (cm) { reCheckSelection(cm.doc); }\n }\n if (cm) { signalLater(cm, \"markerCleared\", cm, this, min, max); }\n if (withOp) { endOperation(cm); }\n if (this.parent) { this.parent.clear(); }\n };\n\n // Find the position of the marker in the document. Returns a {from,\n // to} object by default. Side can be passed to get a specific side\n // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the\n // Pos objects returned contain a line object, rather than a line\n // number (used to prevent looking up the same line twice).\n TextMarker.prototype.find = function (side, lineObj) {\n if (side == null && this.type == \"bookmark\") { side = 1; }\n var from, to;\n for (var i = 0; i < this.lines.length; ++i) {\n var line = this.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this);\n if (span.from != null) {\n from = Pos(lineObj ? line : lineNo(line), span.from);\n if (side == -1) { return from }\n }\n if (span.to != null) {\n to = Pos(lineObj ? line : lineNo(line), span.to);\n if (side == 1) { return to }\n }\n }\n return from && {from: from, to: to}\n };\n\n // Signals that the marker's widget changed, and surrounding layout\n // should be recomputed.\n TextMarker.prototype.changed = function () {\n var this$1 = this;\n\n var pos = this.find(-1, true), widget = this, cm = this.doc.cm;\n if (!pos || !cm) { return }\n runInOp(cm, function () {\n var line = pos.line, lineN = lineNo(pos.line);\n var view = findViewForLine(cm, lineN);\n if (view) {\n clearLineMeasurementCacheFor(view);\n cm.curOp.selectionChanged = cm.curOp.forceUpdate = true;\n }\n cm.curOp.updateMaxLine = true;\n if (!lineIsHidden(widget.doc, line) && widget.height != null) {\n var oldHeight = widget.height;\n widget.height = null;\n var dHeight = widgetHeight(widget) - oldHeight;\n if (dHeight)\n { updateLineHeight(line, line.height + dHeight); }\n }\n signalLater(cm, \"markerChanged\", cm, this$1);\n });\n };\n\n TextMarker.prototype.attachLine = function (line) {\n if (!this.lines.length && this.doc.cm) {\n var op = this.doc.cm.curOp;\n if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1)\n { (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); }\n }\n this.lines.push(line);\n };\n\n TextMarker.prototype.detachLine = function (line) {\n this.lines.splice(indexOf(this.lines, line), 1);\n if (!this.lines.length && this.doc.cm) {\n var op = this.doc.cm.curOp\n ;(op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this);\n }\n };\n eventMixin(TextMarker);\n\n // Create a marker, wire it up to the right lines, and\n function markText(doc, from, to, options, type) {\n // Shared markers (across linked documents) are handled separately\n // (markTextShared will call out to this again, once per\n // document).\n if (options && options.shared) { return markTextShared(doc, from, to, options, type) }\n // Ensure we are in an operation.\n if (doc.cm && !doc.cm.curOp) { return operation(doc.cm, markText)(doc, from, to, options, type) }\n\n var marker = new TextMarker(doc, type), diff = cmp(from, to);\n if (options) { copyObj(options, marker, false); }\n // Don't connect empty markers unless clearWhenEmpty is false\n if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false)\n { return marker }\n if (marker.replacedWith) {\n // Showing up as a widget implies collapsed (widget replaces text)\n marker.collapsed = true;\n marker.widgetNode = eltP(\"span\", [marker.replacedWith], \"CodeMirror-widget\");\n if (!options.handleMouseEvents) { marker.widgetNode.setAttribute(\"cm-ignore-events\", \"true\"); }\n if (options.insertLeft) { marker.widgetNode.insertLeft = true; }\n }\n if (marker.collapsed) {\n if (conflictingCollapsedRange(doc, from.line, from, to, marker) ||\n from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker))\n { throw new Error(\"Inserting collapsed marker partially overlapping an existing one\") }\n seeCollapsedSpans();\n }\n\n if (marker.addToHistory)\n { addChangeToHistory(doc, {from: from, to: to, origin: \"markText\"}, doc.sel, NaN); }\n\n var curLine = from.line, cm = doc.cm, updateMaxLine;\n doc.iter(curLine, to.line + 1, function (line) {\n if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine)\n { updateMaxLine = true; }\n if (marker.collapsed && curLine != from.line) { updateLineHeight(line, 0); }\n addMarkedSpan(line, new MarkedSpan(marker,\n curLine == from.line ? from.ch : null,\n curLine == to.line ? to.ch : null));\n ++curLine;\n });\n // lineIsHidden depends on the presence of the spans, so needs a second pass\n if (marker.collapsed) { doc.iter(from.line, to.line + 1, function (line) {\n if (lineIsHidden(doc, line)) { updateLineHeight(line, 0); }\n }); }\n\n if (marker.clearOnEnter) { on(marker, \"beforeCursorEnter\", function () { return marker.clear(); }); }\n\n if (marker.readOnly) {\n seeReadOnlySpans();\n if (doc.history.done.length || doc.history.undone.length)\n { doc.clearHistory(); }\n }\n if (marker.collapsed) {\n marker.id = ++nextMarkerId;\n marker.atomic = true;\n }\n if (cm) {\n // Sync editor state\n if (updateMaxLine) { cm.curOp.updateMaxLine = true; }\n if (marker.collapsed)\n { regChange(cm, from.line, to.line + 1); }\n else if (marker.className || marker.startStyle || marker.endStyle || marker.css ||\n marker.attributes || marker.title)\n { for (var i = from.line; i <= to.line; i++) { regLineChange(cm, i, \"text\"); } }\n if (marker.atomic) { reCheckSelection(cm.doc); }\n signalLater(cm, \"markerAdded\", cm, marker);\n }\n return marker\n }\n\n // SHARED TEXTMARKERS\n\n // A shared marker spans multiple linked documents. It is\n // implemented as a meta-marker-object controlling multiple normal\n // markers.\n var SharedTextMarker = function(markers, primary) {\n this.markers = markers;\n this.primary = primary;\n for (var i = 0; i < markers.length; ++i)\n { markers[i].parent = this; }\n };\n\n SharedTextMarker.prototype.clear = function () {\n if (this.explicitlyCleared) { return }\n this.explicitlyCleared = true;\n for (var i = 0; i < this.markers.length; ++i)\n { this.markers[i].clear(); }\n signalLater(this, \"clear\");\n };\n\n SharedTextMarker.prototype.find = function (side, lineObj) {\n return this.primary.find(side, lineObj)\n };\n eventMixin(SharedTextMarker);\n\n function markTextShared(doc, from, to, options, type) {\n options = copyObj(options);\n options.shared = false;\n var markers = [markText(doc, from, to, options, type)], primary = markers[0];\n var widget = options.widgetNode;\n linkedDocs(doc, function (doc) {\n if (widget) { options.widgetNode = widget.cloneNode(true); }\n markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type));\n for (var i = 0; i < doc.linked.length; ++i)\n { if (doc.linked[i].isParent) { return } }\n primary = lst(markers);\n });\n return new SharedTextMarker(markers, primary)\n }\n\n function findSharedMarkers(doc) {\n return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), function (m) { return m.parent; })\n }\n\n function copySharedMarkers(doc, markers) {\n for (var i = 0; i < markers.length; i++) {\n var marker = markers[i], pos = marker.find();\n var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to);\n if (cmp(mFrom, mTo)) {\n var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type);\n marker.markers.push(subMark);\n subMark.parent = marker;\n }\n }\n }\n\n function detachSharedMarkers(markers) {\n var loop = function ( i ) {\n var marker = markers[i], linked = [marker.primary.doc];\n linkedDocs(marker.primary.doc, function (d) { return linked.push(d); });\n for (var j = 0; j < marker.markers.length; j++) {\n var subMarker = marker.markers[j];\n if (indexOf(linked, subMarker.doc) == -1) {\n subMarker.parent = null;\n marker.markers.splice(j--, 1);\n }\n }\n };\n\n for (var i = 0; i < markers.length; i++) loop( i );\n }\n\n var nextDocId = 0;\n var Doc = function(text, mode, firstLine, lineSep, direction) {\n if (!(this instanceof Doc)) { return new Doc(text, mode, firstLine, lineSep, direction) }\n if (firstLine == null) { firstLine = 0; }\n\n BranchChunk.call(this, [new LeafChunk([new Line(\"\", null)])]);\n this.first = firstLine;\n this.scrollTop = this.scrollLeft = 0;\n this.cantEdit = false;\n this.cleanGeneration = 1;\n this.modeFrontier = this.highlightFrontier = firstLine;\n var start = Pos(firstLine, 0);\n this.sel = simpleSelection(start);\n this.history = new History(null);\n this.id = ++nextDocId;\n this.modeOption = mode;\n this.lineSep = lineSep;\n this.direction = (direction == \"rtl\") ? \"rtl\" : \"ltr\";\n this.extend = false;\n\n if (typeof text == \"string\") { text = this.splitLines(text); }\n updateDoc(this, {from: start, to: start, text: text});\n setSelection(this, simpleSelection(start), sel_dontScroll);\n };\n\n Doc.prototype = createObj(BranchChunk.prototype, {\n constructor: Doc,\n // Iterate over the document. Supports two forms -- with only one\n // argument, it calls that for each line in the document. With\n // three, it iterates over the range given by the first two (with\n // the second being non-inclusive).\n iter: function(from, to, op) {\n if (op) { this.iterN(from - this.first, to - from, op); }\n else { this.iterN(this.first, this.first + this.size, from); }\n },\n\n // Non-public interface for adding and removing lines.\n insert: function(at, lines) {\n var height = 0;\n for (var i = 0; i < lines.length; ++i) { height += lines[i].height; }\n this.insertInner(at - this.first, lines, height);\n },\n remove: function(at, n) { this.removeInner(at - this.first, n); },\n\n // From here, the methods are part of the public interface. Most\n // are also available from CodeMirror (editor) instances.\n\n getValue: function(lineSep) {\n var lines = getLines(this, this.first, this.first + this.size);\n if (lineSep === false) { return lines }\n return lines.join(lineSep || this.lineSeparator())\n },\n setValue: docMethodOp(function(code) {\n var top = Pos(this.first, 0), last = this.first + this.size - 1;\n makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),\n text: this.splitLines(code), origin: \"setValue\", full: true}, true);\n if (this.cm) { scrollToCoords(this.cm, 0, 0); }\n setSelection(this, simpleSelection(top), sel_dontScroll);\n }),\n replaceRange: function(code, from, to, origin) {\n from = clipPos(this, from);\n to = to ? clipPos(this, to) : from;\n replaceRange(this, code, from, to, origin);\n },\n getRange: function(from, to, lineSep) {\n var lines = getBetween(this, clipPos(this, from), clipPos(this, to));\n if (lineSep === false) { return lines }\n return lines.join(lineSep || this.lineSeparator())\n },\n\n getLine: function(line) {var l = this.getLineHandle(line); return l && l.text},\n\n getLineHandle: function(line) {if (isLine(this, line)) { return getLine(this, line) }},\n getLineNumber: function(line) {return lineNo(line)},\n\n getLineHandleVisualStart: function(line) {\n if (typeof line == \"number\") { line = getLine(this, line); }\n return visualLine(line)\n },\n\n lineCount: function() {return this.size},\n firstLine: function() {return this.first},\n lastLine: function() {return this.first + this.size - 1},\n\n clipPos: function(pos) {return clipPos(this, pos)},\n\n getCursor: function(start) {\n var range = this.sel.primary(), pos;\n if (start == null || start == \"head\") { pos = range.head; }\n else if (start == \"anchor\") { pos = range.anchor; }\n else if (start == \"end\" || start == \"to\" || start === false) { pos = range.to(); }\n else { pos = range.from(); }\n return pos\n },\n listSelections: function() { return this.sel.ranges },\n somethingSelected: function() {return this.sel.somethingSelected()},\n\n setCursor: docMethodOp(function(line, ch, options) {\n setSimpleSelection(this, clipPos(this, typeof line == \"number\" ? Pos(line, ch || 0) : line), null, options);\n }),\n setSelection: docMethodOp(function(anchor, head, options) {\n setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options);\n }),\n extendSelection: docMethodOp(function(head, other, options) {\n extendSelection(this, clipPos(this, head), other && clipPos(this, other), options);\n }),\n extendSelections: docMethodOp(function(heads, options) {\n extendSelections(this, clipPosArray(this, heads), options);\n }),\n extendSelectionsBy: docMethodOp(function(f, options) {\n var heads = map(this.sel.ranges, f);\n extendSelections(this, clipPosArray(this, heads), options);\n }),\n setSelections: docMethodOp(function(ranges, primary, options) {\n if (!ranges.length) { return }\n var out = [];\n for (var i = 0; i < ranges.length; i++)\n { out[i] = new Range(clipPos(this, ranges[i].anchor),\n clipPos(this, ranges[i].head)); }\n if (primary == null) { primary = Math.min(ranges.length - 1, this.sel.primIndex); }\n setSelection(this, normalizeSelection(this.cm, out, primary), options);\n }),\n addSelection: docMethodOp(function(anchor, head, options) {\n var ranges = this.sel.ranges.slice(0);\n ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor)));\n setSelection(this, normalizeSelection(this.cm, ranges, ranges.length - 1), options);\n }),\n\n getSelection: function(lineSep) {\n var ranges = this.sel.ranges, lines;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n lines = lines ? lines.concat(sel) : sel;\n }\n if (lineSep === false) { return lines }\n else { return lines.join(lineSep || this.lineSeparator()) }\n },\n getSelections: function(lineSep) {\n var parts = [], ranges = this.sel.ranges;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n if (lineSep !== false) { sel = sel.join(lineSep || this.lineSeparator()); }\n parts[i] = sel;\n }\n return parts\n },\n replaceSelection: function(code, collapse, origin) {\n var dup = [];\n for (var i = 0; i < this.sel.ranges.length; i++)\n { dup[i] = code; }\n this.replaceSelections(dup, collapse, origin || \"+input\");\n },\n replaceSelections: docMethodOp(function(code, collapse, origin) {\n var changes = [], sel = this.sel;\n for (var i = 0; i < sel.ranges.length; i++) {\n var range = sel.ranges[i];\n changes[i] = {from: range.from(), to: range.to(), text: this.splitLines(code[i]), origin: origin};\n }\n var newSel = collapse && collapse != \"end\" && computeReplacedSel(this, changes, collapse);\n for (var i$1 = changes.length - 1; i$1 >= 0; i$1--)\n { makeChange(this, changes[i$1]); }\n if (newSel) { setSelectionReplaceHistory(this, newSel); }\n else if (this.cm) { ensureCursorVisible(this.cm); }\n }),\n undo: docMethodOp(function() {makeChangeFromHistory(this, \"undo\");}),\n redo: docMethodOp(function() {makeChangeFromHistory(this, \"redo\");}),\n undoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"undo\", true);}),\n redoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"redo\", true);}),\n\n setExtending: function(val) {this.extend = val;},\n getExtending: function() {return this.extend},\n\n historySize: function() {\n var hist = this.history, done = 0, undone = 0;\n for (var i = 0; i < hist.done.length; i++) { if (!hist.done[i].ranges) { ++done; } }\n for (var i$1 = 0; i$1 < hist.undone.length; i$1++) { if (!hist.undone[i$1].ranges) { ++undone; } }\n return {undo: done, redo: undone}\n },\n clearHistory: function() {\n var this$1 = this;\n\n this.history = new History(this.history.maxGeneration);\n linkedDocs(this, function (doc) { return doc.history = this$1.history; }, true);\n },\n\n markClean: function() {\n this.cleanGeneration = this.changeGeneration(true);\n },\n changeGeneration: function(forceSplit) {\n if (forceSplit)\n { this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; }\n return this.history.generation\n },\n isClean: function (gen) {\n return this.history.generation == (gen || this.cleanGeneration)\n },\n\n getHistory: function() {\n return {done: copyHistoryArray(this.history.done),\n undone: copyHistoryArray(this.history.undone)}\n },\n setHistory: function(histData) {\n var hist = this.history = new History(this.history.maxGeneration);\n hist.done = copyHistoryArray(histData.done.slice(0), null, true);\n hist.undone = copyHistoryArray(histData.undone.slice(0), null, true);\n },\n\n setGutterMarker: docMethodOp(function(line, gutterID, value) {\n return changeLine(this, line, \"gutter\", function (line) {\n var markers = line.gutterMarkers || (line.gutterMarkers = {});\n markers[gutterID] = value;\n if (!value && isEmpty(markers)) { line.gutterMarkers = null; }\n return true\n })\n }),\n\n clearGutter: docMethodOp(function(gutterID) {\n var this$1 = this;\n\n this.iter(function (line) {\n if (line.gutterMarkers && line.gutterMarkers[gutterID]) {\n changeLine(this$1, line, \"gutter\", function () {\n line.gutterMarkers[gutterID] = null;\n if (isEmpty(line.gutterMarkers)) { line.gutterMarkers = null; }\n return true\n });\n }\n });\n }),\n\n lineInfo: function(line) {\n var n;\n if (typeof line == \"number\") {\n if (!isLine(this, line)) { return null }\n n = line;\n line = getLine(this, line);\n if (!line) { return null }\n } else {\n n = lineNo(line);\n if (n == null) { return null }\n }\n return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers,\n textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass,\n widgets: line.widgets}\n },\n\n addLineClass: docMethodOp(function(handle, where, cls) {\n return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n var prop = where == \"text\" ? \"textClass\"\n : where == \"background\" ? \"bgClass\"\n : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n if (!line[prop]) { line[prop] = cls; }\n else if (classTest(cls).test(line[prop])) { return false }\n else { line[prop] += \" \" + cls; }\n return true\n })\n }),\n removeLineClass: docMethodOp(function(handle, where, cls) {\n return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n var prop = where == \"text\" ? \"textClass\"\n : where == \"background\" ? \"bgClass\"\n : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n var cur = line[prop];\n if (!cur) { return false }\n else if (cls == null) { line[prop] = null; }\n else {\n var found = cur.match(classTest(cls));\n if (!found) { return false }\n var end = found.index + found[0].length;\n line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? \"\" : \" \") + cur.slice(end) || null;\n }\n return true\n })\n }),\n\n addLineWidget: docMethodOp(function(handle, node, options) {\n return addLineWidget(this, handle, node, options)\n }),\n removeLineWidget: function(widget) { widget.clear(); },\n\n markText: function(from, to, options) {\n return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || \"range\")\n },\n setBookmark: function(pos, options) {\n var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),\n insertLeft: options && options.insertLeft,\n clearWhenEmpty: false, shared: options && options.shared,\n handleMouseEvents: options && options.handleMouseEvents};\n pos = clipPos(this, pos);\n return markText(this, pos, pos, realOpts, \"bookmark\")\n },\n findMarksAt: function(pos) {\n pos = clipPos(this, pos);\n var markers = [], spans = getLine(this, pos.line).markedSpans;\n if (spans) { for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if ((span.from == null || span.from <= pos.ch) &&\n (span.to == null || span.to >= pos.ch))\n { markers.push(span.marker.parent || span.marker); }\n } }\n return markers\n },\n findMarks: function(from, to, filter) {\n from = clipPos(this, from); to = clipPos(this, to);\n var found = [], lineNo = from.line;\n this.iter(from.line, to.line + 1, function (line) {\n var spans = line.markedSpans;\n if (spans) { for (var i = 0; i < spans.length; i++) {\n var span = spans[i];\n if (!(span.to != null && lineNo == from.line && from.ch >= span.to ||\n span.from == null && lineNo != from.line ||\n span.from != null && lineNo == to.line && span.from >= to.ch) &&\n (!filter || filter(span.marker)))\n { found.push(span.marker.parent || span.marker); }\n } }\n ++lineNo;\n });\n return found\n },\n getAllMarks: function() {\n var markers = [];\n this.iter(function (line) {\n var sps = line.markedSpans;\n if (sps) { for (var i = 0; i < sps.length; ++i)\n { if (sps[i].from != null) { markers.push(sps[i].marker); } } }\n });\n return markers\n },\n\n posFromIndex: function(off) {\n var ch, lineNo = this.first, sepSize = this.lineSeparator().length;\n this.iter(function (line) {\n var sz = line.text.length + sepSize;\n if (sz > off) { ch = off; return true }\n off -= sz;\n ++lineNo;\n });\n return clipPos(this, Pos(lineNo, ch))\n },\n indexFromPos: function (coords) {\n coords = clipPos(this, coords);\n var index = coords.ch;\n if (coords.line < this.first || coords.ch < 0) { return 0 }\n var sepSize = this.lineSeparator().length;\n this.iter(this.first, coords.line, function (line) { // iter aborts when callback returns a truthy value\n index += line.text.length + sepSize;\n });\n return index\n },\n\n copy: function(copyHistory) {\n var doc = new Doc(getLines(this, this.first, this.first + this.size),\n this.modeOption, this.first, this.lineSep, this.direction);\n doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft;\n doc.sel = this.sel;\n doc.extend = false;\n if (copyHistory) {\n doc.history.undoDepth = this.history.undoDepth;\n doc.setHistory(this.getHistory());\n }\n return doc\n },\n\n linkedDoc: function(options) {\n if (!options) { options = {}; }\n var from = this.first, to = this.first + this.size;\n if (options.from != null && options.from > from) { from = options.from; }\n if (options.to != null && options.to < to) { to = options.to; }\n var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep, this.direction);\n if (options.sharedHist) { copy.history = this.history\n ; }(this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist});\n copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}];\n copySharedMarkers(copy, findSharedMarkers(this));\n return copy\n },\n unlinkDoc: function(other) {\n if (other instanceof CodeMirror) { other = other.doc; }\n if (this.linked) { for (var i = 0; i < this.linked.length; ++i) {\n var link = this.linked[i];\n if (link.doc != other) { continue }\n this.linked.splice(i, 1);\n other.unlinkDoc(this);\n detachSharedMarkers(findSharedMarkers(this));\n break\n } }\n // If the histories were shared, split them again\n if (other.history == this.history) {\n var splitIds = [other.id];\n linkedDocs(other, function (doc) { return splitIds.push(doc.id); }, true);\n other.history = new History(null);\n other.history.done = copyHistoryArray(this.history.done, splitIds);\n other.history.undone = copyHistoryArray(this.history.undone, splitIds);\n }\n },\n iterLinkedDocs: function(f) {linkedDocs(this, f);},\n\n getMode: function() {return this.mode},\n getEditor: function() {return this.cm},\n\n splitLines: function(str) {\n if (this.lineSep) { return str.split(this.lineSep) }\n return splitLinesAuto(str)\n },\n lineSeparator: function() { return this.lineSep || \"\\n\" },\n\n setDirection: docMethodOp(function (dir) {\n if (dir != \"rtl\") { dir = \"ltr\"; }\n if (dir == this.direction) { return }\n this.direction = dir;\n this.iter(function (line) { return line.order = null; });\n if (this.cm) { directionChanged(this.cm); }\n })\n });\n\n // Public alias.\n Doc.prototype.eachLine = Doc.prototype.iter;\n\n // Kludge to work around strange IE behavior where it'll sometimes\n // re-fire a series of drag-related events right after the drop (#1551)\n var lastDrop = 0;\n\n function onDrop(e) {\n var cm = this;\n clearDragCursor(cm);\n if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e))\n { return }\n e_preventDefault(e);\n if (ie) { lastDrop = +new Date; }\n var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files;\n if (!pos || cm.isReadOnly()) { return }\n // Might be a file drop, in which case we simply extract the text\n // and insert it.\n if (files && files.length && window.FileReader && window.File) {\n var n = files.length, text = Array(n), read = 0;\n var markAsReadAndPasteIfAllFilesAreRead = function () {\n if (++read == n) {\n operation(cm, function () {\n pos = clipPos(cm.doc, pos);\n var change = {from: pos, to: pos,\n text: cm.doc.splitLines(\n text.filter(function (t) { return t != null; }).join(cm.doc.lineSeparator())),\n origin: \"paste\"};\n makeChange(cm.doc, change);\n setSelectionReplaceHistory(cm.doc, simpleSelection(clipPos(cm.doc, pos), clipPos(cm.doc, changeEnd(change))));\n })();\n }\n };\n var readTextFromFile = function (file, i) {\n if (cm.options.allowDropFileTypes &&\n indexOf(cm.options.allowDropFileTypes, file.type) == -1) {\n markAsReadAndPasteIfAllFilesAreRead();\n return\n }\n var reader = new FileReader;\n reader.onerror = function () { return markAsReadAndPasteIfAllFilesAreRead(); };\n reader.onload = function () {\n var content = reader.result;\n if (/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(content)) {\n markAsReadAndPasteIfAllFilesAreRead();\n return\n }\n text[i] = content;\n markAsReadAndPasteIfAllFilesAreRead();\n };\n reader.readAsText(file);\n };\n for (var i = 0; i < files.length; i++) { readTextFromFile(files[i], i); }\n } else { // Normal drop\n // Don't do a replace if the drop happened inside of the selected text.\n if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) {\n cm.state.draggingText(e);\n // Ensure the editor is re-focused\n setTimeout(function () { return cm.display.input.focus(); }, 20);\n return\n }\n try {\n var text$1 = e.dataTransfer.getData(\"Text\");\n if (text$1) {\n var selected;\n if (cm.state.draggingText && !cm.state.draggingText.copy)\n { selected = cm.listSelections(); }\n setSelectionNoUndo(cm.doc, simpleSelection(pos, pos));\n if (selected) { for (var i$1 = 0; i$1 < selected.length; ++i$1)\n { replaceRange(cm.doc, \"\", selected[i$1].anchor, selected[i$1].head, \"drag\"); } }\n cm.replaceSelection(text$1, \"around\", \"paste\");\n cm.display.input.focus();\n }\n }\n catch(e$1){}\n }\n }\n\n function onDragStart(cm, e) {\n if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return }\n if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) { return }\n\n e.dataTransfer.setData(\"Text\", cm.getSelection());\n e.dataTransfer.effectAllowed = \"copyMove\";\n\n // Use dummy image instead of default browsers image.\n // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.\n if (e.dataTransfer.setDragImage && !safari) {\n var img = elt(\"img\", null, null, \"position: fixed; left: 0; top: 0;\");\n img.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n if (presto) {\n img.width = img.height = 1;\n cm.display.wrapper.appendChild(img);\n // Force a relayout, or Opera won't use our image for some obscure reason\n img._top = img.offsetTop;\n }\n e.dataTransfer.setDragImage(img, 0, 0);\n if (presto) { img.parentNode.removeChild(img); }\n }\n }\n\n function onDragOver(cm, e) {\n var pos = posFromMouse(cm, e);\n if (!pos) { return }\n var frag = document.createDocumentFragment();\n drawSelectionCursor(cm, pos, frag);\n if (!cm.display.dragCursor) {\n cm.display.dragCursor = elt(\"div\", null, \"CodeMirror-cursors CodeMirror-dragcursors\");\n cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv);\n }\n removeChildrenAndAdd(cm.display.dragCursor, frag);\n }\n\n function clearDragCursor(cm) {\n if (cm.display.dragCursor) {\n cm.display.lineSpace.removeChild(cm.display.dragCursor);\n cm.display.dragCursor = null;\n }\n }\n\n // These must be handled carefully, because naively registering a\n // handler for each editor will cause the editors to never be\n // garbage collected.\n\n function forEachCodeMirror(f) {\n if (!document.getElementsByClassName) { return }\n var byClass = document.getElementsByClassName(\"CodeMirror\"), editors = [];\n for (var i = 0; i < byClass.length; i++) {\n var cm = byClass[i].CodeMirror;\n if (cm) { editors.push(cm); }\n }\n if (editors.length) { editors[0].operation(function () {\n for (var i = 0; i < editors.length; i++) { f(editors[i]); }\n }); }\n }\n\n var globalsRegistered = false;\n function ensureGlobalHandlers() {\n if (globalsRegistered) { return }\n registerGlobalHandlers();\n globalsRegistered = true;\n }\n function registerGlobalHandlers() {\n // When the window resizes, we need to refresh active editors.\n var resizeTimer;\n on(window, \"resize\", function () {\n if (resizeTimer == null) { resizeTimer = setTimeout(function () {\n resizeTimer = null;\n forEachCodeMirror(onResize);\n }, 100); }\n });\n // When the window loses focus, we want to show the editor as blurred\n on(window, \"blur\", function () { return forEachCodeMirror(onBlur); });\n }\n // Called when the window resizes\n function onResize(cm) {\n var d = cm.display;\n // Might be a text scaling operation, clear size caches.\n d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n d.scrollbarsClipped = false;\n cm.setSize();\n }\n\n var keyNames = {\n 3: \"Pause\", 8: \"Backspace\", 9: \"Tab\", 13: \"Enter\", 16: \"Shift\", 17: \"Ctrl\", 18: \"Alt\",\n 19: \"Pause\", 20: \"CapsLock\", 27: \"Esc\", 32: \"Space\", 33: \"PageUp\", 34: \"PageDown\", 35: \"End\",\n 36: \"Home\", 37: \"Left\", 38: \"Up\", 39: \"Right\", 40: \"Down\", 44: \"PrintScrn\", 45: \"Insert\",\n 46: \"Delete\", 59: \";\", 61: \"=\", 91: \"Mod\", 92: \"Mod\", 93: \"Mod\",\n 106: \"*\", 107: \"=\", 109: \"-\", 110: \".\", 111: \"/\", 145: \"ScrollLock\",\n 173: \"-\", 186: \";\", 187: \"=\", 188: \",\", 189: \"-\", 190: \".\", 191: \"/\", 192: \"`\", 219: \"[\", 220: \"\\\\\",\n 221: \"]\", 222: \"'\", 224: \"Mod\", 63232: \"Up\", 63233: \"Down\", 63234: \"Left\", 63235: \"Right\", 63272: \"Delete\",\n 63273: \"Home\", 63275: \"End\", 63276: \"PageUp\", 63277: \"PageDown\", 63302: \"Insert\"\n };\n\n // Number keys\n for (var i = 0; i < 10; i++) { keyNames[i + 48] = keyNames[i + 96] = String(i); }\n // Alphabetic keys\n for (var i$1 = 65; i$1 <= 90; i$1++) { keyNames[i$1] = String.fromCharCode(i$1); }\n // Function keys\n for (var i$2 = 1; i$2 <= 12; i$2++) { keyNames[i$2 + 111] = keyNames[i$2 + 63235] = \"F\" + i$2; }\n\n var keyMap = {};\n\n keyMap.basic = {\n \"Left\": \"goCharLeft\", \"Right\": \"goCharRight\", \"Up\": \"goLineUp\", \"Down\": \"goLineDown\",\n \"End\": \"goLineEnd\", \"Home\": \"goLineStartSmart\", \"PageUp\": \"goPageUp\", \"PageDown\": \"goPageDown\",\n \"Delete\": \"delCharAfter\", \"Backspace\": \"delCharBefore\", \"Shift-Backspace\": \"delCharBefore\",\n \"Tab\": \"defaultTab\", \"Shift-Tab\": \"indentAuto\",\n \"Enter\": \"newlineAndIndent\", \"Insert\": \"toggleOverwrite\",\n \"Esc\": \"singleSelection\"\n };\n // Note that the save and find-related commands aren't defined by\n // default. User code or addons can define them. Unknown commands\n // are simply ignored.\n keyMap.pcDefault = {\n \"Ctrl-A\": \"selectAll\", \"Ctrl-D\": \"deleteLine\", \"Ctrl-Z\": \"undo\", \"Shift-Ctrl-Z\": \"redo\", \"Ctrl-Y\": \"redo\",\n \"Ctrl-Home\": \"goDocStart\", \"Ctrl-End\": \"goDocEnd\", \"Ctrl-Up\": \"goLineUp\", \"Ctrl-Down\": \"goLineDown\",\n \"Ctrl-Left\": \"goGroupLeft\", \"Ctrl-Right\": \"goGroupRight\", \"Alt-Left\": \"goLineStart\", \"Alt-Right\": \"goLineEnd\",\n \"Ctrl-Backspace\": \"delGroupBefore\", \"Ctrl-Delete\": \"delGroupAfter\", \"Ctrl-S\": \"save\", \"Ctrl-F\": \"find\",\n \"Ctrl-G\": \"findNext\", \"Shift-Ctrl-G\": \"findPrev\", \"Shift-Ctrl-F\": \"replace\", \"Shift-Ctrl-R\": \"replaceAll\",\n \"Ctrl-[\": \"indentLess\", \"Ctrl-]\": \"indentMore\",\n \"Ctrl-U\": \"undoSelection\", \"Shift-Ctrl-U\": \"redoSelection\", \"Alt-U\": \"redoSelection\",\n \"fallthrough\": \"basic\"\n };\n // Very basic readline/emacs-style bindings, which are standard on Mac.\n keyMap.emacsy = {\n \"Ctrl-F\": \"goCharRight\", \"Ctrl-B\": \"goCharLeft\", \"Ctrl-P\": \"goLineUp\", \"Ctrl-N\": \"goLineDown\",\n \"Alt-F\": \"goWordRight\", \"Alt-B\": \"goWordLeft\", \"Ctrl-A\": \"goLineStart\", \"Ctrl-E\": \"goLineEnd\",\n \"Ctrl-V\": \"goPageDown\", \"Shift-Ctrl-V\": \"goPageUp\", \"Ctrl-D\": \"delCharAfter\", \"Ctrl-H\": \"delCharBefore\",\n \"Alt-D\": \"delWordAfter\", \"Alt-Backspace\": \"delWordBefore\", \"Ctrl-K\": \"killLine\", \"Ctrl-T\": \"transposeChars\",\n \"Ctrl-O\": \"openLine\"\n };\n keyMap.macDefault = {\n \"Cmd-A\": \"selectAll\", \"Cmd-D\": \"deleteLine\", \"Cmd-Z\": \"undo\", \"Shift-Cmd-Z\": \"redo\", \"Cmd-Y\": \"redo\",\n \"Cmd-Home\": \"goDocStart\", \"Cmd-Up\": \"goDocStart\", \"Cmd-End\": \"goDocEnd\", \"Cmd-Down\": \"goDocEnd\", \"Alt-Left\": \"goGroupLeft\",\n \"Alt-Right\": \"goGroupRight\", \"Cmd-Left\": \"goLineLeft\", \"Cmd-Right\": \"goLineRight\", \"Alt-Backspace\": \"delGroupBefore\",\n \"Ctrl-Alt-Backspace\": \"delGroupAfter\", \"Alt-Delete\": \"delGroupAfter\", \"Cmd-S\": \"save\", \"Cmd-F\": \"find\",\n \"Cmd-G\": \"findNext\", \"Shift-Cmd-G\": \"findPrev\", \"Cmd-Alt-F\": \"replace\", \"Shift-Cmd-Alt-F\": \"replaceAll\",\n \"Cmd-[\": \"indentLess\", \"Cmd-]\": \"indentMore\", \"Cmd-Backspace\": \"delWrappedLineLeft\", \"Cmd-Delete\": \"delWrappedLineRight\",\n \"Cmd-U\": \"undoSelection\", \"Shift-Cmd-U\": \"redoSelection\", \"Ctrl-Up\": \"goDocStart\", \"Ctrl-Down\": \"goDocEnd\",\n \"fallthrough\": [\"basic\", \"emacsy\"]\n };\n keyMap[\"default\"] = mac ? keyMap.macDefault : keyMap.pcDefault;\n\n // KEYMAP DISPATCH\n\n function normalizeKeyName(name) {\n var parts = name.split(/-(?!$)/);\n name = parts[parts.length - 1];\n var alt, ctrl, shift, cmd;\n for (var i = 0; i < parts.length - 1; i++) {\n var mod = parts[i];\n if (/^(cmd|meta|m)$/i.test(mod)) { cmd = true; }\n else if (/^a(lt)?$/i.test(mod)) { alt = true; }\n else if (/^(c|ctrl|control)$/i.test(mod)) { ctrl = true; }\n else if (/^s(hift)?$/i.test(mod)) { shift = true; }\n else { throw new Error(\"Unrecognized modifier name: \" + mod) }\n }\n if (alt) { name = \"Alt-\" + name; }\n if (ctrl) { name = \"Ctrl-\" + name; }\n if (cmd) { name = \"Cmd-\" + name; }\n if (shift) { name = \"Shift-\" + name; }\n return name\n }\n\n // This is a kludge to keep keymaps mostly working as raw objects\n // (backwards compatibility) while at the same time support features\n // like normalization and multi-stroke key bindings. It compiles a\n // new normalized keymap, and then updates the old object to reflect\n // this.\n function normalizeKeyMap(keymap) {\n var copy = {};\n for (var keyname in keymap) { if (keymap.hasOwnProperty(keyname)) {\n var value = keymap[keyname];\n if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) { continue }\n if (value == \"...\") { delete keymap[keyname]; continue }\n\n var keys = map(keyname.split(\" \"), normalizeKeyName);\n for (var i = 0; i < keys.length; i++) {\n var val = (void 0), name = (void 0);\n if (i == keys.length - 1) {\n name = keys.join(\" \");\n val = value;\n } else {\n name = keys.slice(0, i + 1).join(\" \");\n val = \"...\";\n }\n var prev = copy[name];\n if (!prev) { copy[name] = val; }\n else if (prev != val) { throw new Error(\"Inconsistent bindings for \" + name) }\n }\n delete keymap[keyname];\n } }\n for (var prop in copy) { keymap[prop] = copy[prop]; }\n return keymap\n }\n\n function lookupKey(key, map, handle, context) {\n map = getKeyMap(map);\n var found = map.call ? map.call(key, context) : map[key];\n if (found === false) { return \"nothing\" }\n if (found === \"...\") { return \"multi\" }\n if (found != null && handle(found)) { return \"handled\" }\n\n if (map.fallthrough) {\n if (Object.prototype.toString.call(map.fallthrough) != \"[object Array]\")\n { return lookupKey(key, map.fallthrough, handle, context) }\n for (var i = 0; i < map.fallthrough.length; i++) {\n var result = lookupKey(key, map.fallthrough[i], handle, context);\n if (result) { return result }\n }\n }\n }\n\n // Modifier key presses don't count as 'real' key presses for the\n // purpose of keymap fallthrough.\n function isModifierKey(value) {\n var name = typeof value == \"string\" ? value : keyNames[value.keyCode];\n return name == \"Ctrl\" || name == \"Alt\" || name == \"Shift\" || name == \"Mod\"\n }\n\n function addModifierNames(name, event, noShift) {\n var base = name;\n if (event.altKey && base != \"Alt\") { name = \"Alt-\" + name; }\n if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != \"Ctrl\") { name = \"Ctrl-\" + name; }\n if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != \"Mod\") { name = \"Cmd-\" + name; }\n if (!noShift && event.shiftKey && base != \"Shift\") { name = \"Shift-\" + name; }\n return name\n }\n\n // Look up the name of a key as indicated by an event object.\n function keyName(event, noShift) {\n if (presto && event.keyCode == 34 && event[\"char\"]) { return false }\n var name = keyNames[event.keyCode];\n if (name == null || event.altGraphKey) { return false }\n // Ctrl-ScrollLock has keyCode 3, same as Ctrl-Pause,\n // so we'll use event.code when available (Chrome 48+, FF 38+, Safari 10.1+)\n if (event.keyCode == 3 && event.code) { name = event.code; }\n return addModifierNames(name, event, noShift)\n }\n\n function getKeyMap(val) {\n return typeof val == \"string\" ? keyMap[val] : val\n }\n\n // Helper for deleting text near the selection(s), used to implement\n // backspace, delete, and similar functionality.\n function deleteNearSelection(cm, compute) {\n var ranges = cm.doc.sel.ranges, kill = [];\n // Build up a set of ranges to kill first, merging overlapping\n // ranges.\n for (var i = 0; i < ranges.length; i++) {\n var toKill = compute(ranges[i]);\n while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) {\n var replaced = kill.pop();\n if (cmp(replaced.from, toKill.from) < 0) {\n toKill.from = replaced.from;\n break\n }\n }\n kill.push(toKill);\n }\n // Next, remove those actual ranges.\n runInOp(cm, function () {\n for (var i = kill.length - 1; i >= 0; i--)\n { replaceRange(cm.doc, \"\", kill[i].from, kill[i].to, \"+delete\"); }\n ensureCursorVisible(cm);\n });\n }\n\n function moveCharLogically(line, ch, dir) {\n var target = skipExtendingChars(line.text, ch + dir, dir);\n return target < 0 || target > line.text.length ? null : target\n }\n\n function moveLogically(line, start, dir) {\n var ch = moveCharLogically(line, start.ch, dir);\n return ch == null ? null : new Pos(start.line, ch, dir < 0 ? \"after\" : \"before\")\n }\n\n function endOfLine(visually, cm, lineObj, lineNo, dir) {\n if (visually) {\n if (cm.doc.direction == \"rtl\") { dir = -dir; }\n var order = getOrder(lineObj, cm.doc.direction);\n if (order) {\n var part = dir < 0 ? lst(order) : order[0];\n var moveInStorageOrder = (dir < 0) == (part.level == 1);\n var sticky = moveInStorageOrder ? \"after\" : \"before\";\n var ch;\n // With a wrapped rtl chunk (possibly spanning multiple bidi parts),\n // it could be that the last bidi part is not on the last visual line,\n // since visual lines contain content order-consecutive chunks.\n // Thus, in rtl, we are looking for the first (content-order) character\n // in the rtl chunk that is on the last line (that is, the same line\n // as the last (content-order) character).\n if (part.level > 0 || cm.doc.direction == \"rtl\") {\n var prep = prepareMeasureForLine(cm, lineObj);\n ch = dir < 0 ? lineObj.text.length - 1 : 0;\n var targetTop = measureCharPrepared(cm, prep, ch).top;\n ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch);\n if (sticky == \"before\") { ch = moveCharLogically(lineObj, ch, 1); }\n } else { ch = dir < 0 ? part.to : part.from; }\n return new Pos(lineNo, ch, sticky)\n }\n }\n return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? \"before\" : \"after\")\n }\n\n function moveVisually(cm, line, start, dir) {\n var bidi = getOrder(line, cm.doc.direction);\n if (!bidi) { return moveLogically(line, start, dir) }\n if (start.ch >= line.text.length) {\n start.ch = line.text.length;\n start.sticky = \"before\";\n } else if (start.ch <= 0) {\n start.ch = 0;\n start.sticky = \"after\";\n }\n var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos];\n if (cm.doc.direction == \"ltr\" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) {\n // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines,\n // nothing interesting happens.\n return moveLogically(line, start, dir)\n }\n\n var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); };\n var prep;\n var getWrappedLineExtent = function (ch) {\n if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} }\n prep = prep || prepareMeasureForLine(cm, line);\n return wrappedLineExtentChar(cm, line, prep, ch)\n };\n var wrappedLineExtent = getWrappedLineExtent(start.sticky == \"before\" ? mv(start, -1) : start.ch);\n\n if (cm.doc.direction == \"rtl\" || part.level == 1) {\n var moveInStorageOrder = (part.level == 1) == (dir < 0);\n var ch = mv(start, moveInStorageOrder ? 1 : -1);\n if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) {\n // Case 2: We move within an rtl part or in an rtl editor on the same visual line\n var sticky = moveInStorageOrder ? \"before\" : \"after\";\n return new Pos(start.line, ch, sticky)\n }\n }\n\n // Case 3: Could not move within this bidi part in this visual line, so leave\n // the current bidi part\n\n var searchInVisualLine = function (partPos, dir, wrappedLineExtent) {\n var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder\n ? new Pos(start.line, mv(ch, 1), \"before\")\n : new Pos(start.line, ch, \"after\"); };\n\n for (; partPos >= 0 && partPos < bidi.length; partPos += dir) {\n var part = bidi[partPos];\n var moveInStorageOrder = (dir > 0) == (part.level != 1);\n var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1);\n if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) }\n ch = moveInStorageOrder ? part.from : mv(part.to, -1);\n if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) }\n }\n };\n\n // Case 3a: Look for other bidi parts on the same visual line\n var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent);\n if (res) { return res }\n\n // Case 3b: Look for other bidi parts on the next visual line\n var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1);\n if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) {\n res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh));\n if (res) { return res }\n }\n\n // Case 4: Nowhere to move\n return null\n }\n\n // Commands are parameter-less actions that can be performed on an\n // editor, mostly used for keybindings.\n var commands = {\n selectAll: selectAll,\n singleSelection: function (cm) { return cm.setSelection(cm.getCursor(\"anchor\"), cm.getCursor(\"head\"), sel_dontScroll); },\n killLine: function (cm) { return deleteNearSelection(cm, function (range) {\n if (range.empty()) {\n var len = getLine(cm.doc, range.head.line).text.length;\n if (range.head.ch == len && range.head.line < cm.lastLine())\n { return {from: range.head, to: Pos(range.head.line + 1, 0)} }\n else\n { return {from: range.head, to: Pos(range.head.line, len)} }\n } else {\n return {from: range.from(), to: range.to()}\n }\n }); },\n deleteLine: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n from: Pos(range.from().line, 0),\n to: clipPos(cm.doc, Pos(range.to().line + 1, 0))\n }); }); },\n delLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n from: Pos(range.from().line, 0), to: range.from()\n }); }); },\n delWrappedLineLeft: function (cm) { return deleteNearSelection(cm, function (range) {\n var top = cm.charCoords(range.head, \"div\").top + 5;\n var leftPos = cm.coordsChar({left: 0, top: top}, \"div\");\n return {from: leftPos, to: range.from()}\n }); },\n delWrappedLineRight: function (cm) { return deleteNearSelection(cm, function (range) {\n var top = cm.charCoords(range.head, \"div\").top + 5;\n var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\");\n return {from: range.from(), to: rightPos }\n }); },\n undo: function (cm) { return cm.undo(); },\n redo: function (cm) { return cm.redo(); },\n undoSelection: function (cm) { return cm.undoSelection(); },\n redoSelection: function (cm) { return cm.redoSelection(); },\n goDocStart: function (cm) { return cm.extendSelection(Pos(cm.firstLine(), 0)); },\n goDocEnd: function (cm) { return cm.extendSelection(Pos(cm.lastLine())); },\n goLineStart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStart(cm, range.head.line); },\n {origin: \"+move\", bias: 1}\n ); },\n goLineStartSmart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStartSmart(cm, range.head); },\n {origin: \"+move\", bias: 1}\n ); },\n goLineEnd: function (cm) { return cm.extendSelectionsBy(function (range) { return lineEnd(cm, range.head.line); },\n {origin: \"+move\", bias: -1}\n ); },\n goLineRight: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\")\n }, sel_move); },\n goLineLeft: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n return cm.coordsChar({left: 0, top: top}, \"div\")\n }, sel_move); },\n goLineLeftSmart: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n var pos = cm.coordsChar({left: 0, top: top}, \"div\");\n if (pos.ch < cm.getLine(pos.line).search(/\\S/)) { return lineStartSmart(cm, range.head) }\n return pos\n }, sel_move); },\n goLineUp: function (cm) { return cm.moveV(-1, \"line\"); },\n goLineDown: function (cm) { return cm.moveV(1, \"line\"); },\n goPageUp: function (cm) { return cm.moveV(-1, \"page\"); },\n goPageDown: function (cm) { return cm.moveV(1, \"page\"); },\n goCharLeft: function (cm) { return cm.moveH(-1, \"char\"); },\n goCharRight: function (cm) { return cm.moveH(1, \"char\"); },\n goColumnLeft: function (cm) { return cm.moveH(-1, \"column\"); },\n goColumnRight: function (cm) { return cm.moveH(1, \"column\"); },\n goWordLeft: function (cm) { return cm.moveH(-1, \"word\"); },\n goGroupRight: function (cm) { return cm.moveH(1, \"group\"); },\n goGroupLeft: function (cm) { return cm.moveH(-1, \"group\"); },\n goWordRight: function (cm) { return cm.moveH(1, \"word\"); },\n delCharBefore: function (cm) { return cm.deleteH(-1, \"codepoint\"); },\n delCharAfter: function (cm) { return cm.deleteH(1, \"char\"); },\n delWordBefore: function (cm) { return cm.deleteH(-1, \"word\"); },\n delWordAfter: function (cm) { return cm.deleteH(1, \"word\"); },\n delGroupBefore: function (cm) { return cm.deleteH(-1, \"group\"); },\n delGroupAfter: function (cm) { return cm.deleteH(1, \"group\"); },\n indentAuto: function (cm) { return cm.indentSelection(\"smart\"); },\n indentMore: function (cm) { return cm.indentSelection(\"add\"); },\n indentLess: function (cm) { return cm.indentSelection(\"subtract\"); },\n insertTab: function (cm) { return cm.replaceSelection(\"\\t\"); },\n insertSoftTab: function (cm) {\n var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize;\n for (var i = 0; i < ranges.length; i++) {\n var pos = ranges[i].from();\n var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize);\n spaces.push(spaceStr(tabSize - col % tabSize));\n }\n cm.replaceSelections(spaces);\n },\n defaultTab: function (cm) {\n if (cm.somethingSelected()) { cm.indentSelection(\"add\"); }\n else { cm.execCommand(\"insertTab\"); }\n },\n // Swap the two chars left and right of each selection's head.\n // Move cursor behind the two swapped characters afterwards.\n //\n // Doesn't consider line feeds a character.\n // Doesn't scan more than one line above to find a character.\n // Doesn't do anything on an empty line.\n // Doesn't do anything with non-empty selections.\n transposeChars: function (cm) { return runInOp(cm, function () {\n var ranges = cm.listSelections(), newSel = [];\n for (var i = 0; i < ranges.length; i++) {\n if (!ranges[i].empty()) { continue }\n var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text;\n if (line) {\n if (cur.ch == line.length) { cur = new Pos(cur.line, cur.ch - 1); }\n if (cur.ch > 0) {\n cur = new Pos(cur.line, cur.ch + 1);\n cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2),\n Pos(cur.line, cur.ch - 2), cur, \"+transpose\");\n } else if (cur.line > cm.doc.first) {\n var prev = getLine(cm.doc, cur.line - 1).text;\n if (prev) {\n cur = new Pos(cur.line, 1);\n cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() +\n prev.charAt(prev.length - 1),\n Pos(cur.line - 1, prev.length - 1), cur, \"+transpose\");\n }\n }\n }\n newSel.push(new Range(cur, cur));\n }\n cm.setSelections(newSel);\n }); },\n newlineAndIndent: function (cm) { return runInOp(cm, function () {\n var sels = cm.listSelections();\n for (var i = sels.length - 1; i >= 0; i--)\n { cm.replaceRange(cm.doc.lineSeparator(), sels[i].anchor, sels[i].head, \"+input\"); }\n sels = cm.listSelections();\n for (var i$1 = 0; i$1 < sels.length; i$1++)\n { cm.indentLine(sels[i$1].from().line, null, true); }\n ensureCursorVisible(cm);\n }); },\n openLine: function (cm) { return cm.replaceSelection(\"\\n\", \"start\"); },\n toggleOverwrite: function (cm) { return cm.toggleOverwrite(); }\n };\n\n\n function lineStart(cm, lineN) {\n var line = getLine(cm.doc, lineN);\n var visual = visualLine(line);\n if (visual != line) { lineN = lineNo(visual); }\n return endOfLine(true, cm, visual, lineN, 1)\n }\n function lineEnd(cm, lineN) {\n var line = getLine(cm.doc, lineN);\n var visual = visualLineEnd(line);\n if (visual != line) { lineN = lineNo(visual); }\n return endOfLine(true, cm, line, lineN, -1)\n }\n function lineStartSmart(cm, pos) {\n var start = lineStart(cm, pos.line);\n var line = getLine(cm.doc, start.line);\n var order = getOrder(line, cm.doc.direction);\n if (!order || order[0].level == 0) {\n var firstNonWS = Math.max(start.ch, line.text.search(/\\S/));\n var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch;\n return Pos(start.line, inWS ? 0 : firstNonWS, start.sticky)\n }\n return start\n }\n\n // Run a handler that was bound to a key.\n function doHandleBinding(cm, bound, dropShift) {\n if (typeof bound == \"string\") {\n bound = commands[bound];\n if (!bound) { return false }\n }\n // Ensure previous input has been read, so that the handler sees a\n // consistent view of the document\n cm.display.input.ensurePolled();\n var prevShift = cm.display.shift, done = false;\n try {\n if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n if (dropShift) { cm.display.shift = false; }\n done = bound(cm) != Pass;\n } finally {\n cm.display.shift = prevShift;\n cm.state.suppressEdits = false;\n }\n return done\n }\n\n function lookupKeyForEditor(cm, name, handle) {\n for (var i = 0; i < cm.state.keyMaps.length; i++) {\n var result = lookupKey(name, cm.state.keyMaps[i], handle, cm);\n if (result) { return result }\n }\n return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm))\n || lookupKey(name, cm.options.keyMap, handle, cm)\n }\n\n // Note that, despite the name, this function is also used to check\n // for bound mouse clicks.\n\n var stopSeq = new Delayed;\n\n function dispatchKey(cm, name, e, handle) {\n var seq = cm.state.keySeq;\n if (seq) {\n if (isModifierKey(name)) { return \"handled\" }\n if (/\\'$/.test(name))\n { cm.state.keySeq = null; }\n else\n { stopSeq.set(50, function () {\n if (cm.state.keySeq == seq) {\n cm.state.keySeq = null;\n cm.display.input.reset();\n }\n }); }\n if (dispatchKeyInner(cm, seq + \" \" + name, e, handle)) { return true }\n }\n return dispatchKeyInner(cm, name, e, handle)\n }\n\n function dispatchKeyInner(cm, name, e, handle) {\n var result = lookupKeyForEditor(cm, name, handle);\n\n if (result == \"multi\")\n { cm.state.keySeq = name; }\n if (result == \"handled\")\n { signalLater(cm, \"keyHandled\", cm, name, e); }\n\n if (result == \"handled\" || result == \"multi\") {\n e_preventDefault(e);\n restartBlink(cm);\n }\n\n return !!result\n }\n\n // Handle a key from the keydown event.\n function handleKeyBinding(cm, e) {\n var name = keyName(e, true);\n if (!name) { return false }\n\n if (e.shiftKey && !cm.state.keySeq) {\n // First try to resolve full name (including 'Shift-'). Failing\n // that, see if there is a cursor-motion command (starting with\n // 'go') bound to the keyname without 'Shift-'.\n return dispatchKey(cm, \"Shift-\" + name, e, function (b) { return doHandleBinding(cm, b, true); })\n || dispatchKey(cm, name, e, function (b) {\n if (typeof b == \"string\" ? /^go[A-Z]/.test(b) : b.motion)\n { return doHandleBinding(cm, b) }\n })\n } else {\n return dispatchKey(cm, name, e, function (b) { return doHandleBinding(cm, b); })\n }\n }\n\n // Handle a key from the keypress event\n function handleCharBinding(cm, e, ch) {\n return dispatchKey(cm, \"'\" + ch + \"'\", e, function (b) { return doHandleBinding(cm, b, true); })\n }\n\n var lastStoppedKey = null;\n function onKeyDown(e) {\n var cm = this;\n if (e.target && e.target != cm.display.input.getField()) { return }\n cm.curOp.focus = activeElt();\n if (signalDOMEvent(cm, e)) { return }\n // IE does strange things with escape.\n if (ie && ie_version < 11 && e.keyCode == 27) { e.returnValue = false; }\n var code = e.keyCode;\n cm.display.shift = code == 16 || e.shiftKey;\n var handled = handleKeyBinding(cm, e);\n if (presto) {\n lastStoppedKey = handled ? code : null;\n // Opera has no cut event... we try to at least catch the key combo\n if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey))\n { cm.replaceSelection(\"\", null, \"cut\"); }\n }\n if (gecko && !mac && !handled && code == 46 && e.shiftKey && !e.ctrlKey && document.execCommand)\n { document.execCommand(\"cut\"); }\n\n // Turn mouse into crosshair when Alt is held on Mac.\n if (code == 18 && !/\\bCodeMirror-crosshair\\b/.test(cm.display.lineDiv.className))\n { showCrossHair(cm); }\n }\n\n function showCrossHair(cm) {\n var lineDiv = cm.display.lineDiv;\n addClass(lineDiv, \"CodeMirror-crosshair\");\n\n function up(e) {\n if (e.keyCode == 18 || !e.altKey) {\n rmClass(lineDiv, \"CodeMirror-crosshair\");\n off(document, \"keyup\", up);\n off(document, \"mouseover\", up);\n }\n }\n on(document, \"keyup\", up);\n on(document, \"mouseover\", up);\n }\n\n function onKeyUp(e) {\n if (e.keyCode == 16) { this.doc.sel.shift = false; }\n signalDOMEvent(this, e);\n }\n\n function onKeyPress(e) {\n var cm = this;\n if (e.target && e.target != cm.display.input.getField()) { return }\n if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) { return }\n var keyCode = e.keyCode, charCode = e.charCode;\n if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return}\n if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) { return }\n var ch = String.fromCharCode(charCode == null ? keyCode : charCode);\n // Some browsers fire keypress events for backspace\n if (ch == \"\\x08\") { return }\n if (handleCharBinding(cm, e, ch)) { return }\n cm.display.input.onKeyPress(e);\n }\n\n var DOUBLECLICK_DELAY = 400;\n\n var PastClick = function(time, pos, button) {\n this.time = time;\n this.pos = pos;\n this.button = button;\n };\n\n PastClick.prototype.compare = function (time, pos, button) {\n return this.time + DOUBLECLICK_DELAY > time &&\n cmp(pos, this.pos) == 0 && button == this.button\n };\n\n var lastClick, lastDoubleClick;\n function clickRepeat(pos, button) {\n var now = +new Date;\n if (lastDoubleClick && lastDoubleClick.compare(now, pos, button)) {\n lastClick = lastDoubleClick = null;\n return \"triple\"\n } else if (lastClick && lastClick.compare(now, pos, button)) {\n lastDoubleClick = new PastClick(now, pos, button);\n lastClick = null;\n return \"double\"\n } else {\n lastClick = new PastClick(now, pos, button);\n lastDoubleClick = null;\n return \"single\"\n }\n }\n\n // A mouse down can be a single click, double click, triple click,\n // start of selection drag, start of text drag, new cursor\n // (ctrl-click), rectangle drag (alt-drag), or xwin\n // middle-click-paste. Or it might be a click on something we should\n // not interfere with, such as a scrollbar or widget.\n function onMouseDown(e) {\n var cm = this, display = cm.display;\n if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) { return }\n display.input.ensurePolled();\n display.shift = e.shiftKey;\n\n if (eventInWidget(display, e)) {\n if (!webkit) {\n // Briefly turn off draggability, to allow widgets to do\n // normal dragging things.\n display.scroller.draggable = false;\n setTimeout(function () { return display.scroller.draggable = true; }, 100);\n }\n return\n }\n if (clickInGutter(cm, e)) { return }\n var pos = posFromMouse(cm, e), button = e_button(e), repeat = pos ? clickRepeat(pos, button) : \"single\";\n window.focus();\n\n // #3261: make sure, that we're not starting a second selection\n if (button == 1 && cm.state.selectingText)\n { cm.state.selectingText(e); }\n\n if (pos && handleMappedButton(cm, button, pos, repeat, e)) { return }\n\n if (button == 1) {\n if (pos) { leftButtonDown(cm, pos, repeat, e); }\n else if (e_target(e) == display.scroller) { e_preventDefault(e); }\n } else if (button == 2) {\n if (pos) { extendSelection(cm.doc, pos); }\n setTimeout(function () { return display.input.focus(); }, 20);\n } else if (button == 3) {\n if (captureRightClick) { cm.display.input.onContextMenu(e); }\n else { delayBlurEvent(cm); }\n }\n }\n\n function handleMappedButton(cm, button, pos, repeat, event) {\n var name = \"Click\";\n if (repeat == \"double\") { name = \"Double\" + name; }\n else if (repeat == \"triple\") { name = \"Triple\" + name; }\n name = (button == 1 ? \"Left\" : button == 2 ? \"Middle\" : \"Right\") + name;\n\n return dispatchKey(cm, addModifierNames(name, event), event, function (bound) {\n if (typeof bound == \"string\") { bound = commands[bound]; }\n if (!bound) { return false }\n var done = false;\n try {\n if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n done = bound(cm, pos) != Pass;\n } finally {\n cm.state.suppressEdits = false;\n }\n return done\n })\n }\n\n function configureMouse(cm, repeat, event) {\n var option = cm.getOption(\"configureMouse\");\n var value = option ? option(cm, repeat, event) : {};\n if (value.unit == null) {\n var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey;\n value.unit = rect ? \"rectangle\" : repeat == \"single\" ? \"char\" : repeat == \"double\" ? \"word\" : \"line\";\n }\n if (value.extend == null || cm.doc.extend) { value.extend = cm.doc.extend || event.shiftKey; }\n if (value.addNew == null) { value.addNew = mac ? event.metaKey : event.ctrlKey; }\n if (value.moveOnDrag == null) { value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey); }\n return value\n }\n\n function leftButtonDown(cm, pos, repeat, event) {\n if (ie) { setTimeout(bind(ensureFocus, cm), 0); }\n else { cm.curOp.focus = activeElt(); }\n\n var behavior = configureMouse(cm, repeat, event);\n\n var sel = cm.doc.sel, contained;\n if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() &&\n repeat == \"single\" && (contained = sel.contains(pos)) > -1 &&\n (cmp((contained = sel.ranges[contained]).from(), pos) < 0 || pos.xRel > 0) &&\n (cmp(contained.to(), pos) > 0 || pos.xRel < 0))\n { leftButtonStartDrag(cm, event, pos, behavior); }\n else\n { leftButtonSelect(cm, event, pos, behavior); }\n }\n\n // Start a text drag. When it ends, see if any dragging actually\n // happen, and treat as a click if it didn't.\n function leftButtonStartDrag(cm, event, pos, behavior) {\n var display = cm.display, moved = false;\n var dragEnd = operation(cm, function (e) {\n if (webkit) { display.scroller.draggable = false; }\n cm.state.draggingText = false;\n if (cm.state.delayingBlurEvent) {\n if (cm.hasFocus()) { cm.state.delayingBlurEvent = false; }\n else { delayBlurEvent(cm); }\n }\n off(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n off(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n off(display.scroller, \"dragstart\", dragStart);\n off(display.scroller, \"drop\", dragEnd);\n if (!moved) {\n e_preventDefault(e);\n if (!behavior.addNew)\n { extendSelection(cm.doc, pos, null, null, behavior.extend); }\n // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)\n if ((webkit && !safari) || ie && ie_version == 9)\n { setTimeout(function () {display.wrapper.ownerDocument.body.focus({preventScroll: true}); display.input.focus();}, 20); }\n else\n { display.input.focus(); }\n }\n });\n var mouseMove = function(e2) {\n moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10;\n };\n var dragStart = function () { return moved = true; };\n // Let the drag handler handle this.\n if (webkit) { display.scroller.draggable = true; }\n cm.state.draggingText = dragEnd;\n dragEnd.copy = !behavior.moveOnDrag;\n on(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n on(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n on(display.scroller, \"dragstart\", dragStart);\n on(display.scroller, \"drop\", dragEnd);\n\n cm.state.delayingBlurEvent = true;\n setTimeout(function () { return display.input.focus(); }, 20);\n // IE's approach to draggable\n if (display.scroller.dragDrop) { display.scroller.dragDrop(); }\n }\n\n function rangeForUnit(cm, pos, unit) {\n if (unit == \"char\") { return new Range(pos, pos) }\n if (unit == \"word\") { return cm.findWordAt(pos) }\n if (unit == \"line\") { return new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))) }\n var result = unit(cm, pos);\n return new Range(result.from, result.to)\n }\n\n // Normal selection, as opposed to text dragging.\n function leftButtonSelect(cm, event, start, behavior) {\n if (ie) { delayBlurEvent(cm); }\n var display = cm.display, doc = cm.doc;\n e_preventDefault(event);\n\n var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges;\n if (behavior.addNew && !behavior.extend) {\n ourIndex = doc.sel.contains(start);\n if (ourIndex > -1)\n { ourRange = ranges[ourIndex]; }\n else\n { ourRange = new Range(start, start); }\n } else {\n ourRange = doc.sel.primary();\n ourIndex = doc.sel.primIndex;\n }\n\n if (behavior.unit == \"rectangle\") {\n if (!behavior.addNew) { ourRange = new Range(start, start); }\n start = posFromMouse(cm, event, true, true);\n ourIndex = -1;\n } else {\n var range = rangeForUnit(cm, start, behavior.unit);\n if (behavior.extend)\n { ourRange = extendRange(ourRange, range.anchor, range.head, behavior.extend); }\n else\n { ourRange = range; }\n }\n\n if (!behavior.addNew) {\n ourIndex = 0;\n setSelection(doc, new Selection([ourRange], 0), sel_mouse);\n startSel = doc.sel;\n } else if (ourIndex == -1) {\n ourIndex = ranges.length;\n setSelection(doc, normalizeSelection(cm, ranges.concat([ourRange]), ourIndex),\n {scroll: false, origin: \"*mouse\"});\n } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == \"char\" && !behavior.extend) {\n setSelection(doc, normalizeSelection(cm, ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0),\n {scroll: false, origin: \"*mouse\"});\n startSel = doc.sel;\n } else {\n replaceOneSelection(doc, ourIndex, ourRange, sel_mouse);\n }\n\n var lastPos = start;\n function extendTo(pos) {\n if (cmp(lastPos, pos) == 0) { return }\n lastPos = pos;\n\n if (behavior.unit == \"rectangle\") {\n var ranges = [], tabSize = cm.options.tabSize;\n var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize);\n var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize);\n var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol);\n for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line));\n line <= end; line++) {\n var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize);\n if (left == right)\n { ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); }\n else if (text.length > leftPos)\n { ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); }\n }\n if (!ranges.length) { ranges.push(new Range(start, start)); }\n setSelection(doc, normalizeSelection(cm, startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex),\n {origin: \"*mouse\", scroll: false});\n cm.scrollIntoView(pos);\n } else {\n var oldRange = ourRange;\n var range = rangeForUnit(cm, pos, behavior.unit);\n var anchor = oldRange.anchor, head;\n if (cmp(range.anchor, anchor) > 0) {\n head = range.head;\n anchor = minPos(oldRange.from(), range.anchor);\n } else {\n head = range.anchor;\n anchor = maxPos(oldRange.to(), range.head);\n }\n var ranges$1 = startSel.ranges.slice(0);\n ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head));\n setSelection(doc, normalizeSelection(cm, ranges$1, ourIndex), sel_mouse);\n }\n }\n\n var editorSize = display.wrapper.getBoundingClientRect();\n // Used to ensure timeout re-tries don't fire when another extend\n // happened in the meantime (clearTimeout isn't reliable -- at\n // least on Chrome, the timeouts still happen even when cleared,\n // if the clear happens after their scheduled firing time).\n var counter = 0;\n\n function extend(e) {\n var curCount = ++counter;\n var cur = posFromMouse(cm, e, true, behavior.unit == \"rectangle\");\n if (!cur) { return }\n if (cmp(cur, lastPos) != 0) {\n cm.curOp.focus = activeElt();\n extendTo(cur);\n var visible = visibleLines(display, doc);\n if (cur.line >= visible.to || cur.line < visible.from)\n { setTimeout(operation(cm, function () {if (counter == curCount) { extend(e); }}), 150); }\n } else {\n var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0;\n if (outside) { setTimeout(operation(cm, function () {\n if (counter != curCount) { return }\n display.scroller.scrollTop += outside;\n extend(e);\n }), 50); }\n }\n }\n\n function done(e) {\n cm.state.selectingText = false;\n counter = Infinity;\n // If e is null or undefined we interpret this as someone trying\n // to explicitly cancel the selection rather than the user\n // letting go of the mouse button.\n if (e) {\n e_preventDefault(e);\n display.input.focus();\n }\n off(display.wrapper.ownerDocument, \"mousemove\", move);\n off(display.wrapper.ownerDocument, \"mouseup\", up);\n doc.history.lastSelOrigin = null;\n }\n\n var move = operation(cm, function (e) {\n if (e.buttons === 0 || !e_button(e)) { done(e); }\n else { extend(e); }\n });\n var up = operation(cm, done);\n cm.state.selectingText = up;\n on(display.wrapper.ownerDocument, \"mousemove\", move);\n on(display.wrapper.ownerDocument, \"mouseup\", up);\n }\n\n // Used when mouse-selecting to adjust the anchor to the proper side\n // of a bidi jump depending on the visual position of the head.\n function bidiSimplify(cm, range) {\n var anchor = range.anchor;\n var head = range.head;\n var anchorLine = getLine(cm.doc, anchor.line);\n if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { return range }\n var order = getOrder(anchorLine);\n if (!order) { return range }\n var index = getBidiPartAt(order, anchor.ch, anchor.sticky), part = order[index];\n if (part.from != anchor.ch && part.to != anchor.ch) { return range }\n var boundary = index + ((part.from == anchor.ch) == (part.level != 1) ? 0 : 1);\n if (boundary == 0 || boundary == order.length) { return range }\n\n // Compute the relative visual position of the head compared to the\n // anchor (<0 is to the left, >0 to the right)\n var leftSide;\n if (head.line != anchor.line) {\n leftSide = (head.line - anchor.line) * (cm.doc.direction == \"ltr\" ? 1 : -1) > 0;\n } else {\n var headIndex = getBidiPartAt(order, head.ch, head.sticky);\n var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1);\n if (headIndex == boundary - 1 || headIndex == boundary)\n { leftSide = dir < 0; }\n else\n { leftSide = dir > 0; }\n }\n\n var usePart = order[boundary + (leftSide ? -1 : 0)];\n var from = leftSide == (usePart.level == 1);\n var ch = from ? usePart.from : usePart.to, sticky = from ? \"after\" : \"before\";\n return anchor.ch == ch && anchor.sticky == sticky ? range : new Range(new Pos(anchor.line, ch, sticky), head)\n }\n\n\n // Determines whether an event happened in the gutter, and fires the\n // handlers for the corresponding event.\n function gutterEvent(cm, e, type, prevent) {\n var mX, mY;\n if (e.touches) {\n mX = e.touches[0].clientX;\n mY = e.touches[0].clientY;\n } else {\n try { mX = e.clientX; mY = e.clientY; }\n catch(e$1) { return false }\n }\n if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false }\n if (prevent) { e_preventDefault(e); }\n\n var display = cm.display;\n var lineBox = display.lineDiv.getBoundingClientRect();\n\n if (mY > lineBox.bottom || !hasHandler(cm, type)) { return e_defaultPrevented(e) }\n mY -= lineBox.top - display.viewOffset;\n\n for (var i = 0; i < cm.display.gutterSpecs.length; ++i) {\n var g = display.gutters.childNodes[i];\n if (g && g.getBoundingClientRect().right >= mX) {\n var line = lineAtHeight(cm.doc, mY);\n var gutter = cm.display.gutterSpecs[i];\n signal(cm, type, cm, line, gutter.className, e);\n return e_defaultPrevented(e)\n }\n }\n }\n\n function clickInGutter(cm, e) {\n return gutterEvent(cm, e, \"gutterClick\", true)\n }\n\n // CONTEXT MENU HANDLING\n\n // To make the context menu work, we need to briefly unhide the\n // textarea (making it as unobtrusive as possible) to let the\n // right-click take effect on it.\n function onContextMenu(cm, e) {\n if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) { return }\n if (signalDOMEvent(cm, e, \"contextmenu\")) { return }\n if (!captureRightClick) { cm.display.input.onContextMenu(e); }\n }\n\n function contextMenuInGutter(cm, e) {\n if (!hasHandler(cm, \"gutterContextMenu\")) { return false }\n return gutterEvent(cm, e, \"gutterContextMenu\", false)\n }\n\n function themeChanged(cm) {\n cm.display.wrapper.className = cm.display.wrapper.className.replace(/\\s*cm-s-\\S+/g, \"\") +\n cm.options.theme.replace(/(^|\\s)\\s*/g, \" cm-s-\");\n clearCaches(cm);\n }\n\n var Init = {toString: function(){return \"CodeMirror.Init\"}};\n\n var defaults = {};\n var optionHandlers = {};\n\n function defineOptions(CodeMirror) {\n var optionHandlers = CodeMirror.optionHandlers;\n\n function option(name, deflt, handle, notOnInit) {\n CodeMirror.defaults[name] = deflt;\n if (handle) { optionHandlers[name] =\n notOnInit ? function (cm, val, old) {if (old != Init) { handle(cm, val, old); }} : handle; }\n }\n\n CodeMirror.defineOption = option;\n\n // Passed to option handlers when there is no old value.\n CodeMirror.Init = Init;\n\n // These two are, on init, called from the constructor because they\n // have to be initialized before the editor can start at all.\n option(\"value\", \"\", function (cm, val) { return cm.setValue(val); }, true);\n option(\"mode\", null, function (cm, val) {\n cm.doc.modeOption = val;\n loadMode(cm);\n }, true);\n\n option(\"indentUnit\", 2, loadMode, true);\n option(\"indentWithTabs\", false);\n option(\"smartIndent\", true);\n option(\"tabSize\", 4, function (cm) {\n resetModeState(cm);\n clearCaches(cm);\n regChange(cm);\n }, true);\n\n option(\"lineSeparator\", null, function (cm, val) {\n cm.doc.lineSep = val;\n if (!val) { return }\n var newBreaks = [], lineNo = cm.doc.first;\n cm.doc.iter(function (line) {\n for (var pos = 0;;) {\n var found = line.text.indexOf(val, pos);\n if (found == -1) { break }\n pos = found + val.length;\n newBreaks.push(Pos(lineNo, found));\n }\n lineNo++;\n });\n for (var i = newBreaks.length - 1; i >= 0; i--)\n { replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); }\n });\n option(\"specialChars\", /[\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u061c\\u200b-\\u200c\\u200e\\u200f\\u2028\\u2029\\ufeff\\ufff9-\\ufffc]/g, function (cm, val, old) {\n cm.state.specialChars = new RegExp(val.source + (val.test(\"\\t\") ? \"\" : \"|\\t\"), \"g\");\n if (old != Init) { cm.refresh(); }\n });\n option(\"specialCharPlaceholder\", defaultSpecialCharPlaceholder, function (cm) { return cm.refresh(); }, true);\n option(\"electricChars\", true);\n option(\"inputStyle\", mobile ? \"contenteditable\" : \"textarea\", function () {\n throw new Error(\"inputStyle can not (yet) be changed in a running editor\") // FIXME\n }, true);\n option(\"spellcheck\", false, function (cm, val) { return cm.getInputField().spellcheck = val; }, true);\n option(\"autocorrect\", false, function (cm, val) { return cm.getInputField().autocorrect = val; }, true);\n option(\"autocapitalize\", false, function (cm, val) { return cm.getInputField().autocapitalize = val; }, true);\n option(\"rtlMoveVisually\", !windows);\n option(\"wholeLineUpdateBefore\", true);\n\n option(\"theme\", \"default\", function (cm) {\n themeChanged(cm);\n updateGutters(cm);\n }, true);\n option(\"keyMap\", \"default\", function (cm, val, old) {\n var next = getKeyMap(val);\n var prev = old != Init && getKeyMap(old);\n if (prev && prev.detach) { prev.detach(cm, next); }\n if (next.attach) { next.attach(cm, prev || null); }\n });\n option(\"extraKeys\", null);\n option(\"configureMouse\", null);\n\n option(\"lineWrapping\", false, wrappingChanged, true);\n option(\"gutters\", [], function (cm, val) {\n cm.display.gutterSpecs = getGutters(val, cm.options.lineNumbers);\n updateGutters(cm);\n }, true);\n option(\"fixedGutter\", true, function (cm, val) {\n cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + \"px\" : \"0\";\n cm.refresh();\n }, true);\n option(\"coverGutterNextToScrollbar\", false, function (cm) { return updateScrollbars(cm); }, true);\n option(\"scrollbarStyle\", \"native\", function (cm) {\n initScrollbars(cm);\n updateScrollbars(cm);\n cm.display.scrollbars.setScrollTop(cm.doc.scrollTop);\n cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft);\n }, true);\n option(\"lineNumbers\", false, function (cm, val) {\n cm.display.gutterSpecs = getGutters(cm.options.gutters, val);\n updateGutters(cm);\n }, true);\n option(\"firstLineNumber\", 1, updateGutters, true);\n option(\"lineNumberFormatter\", function (integer) { return integer; }, updateGutters, true);\n option(\"showCursorWhenSelecting\", false, updateSelection, true);\n\n option(\"resetSelectionOnContextMenu\", true);\n option(\"lineWiseCopyCut\", true);\n option(\"pasteLinesPerSelection\", true);\n option(\"selectionsMayTouch\", false);\n\n option(\"readOnly\", false, function (cm, val) {\n if (val == \"nocursor\") {\n onBlur(cm);\n cm.display.input.blur();\n }\n cm.display.input.readOnlyChanged(val);\n });\n\n option(\"screenReaderLabel\", null, function (cm, val) {\n val = (val === '') ? null : val;\n cm.display.input.screenReaderLabelChanged(val);\n });\n\n option(\"disableInput\", false, function (cm, val) {if (!val) { cm.display.input.reset(); }}, true);\n option(\"dragDrop\", true, dragDropChanged);\n option(\"allowDropFileTypes\", null);\n\n option(\"cursorBlinkRate\", 530);\n option(\"cursorScrollMargin\", 0);\n option(\"cursorHeight\", 1, updateSelection, true);\n option(\"singleCursorHeightPerLine\", true, updateSelection, true);\n option(\"workTime\", 100);\n option(\"workDelay\", 100);\n option(\"flattenSpans\", true, resetModeState, true);\n option(\"addModeClass\", false, resetModeState, true);\n option(\"pollInterval\", 100);\n option(\"undoDepth\", 200, function (cm, val) { return cm.doc.history.undoDepth = val; });\n option(\"historyEventDelay\", 1250);\n option(\"viewportMargin\", 10, function (cm) { return cm.refresh(); }, true);\n option(\"maxHighlightLength\", 10000, resetModeState, true);\n option(\"moveInputWithCursor\", true, function (cm, val) {\n if (!val) { cm.display.input.resetPosition(); }\n });\n\n option(\"tabindex\", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || \"\"; });\n option(\"autofocus\", null);\n option(\"direction\", \"ltr\", function (cm, val) { return cm.doc.setDirection(val); }, true);\n option(\"phrases\", null);\n }\n\n function dragDropChanged(cm, value, old) {\n var wasOn = old && old != Init;\n if (!value != !wasOn) {\n var funcs = cm.display.dragFunctions;\n var toggle = value ? on : off;\n toggle(cm.display.scroller, \"dragstart\", funcs.start);\n toggle(cm.display.scroller, \"dragenter\", funcs.enter);\n toggle(cm.display.scroller, \"dragover\", funcs.over);\n toggle(cm.display.scroller, \"dragleave\", funcs.leave);\n toggle(cm.display.scroller, \"drop\", funcs.drop);\n }\n }\n\n function wrappingChanged(cm) {\n if (cm.options.lineWrapping) {\n addClass(cm.display.wrapper, \"CodeMirror-wrap\");\n cm.display.sizer.style.minWidth = \"\";\n cm.display.sizerWidth = null;\n } else {\n rmClass(cm.display.wrapper, \"CodeMirror-wrap\");\n findMaxLine(cm);\n }\n estimateLineHeights(cm);\n regChange(cm);\n clearCaches(cm);\n setTimeout(function () { return updateScrollbars(cm); }, 100);\n }\n\n // A CodeMirror instance represents an editor. This is the object\n // that user code is usually dealing with.\n\n function CodeMirror(place, options) {\n var this$1 = this;\n\n if (!(this instanceof CodeMirror)) { return new CodeMirror(place, options) }\n\n this.options = options = options ? copyObj(options) : {};\n // Determine effective options based on given values and defaults.\n copyObj(defaults, options, false);\n\n var doc = options.value;\n if (typeof doc == \"string\") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); }\n else if (options.mode) { doc.modeOption = options.mode; }\n this.doc = doc;\n\n var input = new CodeMirror.inputStyles[options.inputStyle](this);\n var display = this.display = new Display(place, doc, input, options);\n display.wrapper.CodeMirror = this;\n themeChanged(this);\n if (options.lineWrapping)\n { this.display.wrapper.className += \" CodeMirror-wrap\"; }\n initScrollbars(this);\n\n this.state = {\n keyMaps: [], // stores maps added by addKeyMap\n overlays: [], // highlighting overlays, as added by addOverlay\n modeGen: 0, // bumped when mode/overlay changes, used to invalidate highlighting info\n overwrite: false,\n delayingBlurEvent: false,\n focused: false,\n suppressEdits: false, // used to disable editing during key handlers when in readOnly mode\n pasteIncoming: -1, cutIncoming: -1, // help recognize paste/cut edits in input.poll\n selectingText: false,\n draggingText: false,\n highlight: new Delayed(), // stores highlight worker timeout\n keySeq: null, // Unfinished key sequence\n specialChars: null\n };\n\n if (options.autofocus && !mobile) { display.input.focus(); }\n\n // Override magic textarea content restore that IE sometimes does\n // on our hidden textarea on reload\n if (ie && ie_version < 11) { setTimeout(function () { return this$1.display.input.reset(true); }, 20); }\n\n registerEventHandlers(this);\n ensureGlobalHandlers();\n\n startOperation(this);\n this.curOp.forceUpdate = true;\n attachDoc(this, doc);\n\n if ((options.autofocus && !mobile) || this.hasFocus())\n { setTimeout(function () {\n if (this$1.hasFocus() && !this$1.state.focused) { onFocus(this$1); }\n }, 20); }\n else\n { onBlur(this); }\n\n for (var opt in optionHandlers) { if (optionHandlers.hasOwnProperty(opt))\n { optionHandlers[opt](this, options[opt], Init); } }\n maybeUpdateLineNumberWidth(this);\n if (options.finishInit) { options.finishInit(this); }\n for (var i = 0; i < initHooks.length; ++i) { initHooks[i](this); }\n endOperation(this);\n // Suppress optimizelegibility in Webkit, since it breaks text\n // measuring on line wrapping boundaries.\n if (webkit && options.lineWrapping &&\n getComputedStyle(display.lineDiv).textRendering == \"optimizelegibility\")\n { display.lineDiv.style.textRendering = \"auto\"; }\n }\n\n // The default configuration options.\n CodeMirror.defaults = defaults;\n // Functions to run when options are changed.\n CodeMirror.optionHandlers = optionHandlers;\n\n // Attach the necessary event handlers when initializing the editor\n function registerEventHandlers(cm) {\n var d = cm.display;\n on(d.scroller, \"mousedown\", operation(cm, onMouseDown));\n // Older IE's will not fire a second mousedown for a double click\n if (ie && ie_version < 11)\n { on(d.scroller, \"dblclick\", operation(cm, function (e) {\n if (signalDOMEvent(cm, e)) { return }\n var pos = posFromMouse(cm, e);\n if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) { return }\n e_preventDefault(e);\n var word = cm.findWordAt(pos);\n extendSelection(cm.doc, word.anchor, word.head);\n })); }\n else\n { on(d.scroller, \"dblclick\", function (e) { return signalDOMEvent(cm, e) || e_preventDefault(e); }); }\n // Some browsers fire contextmenu *after* opening the menu, at\n // which point we can't mess with it anymore. Context menu is\n // handled in onMouseDown for these browsers.\n on(d.scroller, \"contextmenu\", function (e) { return onContextMenu(cm, e); });\n on(d.input.getField(), \"contextmenu\", function (e) {\n if (!d.scroller.contains(e.target)) { onContextMenu(cm, e); }\n });\n\n // Used to suppress mouse event handling when a touch happens\n var touchFinished, prevTouch = {end: 0};\n function finishTouch() {\n if (d.activeTouch) {\n touchFinished = setTimeout(function () { return d.activeTouch = null; }, 1000);\n prevTouch = d.activeTouch;\n prevTouch.end = +new Date;\n }\n }\n function isMouseLikeTouchEvent(e) {\n if (e.touches.length != 1) { return false }\n var touch = e.touches[0];\n return touch.radiusX <= 1 && touch.radiusY <= 1\n }\n function farAway(touch, other) {\n if (other.left == null) { return true }\n var dx = other.left - touch.left, dy = other.top - touch.top;\n return dx * dx + dy * dy > 20 * 20\n }\n on(d.scroller, \"touchstart\", function (e) {\n if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) {\n d.input.ensurePolled();\n clearTimeout(touchFinished);\n var now = +new Date;\n d.activeTouch = {start: now, moved: false,\n prev: now - prevTouch.end <= 300 ? prevTouch : null};\n if (e.touches.length == 1) {\n d.activeTouch.left = e.touches[0].pageX;\n d.activeTouch.top = e.touches[0].pageY;\n }\n }\n });\n on(d.scroller, \"touchmove\", function () {\n if (d.activeTouch) { d.activeTouch.moved = true; }\n });\n on(d.scroller, \"touchend\", function (e) {\n var touch = d.activeTouch;\n if (touch && !eventInWidget(d, e) && touch.left != null &&\n !touch.moved && new Date - touch.start < 300) {\n var pos = cm.coordsChar(d.activeTouch, \"page\"), range;\n if (!touch.prev || farAway(touch, touch.prev)) // Single tap\n { range = new Range(pos, pos); }\n else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap\n { range = cm.findWordAt(pos); }\n else // Triple tap\n { range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); }\n cm.setSelection(range.anchor, range.head);\n cm.focus();\n e_preventDefault(e);\n }\n finishTouch();\n });\n on(d.scroller, \"touchcancel\", finishTouch);\n\n // Sync scrolling between fake scrollbars and real scrollable\n // area, ensure viewport is updated when scrolling.\n on(d.scroller, \"scroll\", function () {\n if (d.scroller.clientHeight) {\n updateScrollTop(cm, d.scroller.scrollTop);\n setScrollLeft(cm, d.scroller.scrollLeft, true);\n signal(cm, \"scroll\", cm);\n }\n });\n\n // Listen to wheel events in order to try and update the viewport on time.\n on(d.scroller, \"mousewheel\", function (e) { return onScrollWheel(cm, e); });\n on(d.scroller, \"DOMMouseScroll\", function (e) { return onScrollWheel(cm, e); });\n\n // Prevent wrapper from ever scrolling\n on(d.wrapper, \"scroll\", function () { return d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; });\n\n d.dragFunctions = {\n enter: function (e) {if (!signalDOMEvent(cm, e)) { e_stop(e); }},\n over: function (e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }},\n start: function (e) { return onDragStart(cm, e); },\n drop: operation(cm, onDrop),\n leave: function (e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }}\n };\n\n var inp = d.input.getField();\n on(inp, \"keyup\", function (e) { return onKeyUp.call(cm, e); });\n on(inp, \"keydown\", operation(cm, onKeyDown));\n on(inp, \"keypress\", operation(cm, onKeyPress));\n on(inp, \"focus\", function (e) { return onFocus(cm, e); });\n on(inp, \"blur\", function (e) { return onBlur(cm, e); });\n }\n\n var initHooks = [];\n CodeMirror.defineInitHook = function (f) { return initHooks.push(f); };\n\n // Indent the given line. The how parameter can be \"smart\",\n // \"add\"/null, \"subtract\", or \"prev\". When aggressive is false\n // (typically set to true for forced single-line indents), empty\n // lines are not indented, and places where the mode returns Pass\n // are left alone.\n function indentLine(cm, n, how, aggressive) {\n var doc = cm.doc, state;\n if (how == null) { how = \"add\"; }\n if (how == \"smart\") {\n // Fall back to \"prev\" when the mode doesn't have an indentation\n // method.\n if (!doc.mode.indent) { how = \"prev\"; }\n else { state = getContextBefore(cm, n).state; }\n }\n\n var tabSize = cm.options.tabSize;\n var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize);\n if (line.stateAfter) { line.stateAfter = null; }\n var curSpaceString = line.text.match(/^\\s*/)[0], indentation;\n if (!aggressive && !/\\S/.test(line.text)) {\n indentation = 0;\n how = \"not\";\n } else if (how == \"smart\") {\n indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text);\n if (indentation == Pass || indentation > 150) {\n if (!aggressive) { return }\n how = \"prev\";\n }\n }\n if (how == \"prev\") {\n if (n > doc.first) { indentation = countColumn(getLine(doc, n-1).text, null, tabSize); }\n else { indentation = 0; }\n } else if (how == \"add\") {\n indentation = curSpace + cm.options.indentUnit;\n } else if (how == \"subtract\") {\n indentation = curSpace - cm.options.indentUnit;\n } else if (typeof how == \"number\") {\n indentation = curSpace + how;\n }\n indentation = Math.max(0, indentation);\n\n var indentString = \"\", pos = 0;\n if (cm.options.indentWithTabs)\n { for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += \"\\t\";} }\n if (pos < indentation) { indentString += spaceStr(indentation - pos); }\n\n if (indentString != curSpaceString) {\n replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), \"+input\");\n line.stateAfter = null;\n return true\n } else {\n // Ensure that, if the cursor was in the whitespace at the start\n // of the line, it is moved to the end of that space.\n for (var i$1 = 0; i$1 < doc.sel.ranges.length; i$1++) {\n var range = doc.sel.ranges[i$1];\n if (range.head.line == n && range.head.ch < curSpaceString.length) {\n var pos$1 = Pos(n, curSpaceString.length);\n replaceOneSelection(doc, i$1, new Range(pos$1, pos$1));\n break\n }\n }\n }\n }\n\n // This will be set to a {lineWise: bool, text: [string]} object, so\n // that, when pasting, we know what kind of selections the copied\n // text was made out of.\n var lastCopied = null;\n\n function setLastCopied(newLastCopied) {\n lastCopied = newLastCopied;\n }\n\n function applyTextInput(cm, inserted, deleted, sel, origin) {\n var doc = cm.doc;\n cm.display.shift = false;\n if (!sel) { sel = doc.sel; }\n\n var recent = +new Date - 200;\n var paste = origin == \"paste\" || cm.state.pasteIncoming > recent;\n var textLines = splitLinesAuto(inserted), multiPaste = null;\n // When pasting N lines into N selections, insert one line per selection\n if (paste && sel.ranges.length > 1) {\n if (lastCopied && lastCopied.text.join(\"\\n\") == inserted) {\n if (sel.ranges.length % lastCopied.text.length == 0) {\n multiPaste = [];\n for (var i = 0; i < lastCopied.text.length; i++)\n { multiPaste.push(doc.splitLines(lastCopied.text[i])); }\n }\n } else if (textLines.length == sel.ranges.length && cm.options.pasteLinesPerSelection) {\n multiPaste = map(textLines, function (l) { return [l]; });\n }\n }\n\n var updateInput = cm.curOp.updateInput;\n // Normal behavior is to insert the new text into every selection\n for (var i$1 = sel.ranges.length - 1; i$1 >= 0; i$1--) {\n var range = sel.ranges[i$1];\n var from = range.from(), to = range.to();\n if (range.empty()) {\n if (deleted && deleted > 0) // Handle deletion\n { from = Pos(from.line, from.ch - deleted); }\n else if (cm.state.overwrite && !paste) // Handle overwrite\n { to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); }\n else if (paste && lastCopied && lastCopied.lineWise && lastCopied.text.join(\"\\n\") == textLines.join(\"\\n\"))\n { from = to = Pos(from.line, 0); }\n }\n var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i$1 % multiPaste.length] : textLines,\n origin: origin || (paste ? \"paste\" : cm.state.cutIncoming > recent ? \"cut\" : \"+input\")};\n makeChange(cm.doc, changeEvent);\n signalLater(cm, \"inputRead\", cm, changeEvent);\n }\n if (inserted && !paste)\n { triggerElectric(cm, inserted); }\n\n ensureCursorVisible(cm);\n if (cm.curOp.updateInput < 2) { cm.curOp.updateInput = updateInput; }\n cm.curOp.typing = true;\n cm.state.pasteIncoming = cm.state.cutIncoming = -1;\n }\n\n function handlePaste(e, cm) {\n var pasted = e.clipboardData && e.clipboardData.getData(\"Text\");\n if (pasted) {\n e.preventDefault();\n if (!cm.isReadOnly() && !cm.options.disableInput)\n { runInOp(cm, function () { return applyTextInput(cm, pasted, 0, null, \"paste\"); }); }\n return true\n }\n }\n\n function triggerElectric(cm, inserted) {\n // When an 'electric' character is inserted, immediately trigger a reindent\n if (!cm.options.electricChars || !cm.options.smartIndent) { return }\n var sel = cm.doc.sel;\n\n for (var i = sel.ranges.length - 1; i >= 0; i--) {\n var range = sel.ranges[i];\n if (range.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range.head.line)) { continue }\n var mode = cm.getModeAt(range.head);\n var indented = false;\n if (mode.electricChars) {\n for (var j = 0; j < mode.electricChars.length; j++)\n { if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {\n indented = indentLine(cm, range.head.line, \"smart\");\n break\n } }\n } else if (mode.electricInput) {\n if (mode.electricInput.test(getLine(cm.doc, range.head.line).text.slice(0, range.head.ch)))\n { indented = indentLine(cm, range.head.line, \"smart\"); }\n }\n if (indented) { signalLater(cm, \"electricInput\", cm, range.head.line); }\n }\n }\n\n function copyableRanges(cm) {\n var text = [], ranges = [];\n for (var i = 0; i < cm.doc.sel.ranges.length; i++) {\n var line = cm.doc.sel.ranges[i].head.line;\n var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)};\n ranges.push(lineRange);\n text.push(cm.getRange(lineRange.anchor, lineRange.head));\n }\n return {text: text, ranges: ranges}\n }\n\n function disableBrowserMagic(field, spellcheck, autocorrect, autocapitalize) {\n field.setAttribute(\"autocorrect\", autocorrect ? \"\" : \"off\");\n field.setAttribute(\"autocapitalize\", autocapitalize ? \"\" : \"off\");\n field.setAttribute(\"spellcheck\", !!spellcheck);\n }\n\n function hiddenTextarea() {\n var te = elt(\"textarea\", null, null, \"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none\");\n var div = elt(\"div\", [te], null, \"overflow: hidden; position: relative; width: 3px; height: 0px;\");\n // The textarea is kept positioned near the cursor to prevent the\n // fact that it'll be scrolled into view on input from scrolling\n // our fake cursor out of view. On webkit, when wrap=off, paste is\n // very slow. So make the area wide instead.\n if (webkit) { te.style.width = \"1000px\"; }\n else { te.setAttribute(\"wrap\", \"off\"); }\n // If border: 0; -- iOS fails to open keyboard (issue #1287)\n if (ios) { te.style.border = \"1px solid black\"; }\n disableBrowserMagic(te);\n return div\n }\n\n // The publicly visible API. Note that methodOp(f) means\n // 'wrap f in an operation, performed on its `this` parameter'.\n\n // This is not the complete set of editor methods. Most of the\n // methods defined on the Doc type are also injected into\n // CodeMirror.prototype, for backwards compatibility and\n // convenience.\n\n function addEditorMethods(CodeMirror) {\n var optionHandlers = CodeMirror.optionHandlers;\n\n var helpers = CodeMirror.helpers = {};\n\n CodeMirror.prototype = {\n constructor: CodeMirror,\n focus: function(){window.focus(); this.display.input.focus();},\n\n setOption: function(option, value) {\n var options = this.options, old = options[option];\n if (options[option] == value && option != \"mode\") { return }\n options[option] = value;\n if (optionHandlers.hasOwnProperty(option))\n { operation(this, optionHandlers[option])(this, value, old); }\n signal(this, \"optionChange\", this, option);\n },\n\n getOption: function(option) {return this.options[option]},\n getDoc: function() {return this.doc},\n\n addKeyMap: function(map, bottom) {\n this.state.keyMaps[bottom ? \"push\" : \"unshift\"](getKeyMap(map));\n },\n removeKeyMap: function(map) {\n var maps = this.state.keyMaps;\n for (var i = 0; i < maps.length; ++i)\n { if (maps[i] == map || maps[i].name == map) {\n maps.splice(i, 1);\n return true\n } }\n },\n\n addOverlay: methodOp(function(spec, options) {\n var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec);\n if (mode.startState) { throw new Error(\"Overlays may not be stateful.\") }\n insertSorted(this.state.overlays,\n {mode: mode, modeSpec: spec, opaque: options && options.opaque,\n priority: (options && options.priority) || 0},\n function (overlay) { return overlay.priority; });\n this.state.modeGen++;\n regChange(this);\n }),\n removeOverlay: methodOp(function(spec) {\n var overlays = this.state.overlays;\n for (var i = 0; i < overlays.length; ++i) {\n var cur = overlays[i].modeSpec;\n if (cur == spec || typeof spec == \"string\" && cur.name == spec) {\n overlays.splice(i, 1);\n this.state.modeGen++;\n regChange(this);\n return\n }\n }\n }),\n\n indentLine: methodOp(function(n, dir, aggressive) {\n if (typeof dir != \"string\" && typeof dir != \"number\") {\n if (dir == null) { dir = this.options.smartIndent ? \"smart\" : \"prev\"; }\n else { dir = dir ? \"add\" : \"subtract\"; }\n }\n if (isLine(this.doc, n)) { indentLine(this, n, dir, aggressive); }\n }),\n indentSelection: methodOp(function(how) {\n var ranges = this.doc.sel.ranges, end = -1;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (!range.empty()) {\n var from = range.from(), to = range.to();\n var start = Math.max(end, from.line);\n end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1;\n for (var j = start; j < end; ++j)\n { indentLine(this, j, how); }\n var newRanges = this.doc.sel.ranges;\n if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0)\n { replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); }\n } else if (range.head.line > end) {\n indentLine(this, range.head.line, how, true);\n end = range.head.line;\n if (i == this.doc.sel.primIndex) { ensureCursorVisible(this); }\n }\n }\n }),\n\n // Fetch the parser token for a given character. Useful for hacks\n // that want to inspect the mode state (say, for completion).\n getTokenAt: function(pos, precise) {\n return takeToken(this, pos, precise)\n },\n\n getLineTokens: function(line, precise) {\n return takeToken(this, Pos(line), precise, true)\n },\n\n getTokenTypeAt: function(pos) {\n pos = clipPos(this.doc, pos);\n var styles = getLineStyles(this, getLine(this.doc, pos.line));\n var before = 0, after = (styles.length - 1) / 2, ch = pos.ch;\n var type;\n if (ch == 0) { type = styles[2]; }\n else { for (;;) {\n var mid = (before + after) >> 1;\n if ((mid ? styles[mid * 2 - 1] : 0) >= ch) { after = mid; }\n else if (styles[mid * 2 + 1] < ch) { before = mid + 1; }\n else { type = styles[mid * 2 + 2]; break }\n } }\n var cut = type ? type.indexOf(\"overlay \") : -1;\n return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1)\n },\n\n getModeAt: function(pos) {\n var mode = this.doc.mode;\n if (!mode.innerMode) { return mode }\n return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode\n },\n\n getHelper: function(pos, type) {\n return this.getHelpers(pos, type)[0]\n },\n\n getHelpers: function(pos, type) {\n var found = [];\n if (!helpers.hasOwnProperty(type)) { return found }\n var help = helpers[type], mode = this.getModeAt(pos);\n if (typeof mode[type] == \"string\") {\n if (help[mode[type]]) { found.push(help[mode[type]]); }\n } else if (mode[type]) {\n for (var i = 0; i < mode[type].length; i++) {\n var val = help[mode[type][i]];\n if (val) { found.push(val); }\n }\n } else if (mode.helperType && help[mode.helperType]) {\n found.push(help[mode.helperType]);\n } else if (help[mode.name]) {\n found.push(help[mode.name]);\n }\n for (var i$1 = 0; i$1 < help._global.length; i$1++) {\n var cur = help._global[i$1];\n if (cur.pred(mode, this) && indexOf(found, cur.val) == -1)\n { found.push(cur.val); }\n }\n return found\n },\n\n getStateAfter: function(line, precise) {\n var doc = this.doc;\n line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);\n return getContextBefore(this, line + 1, precise).state\n },\n\n cursorCoords: function(start, mode) {\n var pos, range = this.doc.sel.primary();\n if (start == null) { pos = range.head; }\n else if (typeof start == \"object\") { pos = clipPos(this.doc, start); }\n else { pos = start ? range.from() : range.to(); }\n return cursorCoords(this, pos, mode || \"page\")\n },\n\n charCoords: function(pos, mode) {\n return charCoords(this, clipPos(this.doc, pos), mode || \"page\")\n },\n\n coordsChar: function(coords, mode) {\n coords = fromCoordSystem(this, coords, mode || \"page\");\n return coordsChar(this, coords.left, coords.top)\n },\n\n lineAtHeight: function(height, mode) {\n height = fromCoordSystem(this, {top: height, left: 0}, mode || \"page\").top;\n return lineAtHeight(this.doc, height + this.display.viewOffset)\n },\n heightAtLine: function(line, mode, includeWidgets) {\n var end = false, lineObj;\n if (typeof line == \"number\") {\n var last = this.doc.first + this.doc.size - 1;\n if (line < this.doc.first) { line = this.doc.first; }\n else if (line > last) { line = last; end = true; }\n lineObj = getLine(this.doc, line);\n } else {\n lineObj = line;\n }\n return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || \"page\", includeWidgets || end).top +\n (end ? this.doc.height - heightAtLine(lineObj) : 0)\n },\n\n defaultTextHeight: function() { return textHeight(this.display) },\n defaultCharWidth: function() { return charWidth(this.display) },\n\n getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo}},\n\n addWidget: function(pos, node, scroll, vert, horiz) {\n var display = this.display;\n pos = cursorCoords(this, clipPos(this.doc, pos));\n var top = pos.bottom, left = pos.left;\n node.style.position = \"absolute\";\n node.setAttribute(\"cm-ignore-events\", \"true\");\n this.display.input.setUneditable(node);\n display.sizer.appendChild(node);\n if (vert == \"over\") {\n top = pos.top;\n } else if (vert == \"above\" || vert == \"near\") {\n var vspace = Math.max(display.wrapper.clientHeight, this.doc.height),\n hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth);\n // Default to positioning above (if specified and possible); otherwise default to positioning below\n if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight)\n { top = pos.top - node.offsetHeight; }\n else if (pos.bottom + node.offsetHeight <= vspace)\n { top = pos.bottom; }\n if (left + node.offsetWidth > hspace)\n { left = hspace - node.offsetWidth; }\n }\n node.style.top = top + \"px\";\n node.style.left = node.style.right = \"\";\n if (horiz == \"right\") {\n left = display.sizer.clientWidth - node.offsetWidth;\n node.style.right = \"0px\";\n } else {\n if (horiz == \"left\") { left = 0; }\n else if (horiz == \"middle\") { left = (display.sizer.clientWidth - node.offsetWidth) / 2; }\n node.style.left = left + \"px\";\n }\n if (scroll)\n { scrollIntoView(this, {left: left, top: top, right: left + node.offsetWidth, bottom: top + node.offsetHeight}); }\n },\n\n triggerOnKeyDown: methodOp(onKeyDown),\n triggerOnKeyPress: methodOp(onKeyPress),\n triggerOnKeyUp: onKeyUp,\n triggerOnMouseDown: methodOp(onMouseDown),\n\n execCommand: function(cmd) {\n if (commands.hasOwnProperty(cmd))\n { return commands[cmd].call(null, this) }\n },\n\n triggerElectric: methodOp(function(text) { triggerElectric(this, text); }),\n\n findPosH: function(from, amount, unit, visually) {\n var dir = 1;\n if (amount < 0) { dir = -1; amount = -amount; }\n var cur = clipPos(this.doc, from);\n for (var i = 0; i < amount; ++i) {\n cur = findPosH(this.doc, cur, dir, unit, visually);\n if (cur.hitSide) { break }\n }\n return cur\n },\n\n moveH: methodOp(function(dir, unit) {\n var this$1 = this;\n\n this.extendSelectionsBy(function (range) {\n if (this$1.display.shift || this$1.doc.extend || range.empty())\n { return findPosH(this$1.doc, range.head, dir, unit, this$1.options.rtlMoveVisually) }\n else\n { return dir < 0 ? range.from() : range.to() }\n }, sel_move);\n }),\n\n deleteH: methodOp(function(dir, unit) {\n var sel = this.doc.sel, doc = this.doc;\n if (sel.somethingSelected())\n { doc.replaceSelection(\"\", null, \"+delete\"); }\n else\n { deleteNearSelection(this, function (range) {\n var other = findPosH(doc, range.head, dir, unit, false);\n return dir < 0 ? {from: other, to: range.head} : {from: range.head, to: other}\n }); }\n }),\n\n findPosV: function(from, amount, unit, goalColumn) {\n var dir = 1, x = goalColumn;\n if (amount < 0) { dir = -1; amount = -amount; }\n var cur = clipPos(this.doc, from);\n for (var i = 0; i < amount; ++i) {\n var coords = cursorCoords(this, cur, \"div\");\n if (x == null) { x = coords.left; }\n else { coords.left = x; }\n cur = findPosV(this, coords, dir, unit);\n if (cur.hitSide) { break }\n }\n return cur\n },\n\n moveV: methodOp(function(dir, unit) {\n var this$1 = this;\n\n var doc = this.doc, goals = [];\n var collapse = !this.display.shift && !doc.extend && doc.sel.somethingSelected();\n doc.extendSelectionsBy(function (range) {\n if (collapse)\n { return dir < 0 ? range.from() : range.to() }\n var headPos = cursorCoords(this$1, range.head, \"div\");\n if (range.goalColumn != null) { headPos.left = range.goalColumn; }\n goals.push(headPos.left);\n var pos = findPosV(this$1, headPos, dir, unit);\n if (unit == \"page\" && range == doc.sel.primary())\n { addToScrollTop(this$1, charCoords(this$1, pos, \"div\").top - headPos.top); }\n return pos\n }, sel_move);\n if (goals.length) { for (var i = 0; i < doc.sel.ranges.length; i++)\n { doc.sel.ranges[i].goalColumn = goals[i]; } }\n }),\n\n // Find the word at the given position (as returned by coordsChar).\n findWordAt: function(pos) {\n var doc = this.doc, line = getLine(doc, pos.line).text;\n var start = pos.ch, end = pos.ch;\n if (line) {\n var helper = this.getHelper(pos, \"wordChars\");\n if ((pos.sticky == \"before\" || end == line.length) && start) { --start; } else { ++end; }\n var startChar = line.charAt(start);\n var check = isWordChar(startChar, helper)\n ? function (ch) { return isWordChar(ch, helper); }\n : /\\s/.test(startChar) ? function (ch) { return /\\s/.test(ch); }\n : function (ch) { return (!/\\s/.test(ch) && !isWordChar(ch)); };\n while (start > 0 && check(line.charAt(start - 1))) { --start; }\n while (end < line.length && check(line.charAt(end))) { ++end; }\n }\n return new Range(Pos(pos.line, start), Pos(pos.line, end))\n },\n\n toggleOverwrite: function(value) {\n if (value != null && value == this.state.overwrite) { return }\n if (this.state.overwrite = !this.state.overwrite)\n { addClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n else\n { rmClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n\n signal(this, \"overwriteToggle\", this, this.state.overwrite);\n },\n hasFocus: function() { return this.display.input.getField() == activeElt() },\n isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) },\n\n scrollTo: methodOp(function (x, y) { scrollToCoords(this, x, y); }),\n getScrollInfo: function() {\n var scroller = this.display.scroller;\n return {left: scroller.scrollLeft, top: scroller.scrollTop,\n height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight,\n width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth,\n clientHeight: displayHeight(this), clientWidth: displayWidth(this)}\n },\n\n scrollIntoView: methodOp(function(range, margin) {\n if (range == null) {\n range = {from: this.doc.sel.primary().head, to: null};\n if (margin == null) { margin = this.options.cursorScrollMargin; }\n } else if (typeof range == \"number\") {\n range = {from: Pos(range, 0), to: null};\n } else if (range.from == null) {\n range = {from: range, to: null};\n }\n if (!range.to) { range.to = range.from; }\n range.margin = margin || 0;\n\n if (range.from.line != null) {\n scrollToRange(this, range);\n } else {\n scrollToCoordsRange(this, range.from, range.to, range.margin);\n }\n }),\n\n setSize: methodOp(function(width, height) {\n var this$1 = this;\n\n var interpret = function (val) { return typeof val == \"number\" || /^\\d+$/.test(String(val)) ? val + \"px\" : val; };\n if (width != null) { this.display.wrapper.style.width = interpret(width); }\n if (height != null) { this.display.wrapper.style.height = interpret(height); }\n if (this.options.lineWrapping) { clearLineMeasurementCache(this); }\n var lineNo = this.display.viewFrom;\n this.doc.iter(lineNo, this.display.viewTo, function (line) {\n if (line.widgets) { for (var i = 0; i < line.widgets.length; i++)\n { if (line.widgets[i].noHScroll) { regLineChange(this$1, lineNo, \"widget\"); break } } }\n ++lineNo;\n });\n this.curOp.forceUpdate = true;\n signal(this, \"refresh\", this);\n }),\n\n operation: function(f){return runInOp(this, f)},\n startOperation: function(){return startOperation(this)},\n endOperation: function(){return endOperation(this)},\n\n refresh: methodOp(function() {\n var oldHeight = this.display.cachedTextHeight;\n regChange(this);\n this.curOp.forceUpdate = true;\n clearCaches(this);\n scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop);\n updateGutterSpace(this.display);\n if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5 || this.options.lineWrapping)\n { estimateLineHeights(this); }\n signal(this, \"refresh\", this);\n }),\n\n swapDoc: methodOp(function(doc) {\n var old = this.doc;\n old.cm = null;\n // Cancel the current text selection if any (#5821)\n if (this.state.selectingText) { this.state.selectingText(); }\n attachDoc(this, doc);\n clearCaches(this);\n this.display.input.reset();\n scrollToCoords(this, doc.scrollLeft, doc.scrollTop);\n this.curOp.forceScroll = true;\n signalLater(this, \"swapDoc\", this, old);\n return old\n }),\n\n phrase: function(phraseText) {\n var phrases = this.options.phrases;\n return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText\n },\n\n getInputField: function(){return this.display.input.getField()},\n getWrapperElement: function(){return this.display.wrapper},\n getScrollerElement: function(){return this.display.scroller},\n getGutterElement: function(){return this.display.gutters}\n };\n eventMixin(CodeMirror);\n\n CodeMirror.registerHelper = function(type, name, value) {\n if (!helpers.hasOwnProperty(type)) { helpers[type] = CodeMirror[type] = {_global: []}; }\n helpers[type][name] = value;\n };\n CodeMirror.registerGlobalHelper = function(type, name, predicate, value) {\n CodeMirror.registerHelper(type, name, value);\n helpers[type]._global.push({pred: predicate, val: value});\n };\n }\n\n // Used for horizontal relative motion. Dir is -1 or 1 (left or\n // right), unit can be \"codepoint\", \"char\", \"column\" (like char, but\n // doesn't cross line boundaries), \"word\" (across next word), or\n // \"group\" (to the start of next group of word or\n // non-word-non-whitespace chars). The visually param controls\n // whether, in right-to-left text, direction 1 means to move towards\n // the next index in the string, or towards the character to the right\n // of the current position. The resulting position will have a\n // hitSide=true property if it reached the end of the document.\n function findPosH(doc, pos, dir, unit, visually) {\n var oldPos = pos;\n var origDir = dir;\n var lineObj = getLine(doc, pos.line);\n var lineDir = visually && doc.direction == \"rtl\" ? -dir : dir;\n function findNextLine() {\n var l = pos.line + lineDir;\n if (l < doc.first || l >= doc.first + doc.size) { return false }\n pos = new Pos(l, pos.ch, pos.sticky);\n return lineObj = getLine(doc, l)\n }\n function moveOnce(boundToLine) {\n var next;\n if (unit == \"codepoint\") {\n var ch = lineObj.text.charCodeAt(pos.ch + (unit > 0 ? 0 : -1));\n if (isNaN(ch)) { next = null; }\n else { next = new Pos(pos.line, Math.max(0, Math.min(lineObj.text.length, pos.ch + dir * (ch >= 0xD800 && ch < 0xDC00 ? 2 : 1))),\n -dir); }\n } else if (visually) {\n next = moveVisually(doc.cm, lineObj, pos, dir);\n } else {\n next = moveLogically(lineObj, pos, dir);\n }\n if (next == null) {\n if (!boundToLine && findNextLine())\n { pos = endOfLine(visually, doc.cm, lineObj, pos.line, lineDir); }\n else\n { return false }\n } else {\n pos = next;\n }\n return true\n }\n\n if (unit == \"char\" || unit == \"codepoint\") {\n moveOnce();\n } else if (unit == \"column\") {\n moveOnce(true);\n } else if (unit == \"word\" || unit == \"group\") {\n var sawType = null, group = unit == \"group\";\n var helper = doc.cm && doc.cm.getHelper(pos, \"wordChars\");\n for (var first = true;; first = false) {\n if (dir < 0 && !moveOnce(!first)) { break }\n var cur = lineObj.text.charAt(pos.ch) || \"\\n\";\n var type = isWordChar(cur, helper) ? \"w\"\n : group && cur == \"\\n\" ? \"n\"\n : !group || /\\s/.test(cur) ? null\n : \"p\";\n if (group && !first && !type) { type = \"s\"; }\n if (sawType && sawType != type) {\n if (dir < 0) {dir = 1; moveOnce(); pos.sticky = \"after\";}\n break\n }\n\n if (type) { sawType = type; }\n if (dir > 0 && !moveOnce(!first)) { break }\n }\n }\n var result = skipAtomic(doc, pos, oldPos, origDir, true);\n if (equalCursorPos(oldPos, result)) { result.hitSide = true; }\n return result\n }\n\n // For relative vertical movement. Dir may be -1 or 1. Unit can be\n // \"page\" or \"line\". The resulting position will have a hitSide=true\n // property if it reached the end of the document.\n function findPosV(cm, pos, dir, unit) {\n var doc = cm.doc, x = pos.left, y;\n if (unit == \"page\") {\n var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight);\n var moveAmount = Math.max(pageSize - .5 * textHeight(cm.display), 3);\n y = (dir > 0 ? pos.bottom : pos.top) + dir * moveAmount;\n\n } else if (unit == \"line\") {\n y = dir > 0 ? pos.bottom + 3 : pos.top - 3;\n }\n var target;\n for (;;) {\n target = coordsChar(cm, x, y);\n if (!target.outside) { break }\n if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break }\n y += dir * 5;\n }\n return target\n }\n\n // CONTENTEDITABLE INPUT STYLE\n\n var ContentEditableInput = function(cm) {\n this.cm = cm;\n this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null;\n this.polling = new Delayed();\n this.composing = null;\n this.gracePeriod = false;\n this.readDOMTimeout = null;\n };\n\n ContentEditableInput.prototype.init = function (display) {\n var this$1 = this;\n\n var input = this, cm = input.cm;\n var div = input.div = display.lineDiv;\n disableBrowserMagic(div, cm.options.spellcheck, cm.options.autocorrect, cm.options.autocapitalize);\n\n function belongsToInput(e) {\n for (var t = e.target; t; t = t.parentNode) {\n if (t == div) { return true }\n if (/\\bCodeMirror-(?:line)?widget\\b/.test(t.className)) { break }\n }\n return false\n }\n\n on(div, \"paste\", function (e) {\n if (!belongsToInput(e) || signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n // IE doesn't fire input events, so we schedule a read for the pasted content in this way\n if (ie_version <= 11) { setTimeout(operation(cm, function () { return this$1.updateFromDOM(); }), 20); }\n });\n\n on(div, \"compositionstart\", function (e) {\n this$1.composing = {data: e.data, done: false};\n });\n on(div, \"compositionupdate\", function (e) {\n if (!this$1.composing) { this$1.composing = {data: e.data, done: false}; }\n });\n on(div, \"compositionend\", function (e) {\n if (this$1.composing) {\n if (e.data != this$1.composing.data) { this$1.readFromDOMSoon(); }\n this$1.composing.done = true;\n }\n });\n\n on(div, \"touchstart\", function () { return input.forceCompositionEnd(); });\n\n on(div, \"input\", function () {\n if (!this$1.composing) { this$1.readFromDOMSoon(); }\n });\n\n function onCopyCut(e) {\n if (!belongsToInput(e) || signalDOMEvent(cm, e)) { return }\n if (cm.somethingSelected()) {\n setLastCopied({lineWise: false, text: cm.getSelections()});\n if (e.type == \"cut\") { cm.replaceSelection(\"\", null, \"cut\"); }\n } else if (!cm.options.lineWiseCopyCut) {\n return\n } else {\n var ranges = copyableRanges(cm);\n setLastCopied({lineWise: true, text: ranges.text});\n if (e.type == \"cut\") {\n cm.operation(function () {\n cm.setSelections(ranges.ranges, 0, sel_dontScroll);\n cm.replaceSelection(\"\", null, \"cut\");\n });\n }\n }\n if (e.clipboardData) {\n e.clipboardData.clearData();\n var content = lastCopied.text.join(\"\\n\");\n // iOS exposes the clipboard API, but seems to discard content inserted into it\n e.clipboardData.setData(\"Text\", content);\n if (e.clipboardData.getData(\"Text\") == content) {\n e.preventDefault();\n return\n }\n }\n // Old-fashioned briefly-focus-a-textarea hack\n var kludge = hiddenTextarea(), te = kludge.firstChild;\n cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);\n te.value = lastCopied.text.join(\"\\n\");\n var hadFocus = document.activeElement;\n selectInput(te);\n setTimeout(function () {\n cm.display.lineSpace.removeChild(kludge);\n hadFocus.focus();\n if (hadFocus == div) { input.showPrimarySelection(); }\n }, 50);\n }\n on(div, \"copy\", onCopyCut);\n on(div, \"cut\", onCopyCut);\n };\n\n ContentEditableInput.prototype.screenReaderLabelChanged = function (label) {\n // Label for screenreaders, accessibility\n if(label) {\n this.div.setAttribute('aria-label', label);\n } else {\n this.div.removeAttribute('aria-label');\n }\n };\n\n ContentEditableInput.prototype.prepareSelection = function () {\n var result = prepareSelection(this.cm, false);\n result.focus = document.activeElement == this.div;\n return result\n };\n\n ContentEditableInput.prototype.showSelection = function (info, takeFocus) {\n if (!info || !this.cm.display.view.length) { return }\n if (info.focus || takeFocus) { this.showPrimarySelection(); }\n this.showMultipleSelections(info);\n };\n\n ContentEditableInput.prototype.getSelection = function () {\n return this.cm.display.wrapper.ownerDocument.getSelection()\n };\n\n ContentEditableInput.prototype.showPrimarySelection = function () {\n var sel = this.getSelection(), cm = this.cm, prim = cm.doc.sel.primary();\n var from = prim.from(), to = prim.to();\n\n if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) {\n sel.removeAllRanges();\n return\n }\n\n var curAnchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n var curFocus = domToPos(cm, sel.focusNode, sel.focusOffset);\n if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&\n cmp(minPos(curAnchor, curFocus), from) == 0 &&\n cmp(maxPos(curAnchor, curFocus), to) == 0)\n { return }\n\n var view = cm.display.view;\n var start = (from.line >= cm.display.viewFrom && posToDOM(cm, from)) ||\n {node: view[0].measure.map[2], offset: 0};\n var end = to.line < cm.display.viewTo && posToDOM(cm, to);\n if (!end) {\n var measure = view[view.length - 1].measure;\n var map = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;\n end = {node: map[map.length - 1], offset: map[map.length - 2] - map[map.length - 3]};\n }\n\n if (!start || !end) {\n sel.removeAllRanges();\n return\n }\n\n var old = sel.rangeCount && sel.getRangeAt(0), rng;\n try { rng = range(start.node, start.offset, end.offset, end.node); }\n catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible\n if (rng) {\n if (!gecko && cm.state.focused) {\n sel.collapse(start.node, start.offset);\n if (!rng.collapsed) {\n sel.removeAllRanges();\n sel.addRange(rng);\n }\n } else {\n sel.removeAllRanges();\n sel.addRange(rng);\n }\n if (old && sel.anchorNode == null) { sel.addRange(old); }\n else if (gecko) { this.startGracePeriod(); }\n }\n this.rememberSelection();\n };\n\n ContentEditableInput.prototype.startGracePeriod = function () {\n var this$1 = this;\n\n clearTimeout(this.gracePeriod);\n this.gracePeriod = setTimeout(function () {\n this$1.gracePeriod = false;\n if (this$1.selectionChanged())\n { this$1.cm.operation(function () { return this$1.cm.curOp.selectionChanged = true; }); }\n }, 20);\n };\n\n ContentEditableInput.prototype.showMultipleSelections = function (info) {\n removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors);\n removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection);\n };\n\n ContentEditableInput.prototype.rememberSelection = function () {\n var sel = this.getSelection();\n this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;\n this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;\n };\n\n ContentEditableInput.prototype.selectionInEditor = function () {\n var sel = this.getSelection();\n if (!sel.rangeCount) { return false }\n var node = sel.getRangeAt(0).commonAncestorContainer;\n return contains(this.div, node)\n };\n\n ContentEditableInput.prototype.focus = function () {\n if (this.cm.options.readOnly != \"nocursor\") {\n if (!this.selectionInEditor() || document.activeElement != this.div)\n { this.showSelection(this.prepareSelection(), true); }\n this.div.focus();\n }\n };\n ContentEditableInput.prototype.blur = function () { this.div.blur(); };\n ContentEditableInput.prototype.getField = function () { return this.div };\n\n ContentEditableInput.prototype.supportsTouch = function () { return true };\n\n ContentEditableInput.prototype.receivedFocus = function () {\n var input = this;\n if (this.selectionInEditor())\n { this.pollSelection(); }\n else\n { runInOp(this.cm, function () { return input.cm.curOp.selectionChanged = true; }); }\n\n function poll() {\n if (input.cm.state.focused) {\n input.pollSelection();\n input.polling.set(input.cm.options.pollInterval, poll);\n }\n }\n this.polling.set(this.cm.options.pollInterval, poll);\n };\n\n ContentEditableInput.prototype.selectionChanged = function () {\n var sel = this.getSelection();\n return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||\n sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset\n };\n\n ContentEditableInput.prototype.pollSelection = function () {\n if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { return }\n var sel = this.getSelection(), cm = this.cm;\n // On Android Chrome (version 56, at least), backspacing into an\n // uneditable block element will put the cursor in that element,\n // and then, because it's not editable, hide the virtual keyboard.\n // Because Android doesn't allow us to actually detect backspace\n // presses in a sane way, this code checks for when that happens\n // and simulates a backspace press in this case.\n if (android && chrome && this.cm.display.gutterSpecs.length && isInGutter(sel.anchorNode)) {\n this.cm.triggerOnKeyDown({type: \"keydown\", keyCode: 8, preventDefault: Math.abs});\n this.blur();\n this.focus();\n return\n }\n if (this.composing) { return }\n this.rememberSelection();\n var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n var head = domToPos(cm, sel.focusNode, sel.focusOffset);\n if (anchor && head) { runInOp(cm, function () {\n setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll);\n if (anchor.bad || head.bad) { cm.curOp.selectionChanged = true; }\n }); }\n };\n\n ContentEditableInput.prototype.pollContent = function () {\n if (this.readDOMTimeout != null) {\n clearTimeout(this.readDOMTimeout);\n this.readDOMTimeout = null;\n }\n\n var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary();\n var from = sel.from(), to = sel.to();\n if (from.ch == 0 && from.line > cm.firstLine())\n { from = Pos(from.line - 1, getLine(cm.doc, from.line - 1).length); }\n if (to.ch == getLine(cm.doc, to.line).text.length && to.line < cm.lastLine())\n { to = Pos(to.line + 1, 0); }\n if (from.line < display.viewFrom || to.line > display.viewTo - 1) { return false }\n\n var fromIndex, fromLine, fromNode;\n if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) {\n fromLine = lineNo(display.view[0].line);\n fromNode = display.view[0].node;\n } else {\n fromLine = lineNo(display.view[fromIndex].line);\n fromNode = display.view[fromIndex - 1].node.nextSibling;\n }\n var toIndex = findViewIndex(cm, to.line);\n var toLine, toNode;\n if (toIndex == display.view.length - 1) {\n toLine = display.viewTo - 1;\n toNode = display.lineDiv.lastChild;\n } else {\n toLine = lineNo(display.view[toIndex + 1].line) - 1;\n toNode = display.view[toIndex + 1].node.previousSibling;\n }\n\n if (!fromNode) { return false }\n var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine));\n var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length));\n while (newText.length > 1 && oldText.length > 1) {\n if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; }\n else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; }\n else { break }\n }\n\n var cutFront = 0, cutEnd = 0;\n var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length);\n while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront))\n { ++cutFront; }\n var newBot = lst(newText), oldBot = lst(oldText);\n var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0),\n oldBot.length - (oldText.length == 1 ? cutFront : 0));\n while (cutEnd < maxCutEnd &&\n newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1))\n { ++cutEnd; }\n // Try to move start of change to start of selection if ambiguous\n if (newText.length == 1 && oldText.length == 1 && fromLine == from.line) {\n while (cutFront && cutFront > from.ch &&\n newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) {\n cutFront--;\n cutEnd++;\n }\n }\n\n newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd).replace(/^\\u200b+/, \"\");\n newText[0] = newText[0].slice(cutFront).replace(/\\u200b+$/, \"\");\n\n var chFrom = Pos(fromLine, cutFront);\n var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0);\n if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) {\n replaceRange(cm.doc, newText, chFrom, chTo, \"+input\");\n return true\n }\n };\n\n ContentEditableInput.prototype.ensurePolled = function () {\n this.forceCompositionEnd();\n };\n ContentEditableInput.prototype.reset = function () {\n this.forceCompositionEnd();\n };\n ContentEditableInput.prototype.forceCompositionEnd = function () {\n if (!this.composing) { return }\n clearTimeout(this.readDOMTimeout);\n this.composing = null;\n this.updateFromDOM();\n this.div.blur();\n this.div.focus();\n };\n ContentEditableInput.prototype.readFromDOMSoon = function () {\n var this$1 = this;\n\n if (this.readDOMTimeout != null) { return }\n this.readDOMTimeout = setTimeout(function () {\n this$1.readDOMTimeout = null;\n if (this$1.composing) {\n if (this$1.composing.done) { this$1.composing = null; }\n else { return }\n }\n this$1.updateFromDOM();\n }, 80);\n };\n\n ContentEditableInput.prototype.updateFromDOM = function () {\n var this$1 = this;\n\n if (this.cm.isReadOnly() || !this.pollContent())\n { runInOp(this.cm, function () { return regChange(this$1.cm); }); }\n };\n\n ContentEditableInput.prototype.setUneditable = function (node) {\n node.contentEditable = \"false\";\n };\n\n ContentEditableInput.prototype.onKeyPress = function (e) {\n if (e.charCode == 0 || this.composing) { return }\n e.preventDefault();\n if (!this.cm.isReadOnly())\n { operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); }\n };\n\n ContentEditableInput.prototype.readOnlyChanged = function (val) {\n this.div.contentEditable = String(val != \"nocursor\");\n };\n\n ContentEditableInput.prototype.onContextMenu = function () {};\n ContentEditableInput.prototype.resetPosition = function () {};\n\n ContentEditableInput.prototype.needsContentAttribute = true;\n\n function posToDOM(cm, pos) {\n var view = findViewForLine(cm, pos.line);\n if (!view || view.hidden) { return null }\n var line = getLine(cm.doc, pos.line);\n var info = mapFromLineView(view, line, pos.line);\n\n var order = getOrder(line, cm.doc.direction), side = \"left\";\n if (order) {\n var partPos = getBidiPartAt(order, pos.ch);\n side = partPos % 2 ? \"right\" : \"left\";\n }\n var result = nodeAndOffsetInLineMap(info.map, pos.ch, side);\n result.offset = result.collapse == \"right\" ? result.end : result.start;\n return result\n }\n\n function isInGutter(node) {\n for (var scan = node; scan; scan = scan.parentNode)\n { if (/CodeMirror-gutter-wrapper/.test(scan.className)) { return true } }\n return false\n }\n\n function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos }\n\n function domTextBetween(cm, from, to, fromLine, toLine) {\n var text = \"\", closing = false, lineSep = cm.doc.lineSeparator(), extraLinebreak = false;\n function recognizeMarker(id) { return function (marker) { return marker.id == id; } }\n function close() {\n if (closing) {\n text += lineSep;\n if (extraLinebreak) { text += lineSep; }\n closing = extraLinebreak = false;\n }\n }\n function addText(str) {\n if (str) {\n close();\n text += str;\n }\n }\n function walk(node) {\n if (node.nodeType == 1) {\n var cmText = node.getAttribute(\"cm-text\");\n if (cmText) {\n addText(cmText);\n return\n }\n var markerID = node.getAttribute(\"cm-marker\"), range;\n if (markerID) {\n var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));\n if (found.length && (range = found[0].find(0)))\n { addText(getBetween(cm.doc, range.from, range.to).join(lineSep)); }\n return\n }\n if (node.getAttribute(\"contenteditable\") == \"false\") { return }\n var isBlock = /^(pre|div|p|li|table|br)$/i.test(node.nodeName);\n if (!/^br$/i.test(node.nodeName) && node.textContent.length == 0) { return }\n\n if (isBlock) { close(); }\n for (var i = 0; i < node.childNodes.length; i++)\n { walk(node.childNodes[i]); }\n\n if (/^(pre|p)$/i.test(node.nodeName)) { extraLinebreak = true; }\n if (isBlock) { closing = true; }\n } else if (node.nodeType == 3) {\n addText(node.nodeValue.replace(/\\u200b/g, \"\").replace(/\\u00a0/g, \" \"));\n }\n }\n for (;;) {\n walk(from);\n if (from == to) { break }\n from = from.nextSibling;\n extraLinebreak = false;\n }\n return text\n }\n\n function domToPos(cm, node, offset) {\n var lineNode;\n if (node == cm.display.lineDiv) {\n lineNode = cm.display.lineDiv.childNodes[offset];\n if (!lineNode) { return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true) }\n node = null; offset = 0;\n } else {\n for (lineNode = node;; lineNode = lineNode.parentNode) {\n if (!lineNode || lineNode == cm.display.lineDiv) { return null }\n if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) { break }\n }\n }\n for (var i = 0; i < cm.display.view.length; i++) {\n var lineView = cm.display.view[i];\n if (lineView.node == lineNode)\n { return locateNodeInLineView(lineView, node, offset) }\n }\n }\n\n function locateNodeInLineView(lineView, node, offset) {\n var wrapper = lineView.text.firstChild, bad = false;\n if (!node || !contains(wrapper, node)) { return badPos(Pos(lineNo(lineView.line), 0), true) }\n if (node == wrapper) {\n bad = true;\n node = wrapper.childNodes[offset];\n offset = 0;\n if (!node) {\n var line = lineView.rest ? lst(lineView.rest) : lineView.line;\n return badPos(Pos(lineNo(line), line.text.length), bad)\n }\n }\n\n var textNode = node.nodeType == 3 ? node : null, topNode = node;\n if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) {\n textNode = node.firstChild;\n if (offset) { offset = textNode.nodeValue.length; }\n }\n while (topNode.parentNode != wrapper) { topNode = topNode.parentNode; }\n var measure = lineView.measure, maps = measure.maps;\n\n function find(textNode, topNode, offset) {\n for (var i = -1; i < (maps ? maps.length : 0); i++) {\n var map = i < 0 ? measure.map : maps[i];\n for (var j = 0; j < map.length; j += 3) {\n var curNode = map[j + 2];\n if (curNode == textNode || curNode == topNode) {\n var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]);\n var ch = map[j] + offset;\n if (offset < 0 || curNode != textNode) { ch = map[j + (offset ? 1 : 0)]; }\n return Pos(line, ch)\n }\n }\n }\n }\n var found = find(textNode, topNode, offset);\n if (found) { return badPos(found, bad) }\n\n // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems\n for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) {\n found = find(after, after.firstChild, 0);\n if (found)\n { return badPos(Pos(found.line, found.ch - dist), bad) }\n else\n { dist += after.textContent.length; }\n }\n for (var before = topNode.previousSibling, dist$1 = offset; before; before = before.previousSibling) {\n found = find(before, before.firstChild, -1);\n if (found)\n { return badPos(Pos(found.line, found.ch + dist$1), bad) }\n else\n { dist$1 += before.textContent.length; }\n }\n }\n\n // TEXTAREA INPUT STYLE\n\n var TextareaInput = function(cm) {\n this.cm = cm;\n // See input.poll and input.reset\n this.prevInput = \"\";\n\n // Flag that indicates whether we expect input to appear real soon\n // now (after some event like 'keypress' or 'input') and are\n // polling intensively.\n this.pollingFast = false;\n // Self-resetting timeout for the poller\n this.polling = new Delayed();\n // Used to work around IE issue with selection being forgotten when focus moves away from textarea\n this.hasSelection = false;\n this.composing = null;\n };\n\n TextareaInput.prototype.init = function (display) {\n var this$1 = this;\n\n var input = this, cm = this.cm;\n this.createField(display);\n var te = this.textarea;\n\n display.wrapper.insertBefore(this.wrapper, display.wrapper.firstChild);\n\n // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)\n if (ios) { te.style.width = \"0px\"; }\n\n on(te, \"input\", function () {\n if (ie && ie_version >= 9 && this$1.hasSelection) { this$1.hasSelection = null; }\n input.poll();\n });\n\n on(te, \"paste\", function (e) {\n if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n\n cm.state.pasteIncoming = +new Date;\n input.fastPoll();\n });\n\n function prepareCopyCut(e) {\n if (signalDOMEvent(cm, e)) { return }\n if (cm.somethingSelected()) {\n setLastCopied({lineWise: false, text: cm.getSelections()});\n } else if (!cm.options.lineWiseCopyCut) {\n return\n } else {\n var ranges = copyableRanges(cm);\n setLastCopied({lineWise: true, text: ranges.text});\n if (e.type == \"cut\") {\n cm.setSelections(ranges.ranges, null, sel_dontScroll);\n } else {\n input.prevInput = \"\";\n te.value = ranges.text.join(\"\\n\");\n selectInput(te);\n }\n }\n if (e.type == \"cut\") { cm.state.cutIncoming = +new Date; }\n }\n on(te, \"cut\", prepareCopyCut);\n on(te, \"copy\", prepareCopyCut);\n\n on(display.scroller, \"paste\", function (e) {\n if (eventInWidget(display, e) || signalDOMEvent(cm, e)) { return }\n if (!te.dispatchEvent) {\n cm.state.pasteIncoming = +new Date;\n input.focus();\n return\n }\n\n // Pass the `paste` event to the textarea so it's handled by its event listener.\n var event = new Event(\"paste\");\n event.clipboardData = e.clipboardData;\n te.dispatchEvent(event);\n });\n\n // Prevent normal selection in the editor (we handle our own)\n on(display.lineSpace, \"selectstart\", function (e) {\n if (!eventInWidget(display, e)) { e_preventDefault(e); }\n });\n\n on(te, \"compositionstart\", function () {\n var start = cm.getCursor(\"from\");\n if (input.composing) { input.composing.range.clear(); }\n input.composing = {\n start: start,\n range: cm.markText(start, cm.getCursor(\"to\"), {className: \"CodeMirror-composing\"})\n };\n });\n on(te, \"compositionend\", function () {\n if (input.composing) {\n input.poll();\n input.composing.range.clear();\n input.composing = null;\n }\n });\n };\n\n TextareaInput.prototype.createField = function (_display) {\n // Wraps and hides input textarea\n this.wrapper = hiddenTextarea();\n // The semihidden textarea that is focused when the editor is\n // focused, and receives input.\n this.textarea = this.wrapper.firstChild;\n };\n\n TextareaInput.prototype.screenReaderLabelChanged = function (label) {\n // Label for screenreaders, accessibility\n if(label) {\n this.textarea.setAttribute('aria-label', label);\n } else {\n this.textarea.removeAttribute('aria-label');\n }\n };\n\n TextareaInput.prototype.prepareSelection = function () {\n // Redraw the selection and/or cursor\n var cm = this.cm, display = cm.display, doc = cm.doc;\n var result = prepareSelection(cm);\n\n // Move the hidden textarea near the cursor to prevent scrolling artifacts\n if (cm.options.moveInputWithCursor) {\n var headPos = cursorCoords(cm, doc.sel.primary().head, \"div\");\n var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect();\n result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10,\n headPos.top + lineOff.top - wrapOff.top));\n result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10,\n headPos.left + lineOff.left - wrapOff.left));\n }\n\n return result\n };\n\n TextareaInput.prototype.showSelection = function (drawn) {\n var cm = this.cm, display = cm.display;\n removeChildrenAndAdd(display.cursorDiv, drawn.cursors);\n removeChildrenAndAdd(display.selectionDiv, drawn.selection);\n if (drawn.teTop != null) {\n this.wrapper.style.top = drawn.teTop + \"px\";\n this.wrapper.style.left = drawn.teLeft + \"px\";\n }\n };\n\n // Reset the input to correspond to the selection (or to be empty,\n // when not typing and nothing is selected)\n TextareaInput.prototype.reset = function (typing) {\n if (this.contextMenuPending || this.composing) { return }\n var cm = this.cm;\n if (cm.somethingSelected()) {\n this.prevInput = \"\";\n var content = cm.getSelection();\n this.textarea.value = content;\n if (cm.state.focused) { selectInput(this.textarea); }\n if (ie && ie_version >= 9) { this.hasSelection = content; }\n } else if (!typing) {\n this.prevInput = this.textarea.value = \"\";\n if (ie && ie_version >= 9) { this.hasSelection = null; }\n }\n };\n\n TextareaInput.prototype.getField = function () { return this.textarea };\n\n TextareaInput.prototype.supportsTouch = function () { return false };\n\n TextareaInput.prototype.focus = function () {\n if (this.cm.options.readOnly != \"nocursor\" && (!mobile || activeElt() != this.textarea)) {\n try { this.textarea.focus(); }\n catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM\n }\n };\n\n TextareaInput.prototype.blur = function () { this.textarea.blur(); };\n\n TextareaInput.prototype.resetPosition = function () {\n this.wrapper.style.top = this.wrapper.style.left = 0;\n };\n\n TextareaInput.prototype.receivedFocus = function () { this.slowPoll(); };\n\n // Poll for input changes, using the normal rate of polling. This\n // runs as long as the editor is focused.\n TextareaInput.prototype.slowPoll = function () {\n var this$1 = this;\n\n if (this.pollingFast) { return }\n this.polling.set(this.cm.options.pollInterval, function () {\n this$1.poll();\n if (this$1.cm.state.focused) { this$1.slowPoll(); }\n });\n };\n\n // When an event has just come in that is likely to add or change\n // something in the input textarea, we poll faster, to ensure that\n // the change appears on the screen quickly.\n TextareaInput.prototype.fastPoll = function () {\n var missed = false, input = this;\n input.pollingFast = true;\n function p() {\n var changed = input.poll();\n if (!changed && !missed) {missed = true; input.polling.set(60, p);}\n else {input.pollingFast = false; input.slowPoll();}\n }\n input.polling.set(20, p);\n };\n\n // Read input from the textarea, and update the document to match.\n // When something is selected, it is present in the textarea, and\n // selected (unless it is huge, in which case a placeholder is\n // used). When nothing is selected, the cursor sits after previously\n // seen text (can be empty), which is stored in prevInput (we must\n // not reset the textarea when typing, because that breaks IME).\n TextareaInput.prototype.poll = function () {\n var this$1 = this;\n\n var cm = this.cm, input = this.textarea, prevInput = this.prevInput;\n // Since this is called a *lot*, try to bail out as cheaply as\n // possible when it is clear that nothing happened. hasSelection\n // will be the case when there is a lot of text in the textarea,\n // in which case reading its value would be expensive.\n if (this.contextMenuPending || !cm.state.focused ||\n (hasSelection(input) && !prevInput && !this.composing) ||\n cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq)\n { return false }\n\n var text = input.value;\n // If nothing changed, bail.\n if (text == prevInput && !cm.somethingSelected()) { return false }\n // Work around nonsensical selection resetting in IE9/10, and\n // inexplicable appearance of private area unicode characters on\n // some key combos in Mac (#2689).\n if (ie && ie_version >= 9 && this.hasSelection === text ||\n mac && /[\\uf700-\\uf7ff]/.test(text)) {\n cm.display.input.reset();\n return false\n }\n\n if (cm.doc.sel == cm.display.selForContextMenu) {\n var first = text.charCodeAt(0);\n if (first == 0x200b && !prevInput) { prevInput = \"\\u200b\"; }\n if (first == 0x21da) { this.reset(); return this.cm.execCommand(\"undo\") }\n }\n // Find the part of the input that is actually new\n var same = 0, l = Math.min(prevInput.length, text.length);\n while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) { ++same; }\n\n runInOp(cm, function () {\n applyTextInput(cm, text.slice(same), prevInput.length - same,\n null, this$1.composing ? \"*compose\" : null);\n\n // Don't leave long text in the textarea, since it makes further polling slow\n if (text.length > 1000 || text.indexOf(\"\\n\") > -1) { input.value = this$1.prevInput = \"\"; }\n else { this$1.prevInput = text; }\n\n if (this$1.composing) {\n this$1.composing.range.clear();\n this$1.composing.range = cm.markText(this$1.composing.start, cm.getCursor(\"to\"),\n {className: \"CodeMirror-composing\"});\n }\n });\n return true\n };\n\n TextareaInput.prototype.ensurePolled = function () {\n if (this.pollingFast && this.poll()) { this.pollingFast = false; }\n };\n\n TextareaInput.prototype.onKeyPress = function () {\n if (ie && ie_version >= 9) { this.hasSelection = null; }\n this.fastPoll();\n };\n\n TextareaInput.prototype.onContextMenu = function (e) {\n var input = this, cm = input.cm, display = cm.display, te = input.textarea;\n if (input.contextMenuPending) { input.contextMenuPending(); }\n var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;\n if (!pos || presto) { return } // Opera is difficult.\n\n // Reset the current text selection only if the click is done outside of the selection\n // and 'resetSelectionOnContextMenu' option is true.\n var reset = cm.options.resetSelectionOnContextMenu;\n if (reset && cm.doc.sel.contains(pos) == -1)\n { operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); }\n\n var oldCSS = te.style.cssText, oldWrapperCSS = input.wrapper.style.cssText;\n var wrapperBox = input.wrapper.offsetParent.getBoundingClientRect();\n input.wrapper.style.cssText = \"position: static\";\n te.style.cssText = \"position: absolute; width: 30px; height: 30px;\\n top: \" + (e.clientY - wrapperBox.top - 5) + \"px; left: \" + (e.clientX - wrapperBox.left - 5) + \"px;\\n z-index: 1000; background: \" + (ie ? \"rgba(255, 255, 255, .05)\" : \"transparent\") + \";\\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);\";\n var oldScrollY;\n if (webkit) { oldScrollY = window.scrollY; } // Work around Chrome issue (#2712)\n display.input.focus();\n if (webkit) { window.scrollTo(null, oldScrollY); }\n display.input.reset();\n // Adds \"Select all\" to context menu in FF\n if (!cm.somethingSelected()) { te.value = input.prevInput = \" \"; }\n input.contextMenuPending = rehide;\n display.selForContextMenu = cm.doc.sel;\n clearTimeout(display.detectingSelectAll);\n\n // Select-all will be greyed out if there's nothing to select, so\n // this adds a zero-width space so that we can later check whether\n // it got selected.\n function prepareSelectAllHack() {\n if (te.selectionStart != null) {\n var selected = cm.somethingSelected();\n var extval = \"\\u200b\" + (selected ? te.value : \"\");\n te.value = \"\\u21da\"; // Used to catch context-menu undo\n te.value = extval;\n input.prevInput = selected ? \"\" : \"\\u200b\";\n te.selectionStart = 1; te.selectionEnd = extval.length;\n // Re-set this, in case some other handler touched the\n // selection in the meantime.\n display.selForContextMenu = cm.doc.sel;\n }\n }\n function rehide() {\n if (input.contextMenuPending != rehide) { return }\n input.contextMenuPending = false;\n input.wrapper.style.cssText = oldWrapperCSS;\n te.style.cssText = oldCSS;\n if (ie && ie_version < 9) { display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos); }\n\n // Try to detect the user choosing select-all\n if (te.selectionStart != null) {\n if (!ie || (ie && ie_version < 9)) { prepareSelectAllHack(); }\n var i = 0, poll = function () {\n if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 &&\n te.selectionEnd > 0 && input.prevInput == \"\\u200b\") {\n operation(cm, selectAll)(cm);\n } else if (i++ < 10) {\n display.detectingSelectAll = setTimeout(poll, 500);\n } else {\n display.selForContextMenu = null;\n display.input.reset();\n }\n };\n display.detectingSelectAll = setTimeout(poll, 200);\n }\n }\n\n if (ie && ie_version >= 9) { prepareSelectAllHack(); }\n if (captureRightClick) {\n e_stop(e);\n var mouseup = function () {\n off(window, \"mouseup\", mouseup);\n setTimeout(rehide, 20);\n };\n on(window, \"mouseup\", mouseup);\n } else {\n setTimeout(rehide, 50);\n }\n };\n\n TextareaInput.prototype.readOnlyChanged = function (val) {\n if (!val) { this.reset(); }\n this.textarea.disabled = val == \"nocursor\";\n this.textarea.readOnly = !!val;\n };\n\n TextareaInput.prototype.setUneditable = function () {};\n\n TextareaInput.prototype.needsContentAttribute = false;\n\n function fromTextArea(textarea, options) {\n options = options ? copyObj(options) : {};\n options.value = textarea.value;\n if (!options.tabindex && textarea.tabIndex)\n { options.tabindex = textarea.tabIndex; }\n if (!options.placeholder && textarea.placeholder)\n { options.placeholder = textarea.placeholder; }\n // Set autofocus to true if this textarea is focused, or if it has\n // autofocus and no other element is focused.\n if (options.autofocus == null) {\n var hasFocus = activeElt();\n options.autofocus = hasFocus == textarea ||\n textarea.getAttribute(\"autofocus\") != null && hasFocus == document.body;\n }\n\n function save() {textarea.value = cm.getValue();}\n\n var realSubmit;\n if (textarea.form) {\n on(textarea.form, \"submit\", save);\n // Deplorable hack to make the submit method do the right thing.\n if (!options.leaveSubmitMethodAlone) {\n var form = textarea.form;\n realSubmit = form.submit;\n try {\n var wrappedSubmit = form.submit = function () {\n save();\n form.submit = realSubmit;\n form.submit();\n form.submit = wrappedSubmit;\n };\n } catch(e) {}\n }\n }\n\n options.finishInit = function (cm) {\n cm.save = save;\n cm.getTextArea = function () { return textarea; };\n cm.toTextArea = function () {\n cm.toTextArea = isNaN; // Prevent this from being ran twice\n save();\n textarea.parentNode.removeChild(cm.getWrapperElement());\n textarea.style.display = \"\";\n if (textarea.form) {\n off(textarea.form, \"submit\", save);\n if (!options.leaveSubmitMethodAlone && typeof textarea.form.submit == \"function\")\n { textarea.form.submit = realSubmit; }\n }\n };\n };\n\n textarea.style.display = \"none\";\n var cm = CodeMirror(function (node) { return textarea.parentNode.insertBefore(node, textarea.nextSibling); },\n options);\n return cm\n }\n\n function addLegacyProps(CodeMirror) {\n CodeMirror.off = off;\n CodeMirror.on = on;\n CodeMirror.wheelEventPixels = wheelEventPixels;\n CodeMirror.Doc = Doc;\n CodeMirror.splitLines = splitLinesAuto;\n CodeMirror.countColumn = countColumn;\n CodeMirror.findColumn = findColumn;\n CodeMirror.isWordChar = isWordCharBasic;\n CodeMirror.Pass = Pass;\n CodeMirror.signal = signal;\n CodeMirror.Line = Line;\n CodeMirror.changeEnd = changeEnd;\n CodeMirror.scrollbarModel = scrollbarModel;\n CodeMirror.Pos = Pos;\n CodeMirror.cmpPos = cmp;\n CodeMirror.modes = modes;\n CodeMirror.mimeModes = mimeModes;\n CodeMirror.resolveMode = resolveMode;\n CodeMirror.getMode = getMode;\n CodeMirror.modeExtensions = modeExtensions;\n CodeMirror.extendMode = extendMode;\n CodeMirror.copyState = copyState;\n CodeMirror.startState = startState;\n CodeMirror.innerMode = innerMode;\n CodeMirror.commands = commands;\n CodeMirror.keyMap = keyMap;\n CodeMirror.keyName = keyName;\n CodeMirror.isModifierKey = isModifierKey;\n CodeMirror.lookupKey = lookupKey;\n CodeMirror.normalizeKeyMap = normalizeKeyMap;\n CodeMirror.StringStream = StringStream;\n CodeMirror.SharedTextMarker = SharedTextMarker;\n CodeMirror.TextMarker = TextMarker;\n CodeMirror.LineWidget = LineWidget;\n CodeMirror.e_preventDefault = e_preventDefault;\n CodeMirror.e_stopPropagation = e_stopPropagation;\n CodeMirror.e_stop = e_stop;\n CodeMirror.addClass = addClass;\n CodeMirror.contains = contains;\n CodeMirror.rmClass = rmClass;\n CodeMirror.keyNames = keyNames;\n }\n\n // EDITOR CONSTRUCTOR\n\n defineOptions(CodeMirror);\n\n addEditorMethods(CodeMirror);\n\n // Set up methods on CodeMirror's prototype to redirect to the editor's document.\n var dontDelegate = \"iter insert remove copy getEditor constructor\".split(\" \");\n for (var prop in Doc.prototype) { if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)\n { CodeMirror.prototype[prop] = (function(method) {\n return function() {return method.apply(this.doc, arguments)}\n })(Doc.prototype[prop]); } }\n\n eventMixin(Doc);\n CodeMirror.inputStyles = {\"textarea\": TextareaInput, \"contenteditable\": ContentEditableInput};\n\n // Extra arguments are stored as the mode's dependencies, which is\n // used by (legacy) mechanisms like loadmode.js to automatically\n // load a mode. (Preferred mechanism is the require/define calls.)\n CodeMirror.defineMode = function(name/*, mode, …*/) {\n if (!CodeMirror.defaults.mode && name != \"null\") { CodeMirror.defaults.mode = name; }\n defineMode.apply(this, arguments);\n };\n\n CodeMirror.defineMIME = defineMIME;\n\n // Minimal default mode.\n CodeMirror.defineMode(\"null\", function () { return ({token: function (stream) { return stream.skipToEnd(); }}); });\n CodeMirror.defineMIME(\"text/plain\", \"null\");\n\n // EXTENSIONS\n\n CodeMirror.defineExtension = function (name, func) {\n CodeMirror.prototype[name] = func;\n };\n CodeMirror.defineDocExtension = function (name, func) {\n Doc.prototype[name] = func;\n };\n\n CodeMirror.fromTextArea = fromTextArea;\n\n addLegacyProps(CodeMirror);\n\n CodeMirror.version = \"5.58.3\";\n\n return CodeMirror;\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","import React from 'react';\nimport ApolloClient from 'apollo-client';\nimport { invariant } from 'ts-invariant';\n\nimport { getApolloContext } from './ApolloContext';\n\nexport interface ApolloConsumerProps {\n children: (client: ApolloClient) => React.ReactChild | null;\n}\n\nexport const ApolloConsumer: React.FC = props => {\n const ApolloContext = getApolloContext();\n return (\n \n {(context: any) => {\n invariant(\n context && context.client,\n 'Could not find \"client\" in the context of ApolloConsumer. ' +\n 'Wrap the root component in an .'\n );\n return props.children(context.client);\n }}\n \n );\n};\n","import _isPlaceholder from './_isPlaceholder.js';\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","var __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})();\nimport React from 'react';\nimport { registerClass, classNames, defaultTheme, } from '@food/css-manager';\nexport var CollapsiblePhases;\n(function (CollapsiblePhases) {\n CollapsiblePhases[CollapsiblePhases[\"COLLAPSED\"] = 0] = \"COLLAPSED\";\n CollapsiblePhases[CollapsiblePhases[\"PRE_EXPANDING\"] = 1] = \"PRE_EXPANDING\";\n CollapsiblePhases[CollapsiblePhases[\"EXPANDING\"] = 2] = \"EXPANDING\";\n CollapsiblePhases[CollapsiblePhases[\"EXPANDED\"] = 3] = \"EXPANDED\";\n CollapsiblePhases[CollapsiblePhases[\"PRE_COLLAPSING\"] = 4] = \"PRE_COLLAPSING\";\n CollapsiblePhases[CollapsiblePhases[\"COLLAPSING\"] = 5] = \"COLLAPSING\";\n})(CollapsiblePhases || (CollapsiblePhases = {}));\n// -webkit-transition: min-height ${t.timings.base / 2000}s, opacity ${t.timings.base /\n// \t2000}s, max-height ${t.timings.base / 2000}s;\n// -moz-transition: min-height ${t.timings.base / 2000}s, opacity ${t.timings.base /\n// \t2000}s, max-height ${t.timings.base / 2000}s;\n// -ms-transition: min-height ${t.timings.base / 2000}s, opacity ${t.timings.base /\n// \t2000}s, max-height ${t.timings.base / 2000}s;\n// -o-transition: min-height ${t.timings.base / 2000}s, opacity ${t.timings.base /\n// \t2000}s, max-height ${t.timings.base / 2000}s;\nvar articleContainerStyle = registerClass(function (t) { return \"\\n\\ttransition: min-height \" + t.timings.base / 2000 + \"s, opacity \" + t.timings.base /\n 2000 + \"s, max-height \" + t.timings.base / 2000 + \"s;\\n\\toverflow: hidden;\\n\\tbox-sizing: content-box !important;\\n\\t\"; });\nvar fadedOut = registerClass(function () { return \"\\n\\topacity: 0;\\n\"; });\nfunction CollapsibleBlockFactory(parent, registerBlockRef, unregisterBlockRef) {\n return /** @class */ (function (_super) {\n __extends(CollapsibleBlock, _super);\n function CollapsibleBlock(props) {\n var _this = _super.call(this, props) || this;\n _this.articleContainer = React.createRef();\n return _this;\n }\n CollapsibleBlock.prototype.componentDidMount = function () {\n registerBlockRef(this.articleContainer);\n };\n CollapsibleBlock.prototype.componentWillUnmount = function () {\n unregisterBlockRef(this.articleContainer);\n };\n CollapsibleBlock.prototype.render = function () {\n var _a = this.props, children = _a.children, className = _a.className;\n var phase = parent.state.phase;\n return (React.createElement(\"div\", { ref: this.articleContainer, className: classNames(className, articleContainerStyle, (phase === CollapsiblePhases.PRE_EXPANDING ||\n phase === CollapsiblePhases.PRE_COLLAPSING) &&\n fadedOut) }, children));\n };\n return CollapsibleBlock;\n }(React.PureComponent));\n}\nfunction getContainerContentHeight(container) {\n // TODO - migliorare per i casi in cui ci sono più children o ci sono margin e simili\n var article = container.firstChild;\n return article ? article.scrollHeight : 0;\n}\nvar Collapsible = /** @class */ (function (_super) {\n __extends(Collapsible, _super);\n function Collapsible(props) {\n var _this = _super.call(this, props) || this;\n var startOpen = props.startOpen;\n _this.articleContainers = [];\n _this.state = {\n phase: startOpen\n ? CollapsiblePhases.EXPANDED\n : CollapsiblePhases.COLLAPSED,\n };\n _this.CollapsibleBlock = CollapsibleBlockFactory(_this, _this.registerBlockRef.bind(_this), _this.unregisterBlockRef.bind(_this));\n return _this;\n }\n Collapsible.prototype.registerBlockRef = function (refCont) {\n if (!this.articleContainers.includes(refCont)) {\n this.articleContainers.push(refCont);\n }\n };\n Collapsible.prototype.unregisterBlockRef = function (refCont) {\n var refIndex = this.articleContainers.indexOf(refCont);\n if (refIndex >= 0) {\n this.articleContainers.splice(refIndex);\n }\n };\n Collapsible.prototype.expand = function () {\n var _this = this;\n if (this.props.forceOpenState !== undefined) {\n return;\n }\n var phase = this.state.phase;\n this.articleContainers.forEach(function (refCont) {\n var container = refCont.current;\n if (!container) {\n return;\n }\n var actualHeight = getContainerContentHeight(container);\n if (phase !== CollapsiblePhases.COLLAPSED) {\n return;\n }\n container.style.removeProperty('min-height');\n container.style.maxHeight = actualHeight + 'px';\n });\n if (phase !== CollapsiblePhases.COLLAPSED) {\n return;\n }\n this.setState({ phase: CollapsiblePhases.PRE_EXPANDING }); // avvio il fade out\n // Annullo l'eventuale transizione in corso\n if (this.transitionTimeout) {\n clearTimeout(this.transitionTimeout);\n this.transitionTimeout = undefined;\n }\n this.transitionTimeout = setTimeout(function () { return _this.setState({ phase: CollapsiblePhases.EXPANDING }); }, defaultTheme.timings.base / 2);\n };\n Collapsible.prototype.collapse = function () {\n var _this = this;\n if (this.props.forceOpenState !== undefined) {\n return;\n }\n var phase = this.state.phase;\n this.articleContainers.forEach(function (refCont) {\n var container = refCont.current;\n if (!container) {\n return;\n }\n var actualHeight = container.scrollHeight;\n if (phase !== CollapsiblePhases.EXPANDED) {\n return;\n }\n container.style.removeProperty('max-height');\n container.style.minHeight = actualHeight + 'px';\n });\n if (phase !== CollapsiblePhases.EXPANDED) {\n return;\n }\n this.setState({ phase: CollapsiblePhases.PRE_COLLAPSING }); // avvio il fade out\n // Annullo l'eventuale transizione in corso\n if (this.transitionTimeout) {\n clearTimeout(this.transitionTimeout);\n this.transitionTimeout = undefined;\n }\n this.transitionTimeout = setTimeout(function () { return _this.setState({ phase: CollapsiblePhases.COLLAPSING }); }, defaultTheme.timings.base / 2);\n };\n Collapsible.prototype.componentDidUpdate = function (prevProps, prevState) {\n var _this = this;\n var phase = this.state.phase;\n // Forzatura stato dall'esterno aggiunta o tolta\n if (this.props.forceOpenState !== undefined || prevProps.forceOpenState) {\n var targetPhase = void 0;\n if (this.props.forceOpenState !== undefined) {\n targetPhase = this.props.forceOpenState\n ? CollapsiblePhases.EXPANDED\n : CollapsiblePhases.COLLAPSED;\n }\n else {\n targetPhase = this.props.startOpen\n ? CollapsiblePhases.EXPANDED\n : CollapsiblePhases.COLLAPSED;\n }\n if (phase !== targetPhase) {\n // Annullo l'eventuale transizione in corso\n if (this.transitionTimeout) {\n clearTimeout(this.transitionTimeout);\n this.transitionTimeout = undefined;\n }\n this.articleContainers.forEach(function (refCont) {\n var container = refCont.current;\n if (!container) {\n return;\n }\n container.style.removeProperty('min-height');\n container.style.removeProperty('max-height');\n });\n this.setState({ phase: targetPhase });\n }\n }\n // Fine delle fasi di transizione\n else if (phase === CollapsiblePhases.EXPANDING ||\n phase === CollapsiblePhases.COLLAPSING) {\n this.articleContainers.forEach(function (refCont) {\n var container = refCont.current;\n if (!container) {\n return;\n }\n var actualHeight = getContainerContentHeight(container);\n if (phase === CollapsiblePhases.EXPANDING) {\n container.style.removeProperty('min-height');\n container.style.maxHeight = actualHeight + 'px';\n }\n else if (phase === CollapsiblePhases.COLLAPSING) {\n container.style.removeProperty('max-height');\n container.style.minHeight = actualHeight + 'px';\n }\n });\n if (this.transitionTimeout) {\n clearTimeout(this.transitionTimeout);\n this.transitionTimeout = undefined;\n }\n if (phase === CollapsiblePhases.EXPANDING) {\n this.transitionTimeout = setTimeout(function () { return _this.setState({ phase: CollapsiblePhases.EXPANDED }); }, defaultTheme.timings.base / 2);\n }\n else if (phase === CollapsiblePhases.COLLAPSING) {\n this.transitionTimeout = setTimeout(function () { return _this.setState({ phase: CollapsiblePhases.COLLAPSED }); }, defaultTheme.timings.base / 2);\n }\n }\n if (phase === CollapsiblePhases.EXPANDED ||\n phase === CollapsiblePhases.COLLAPSED) {\n // Pulisco la situazione\n if (this.transitionTimeout) {\n clearTimeout(this.transitionTimeout);\n this.transitionTimeout = undefined;\n }\n this.articleContainers.forEach(function (refCont) {\n var container = refCont.current;\n if (!container) {\n return;\n }\n container.style.removeProperty('min-height');\n container.style.removeProperty('max-height');\n });\n }\n };\n Collapsible.prototype.render = function () {\n var children = this.props.children;\n var phase = this.state.phase;\n var open = phase === CollapsiblePhases.EXPANDING ||\n phase === CollapsiblePhases.PRE_COLLAPSING ||\n phase === CollapsiblePhases.EXPANDED;\n return children({\n phase: phase,\n open: open,\n expand: this.expand.bind(this),\n collapse: this.collapse.bind(this),\n CollapsibleBlockClass: this.CollapsibleBlock,\n });\n };\n return Collapsible;\n}(React.PureComponent));\nexport { Collapsible };\n//# sourceMappingURL=Collapsible.js.map","var __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 __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport React from 'react';\nimport { Portal } from 'react-portal';\nimport { registerClass, cns, getContext, subClass } from '@food/css-manager';\n// il contatore di modal aperte all'interno di una stessa applicazione\nvar counter = 0;\nvar topContainer = registerClass(function (t) { return \"\\n\\toverflow-y: auto;\\n\\tmax-height: 100vh;\\n\\tposition: fixed;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tright: 0;\\n\\tbottom: 0;\\n\\tz-index: \" + (t.zIndexes.P4_Modal - 1) + \";\\n\"; }, false);\nvar modalBackground = registerClass(function (t, sc) { return \"\\n\\tbackground-color: rgba(0, 0, 0, \" + t.dimmerOpacity + \");\\n\\tmin-height: 100vh;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tpadding: \" + t.ratios.xl * 2 * t.font.baseSize + \"px;\\n\\tjustify-content: center;\\n\\tanimation-name: fadeIn;\\n\\tanimation-duration: \" + t.timings.base / 1000 + \"s;\\n\\tanimation-fill-mode: both;\\n\\t@keyframes fadeIn {\\n\\t\\tfrom {\\n\\t\\t\\topacity: 0;\\n\\t\\t}\\n\\t\\tto {\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t}\\n\\t\\n\\t&.\" + sc('fullscreen') + \" {\\n\\t\\tpadding: 0;\\n\\t}\\n\"; });\nvar modalBody = registerClass(function (t, sc) { return \"\\n\\twidth: 90%; // Lascia un minimo di bordo\\n\\tmax-width: 900px; // FIXME\\n\\tbackground-color: \" + t.colors.white + \";\\n\\tbox-shadow: \" + t.boxShadow(2) + \";\\n\\toverflow: visible;\\n\\tz-index: \" + t.zIndexes.P4_Modal + \";\\n\\tposition: relative;\\n\\t\\n\\t&.\" + sc('fullscreen') + \" {\\n\\t\\twidth: 100%;\\n\\t\\tmax-width: unset;\\n\\t\\tmin-height: 100vh;\\n\\t}\\n\\n\\tp,\\n\\tul,\\n\\tol {\\n\\t\\tmargin-bottom: \" + (t.ratios.xl / 2) * t.font.baseSize + \"px;\\n\\t\\t&:last-child {\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t}\\n\\t}\\n\\n\\tul,\\n\\tol {\\n\\t\\tlist-style: disc;\\n\\t\\tpadding-left: 1em;\\n\\n\\t\\tli {\\n\\t\\t\\tmargin-bottom: \" + (t.ratios.s / 2) * t.font.baseSize + \"px;\\n\\n\\t\\t\\t&:last-child {\\n\\t\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\tol {\\n\\t\\tlist-style: decimal;\\n\\t}\\n\"; });\nvar Modal = /** @class */ (function (_super) {\n __extends(Modal, _super);\n function Modal(props) {\n var _this = _super.call(this, props) || this;\n _this.backgroundRef = React.createRef();\n return _this;\n }\n Modal.prototype.componentDidUpdate = function (oldProps) {\n // all'apertura di una modal devo sicuramente rimuovere lo scroll dal body\n var open = this.props.open;\n var oldOpen = oldProps.open;\n if (open && !oldOpen) {\n counter += 1;\n document.body.style.overflowY = 'hidden';\n }\n else if (!open && oldOpen) {\n counter -= 1;\n // il contatore a 0 significa che nessuna modal e' aperta nell'applicazione, quindi devo riattivare lo scroll del body\n document.body.style.overflowY = 'auto';\n }\n };\n Modal.prototype.render = function () {\n var _this = this;\n var _a = this.props, open = _a.open, children = _a.children, zIndex = _a.zIndex, _b = _a.className, className = _b === void 0 ? '' : _b, closeHandler = _a.closeHandler, fullscreen = _a.fullscreen;\n var cssContext = getContext();\n if (open !== true) {\n return null;\n }\n return (React.createElement(Portal, null,\n React.createElement(\"div\", { className: cns.apply(void 0, __spreadArrays([topContainer,\n className], cssContext.portalClasses, [fullscreen && subClass(topContainer, 'fullscreen')])), ref: this.backgroundRef, style: { zIndex: zIndex } },\n React.createElement(\"div\", { className: cns(modalBackground, fullscreen && subClass(modalBackground, 'fullscreen')), onClick: function (evt) {\n if (evt.target === _this.backgroundRef.current &&\n closeHandler) {\n closeHandler();\n }\n } },\n React.createElement(\"div\", { className: cns(modalBody, fullscreen && subClass(modalBody, 'fullscreen')) }, children)))));\n };\n return Modal;\n}(React.PureComponent));\nexport { Modal };\n//# sourceMappingURL=Modal.js.map","import React from 'react';\nimport { registerClass, cns, currySC } from '@food/css-manager';\nimport { Icon } from './icons';\nimport { IconPositions } from './Button';\nvar style = registerClass(function (theme, sc) {\n return \"\\n\\tdisplay: inline-flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\tline-height: 1;\\n\\tpadding: .5em \" + theme.ratios.s + \"em;\\n\\tborder: none;\\n\\tborder-radius: \" + theme.radius * theme.ratios.xl + \"em;\\n\\tfont-weight: normal;\\n\\ttext-align: center;\\n\\tvertical-align: middle;\\n\\ttouch-action: manipulation;\\n\\tuser-select: none;\\n\\t\\n\\t&.\" + sc('wicon') + \" {\\n\\t\\t&.\" + sc('iconPos', 'LEFT') + \" {\\n\\t\\t\\t> .\" + sc('icn') + \" {\\n\\t\\t\\t\\tmargin-right: .5em;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&.\" + sc('iconPos', 'RIGHT') + \" {\\n\\t\\t\\t> .\" + sc('icn') + \" {\\n\\t\\t\\t\\tmargin-left: .5em;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\t\\n\\t&.\" + sc('onlyIcon') + \" {\\n\\t\\tpadding: .5em;\\n\\t\\t&:not(.\" + sc('removable') + \") {\\n\\t\\t\\tborder-radius: 100%;\\n\\t\\t}\\n\\t}\\n\\t\\n\\t.\" + sc('removeIcon') + \" {\\n\\t\\tborder: none;\\n\\t\\tbackground: transparent;\\n\\t\\tcursor: pointer;\\n\\t\\tpadding: 0;\\n\\t\\tpadding-left: \" + theme.ratios.xs + \"em;\\n\\t}\\n\\t\\n\\t&.\" + sc('clickable') + \" {\\n\\t\\tcursor: pointer;\\n\\t}\\n\\t\\n\\t\" + Object.keys(theme.colors)\n .filter(function (k) { return !!theme.colors[k].disabled; })\n .map(function (d) {\n return \"&.\" + sc(\"type-\" + d) + \" {\\n\\t\\t\\tcolor: \" + theme.colors.inkWhite + \";\\n\\t\\t\\tbackground-color: \" + theme.colors[d].plain + \";\\n\\t\\t}\";\n })\n .join('') + \"\\n\";\n});\nvar sc = currySC(style);\nexport var Tag = function (_a) {\n var className = _a.className, label = _a.label, icon = _a.icon, _b = _a.iconPos, iconPos = _b === void 0 ? IconPositions.LEFT : _b, _c = _a.type, type = _c === void 0 ? 'action' : _c, onRemove = _a.onRemove, onClick = _a.onClick;\n var onlyIcon = icon && !label;\n var icn = React.createElement(Icon, { name: icon, className: sc('icn') });\n return (React.createElement(\"div\", { className: cns(className, style, sc(\"type-\" + type), onRemove && sc('removable'), icon && sc('wicon'), sc(\"iconPos-\" + iconPos), onlyIcon && sc('onlyIcon'), onClick && sc('clickable')), onClick: function (event) {\n if (onClick) {\n event.preventDefault();\n onClick();\n }\n } },\n onlyIcon && icn,\n !onlyIcon && icon && iconPos === IconPositions.LEFT && icn,\n label && React.createElement(\"span\", null, label),\n !onlyIcon && icon && iconPos === IconPositions.RIGHT && icn,\n onRemove && (React.createElement(Icon, { name: 'close', className: cns(sc('removeIcon'), sc('icn')), onClick: function (event) {\n event.preventDefault();\n onRemove();\n } }))));\n};\n//# sourceMappingURL=Tag.js.map","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nvar _a, _b;\nimport React, { useCallback, useEffect, useRef } from 'react';\nimport { Portal } from 'react-portal';\nimport { registerClass, cns, registerGlobal, getContext, } from '@food/css-manager';\nimport { canUseDOM } from 'exenv';\n// style\nvar style = registerClass(function (t) { return \"\\n\\tposition: absolute;\\n\\tmax-width: 100%;\\n\\tz-index: \" + t.zIndexes.P2_AreaAbove + \";\\n\\t// overflow: hidden; // Devo poterlo sfondare se necessario o anche gestire lo scroll\\n\"; }, false);\n// Necessario perché il posizionamento absolute è rispetto al body\nregisterGlobal(function () { return \"position: relative;\"; });\nexport var DropdownPositions;\n(function (DropdownPositions) {\n DropdownPositions[\"Above\"] = \"Above\";\n DropdownPositions[\"Below\"] = \"Below\";\n})(DropdownPositions || (DropdownPositions = {}));\nvar DropdownPositionChecks = (_a = {},\n _a[DropdownPositions.Above] = function (rect, internalHeight, windowH) {\n return rect.top > internalHeight ? rect.top : false;\n },\n _a[DropdownPositions.Below] = function (rect, internalHeight, windowH) {\n return windowH - rect.bottom > internalHeight\n ? windowH - rect.bottom\n : false;\n },\n _a);\nexport var DropdownAlignments;\n(function (DropdownAlignments) {\n DropdownAlignments[\"Start\"] = \"Start\";\n // Middle = 'Middle',\n DropdownAlignments[\"End\"] = \"End\";\n})(DropdownAlignments || (DropdownAlignments = {}));\nvar DropdownAlignmentChecks = (_b = {},\n _b[DropdownAlignments.Start] = function (rect, internalWidth, windowW) {\n return windowW - rect.left > internalWidth ? windowW - rect.left : false;\n },\n _b[DropdownAlignments.End] = function (rect, internalWidth, windowW) {\n return rect.right > internalWidth ? rect.right : false;\n },\n _b);\nvar handleNativeElemPosition = function (element, internalNode, preferredPosition, preferredAlignment) {\n // Misuro tutto\n var bodyClientRect = document.body.getBoundingClientRect();\n var bodyStyle = window.getComputedStyle(document.body);\n var bodyRect = {\n left: bodyClientRect.left - parseFloat(bodyStyle.marginLeft),\n top: bodyClientRect.top - parseFloat(bodyStyle.marginTop),\n right: bodyClientRect.right + parseFloat(bodyStyle.marginRight),\n bottom: bodyClientRect.bottom + parseFloat(bodyStyle.marginBottom)\n };\n var rect = element.getBoundingClientRect();\n var windowH = window.innerHeight;\n var windowW = window.innerWidth;\n // Nascondo in modo da non avere sfarfallii, ma da poterlo comunque misurare\n internalNode.style.visibility = 'hidden';\n // Reset internalNode style\n internalNode.style.maxHeight = '';\n internalNode.style.top = '';\n internalNode.style.right = '';\n internalNode.style.bottom = '';\n internalNode.style.left = '';\n internalNode.style.display = 'block'; // Così si misura correttamente\n internalNode.style.minWidth = rect.right - rect.left + \"px\"; // Almeno largo come il componente da cui scende\n // Decido dove posizionarlo con che dimensioni massime\n var internalHeight = internalNode.clientHeight;\n var position = __spreadArrays([\n preferredPosition\n ], Object.keys(DropdownPositions).filter(function (p) { return p !== preferredPosition; })).find(function (p) { return DropdownPositionChecks[p](rect, internalHeight, windowH); });\n if (position) {\n internalNode.style.maxHeight = DropdownPositionChecks[position](rect, internalHeight, windowH) + \"px\";\n }\n else {\n // Devo stringerlo e lo metto dove c'è più spazio\n if (windowH - rect.bottom >= rect.top) {\n position = DropdownPositions.Below;\n internalHeight = windowH - rect.bottom;\n }\n else {\n position = DropdownPositions.Above;\n internalHeight = rect.top;\n }\n internalNode.style.maxHeight = internalHeight + \"px\";\n }\n // Decido dove allinearlo con che dimensioni massime\n var internalWidth = internalNode.clientWidth;\n var alignment = __spreadArrays([\n preferredAlignment\n ], Object.keys(DropdownAlignments).filter(function (a) { return a !== preferredAlignment; })).find(function (a) { return DropdownAlignmentChecks[a](rect, internalWidth, windowW); });\n if (alignment) {\n internalNode.style.maxWidth = DropdownAlignmentChecks[alignment](rect, internalWidth, windowW) + \"px\";\n }\n else {\n // Devo stringerlo e lo metto dove c'è più spazio\n if (windowW - rect.left >= rect.right) {\n alignment = DropdownAlignments.Start;\n internalWidth = windowW - rect.left;\n }\n else {\n alignment = DropdownAlignments.End;\n internalWidth = rect.right;\n }\n internalNode.style.maxWidth = internalWidth + \"px\";\n }\n // Lo posiziono\n switch (position) {\n case DropdownPositions.Above:\n internalNode.style.bottom = bodyRect.bottom -\n Math.min(rect.top, windowH) + \"px\";\n break;\n case DropdownPositions.Below:\n internalNode.style.top = Math.max(rect.bottom, 0) -\n bodyRect.top + \"px\";\n break;\n }\n switch (alignment) {\n case DropdownAlignments.Start:\n internalNode.style.left = Math.max(rect.left, 0) -\n bodyRect.left + \"px\";\n break;\n case DropdownAlignments.End:\n internalNode.style.right = Math.max(windowW - rect.right, 0) -\n (windowW - bodyRect.right) + \"px\";\n break;\n }\n // Mostra ora in modo da non avere sfarfallii\n internalNode.style.visibility = 'visible';\n};\nexport var Dropdown = function (_a) {\n var element = _a.element, open = _a.open, _b = _a.preferredPosition, preferredPosition = _b === void 0 ? DropdownPositions.Below : _b, _c = _a.preferredAlignment, preferredAlignment = _c === void 0 ? DropdownAlignments.Start : _c, className = _a.className, onClickOutside = _a.onClickOutside, children = _a.children;\n var internalRef = useRef();\n var handlePosition = useCallback(function () {\n var internalNode = internalRef.current;\n // nessuna gestione nel rendering server side o quando il componente e' smontato\n if (!canUseDOM || !internalNode) {\n return;\n }\n handleNativeElemPosition(element.current, internalNode, preferredPosition, preferredAlignment);\n }, [open, element]);\n useEffect(function () {\n if (open) {\n handlePosition();\n var outsideHandler_1 = function (e) {\n if (internalRef.current &&\n // @ts-ignore\n !internalRef.current.contains(e.target) &&\n onClickOutside !== undefined) {\n if (element.current && element.current.contains(e.target)) {\n e.stopPropagation();\n }\n onClickOutside(e);\n }\n };\n window.addEventListener('scroll', handlePosition);\n document.addEventListener('click', outsideHandler_1, true);\n return function () {\n document.removeEventListener('click', outsideHandler_1, true);\n window.removeEventListener('scroll', handlePosition);\n };\n }\n return function () { };\n }, [open]);\n var cssContext = getContext();\n return (React.createElement(Portal, null,\n React.createElement(\"div\", { className: cns.apply(void 0, __spreadArrays([className, style], (cssContext.portalClasses || []))), ref: internalRef, style: {\n visibility: 'hidden',\n display: open ? 'block' : 'none',\n } }, children)));\n};\n//# sourceMappingURL=Dropdown.js.map","import React from 'react';\nimport { registerClass, currySC, cns } from '@food/css-manager';\nimport { Icon, } from './icons';\nimport { Collapsible } from './Collapsible';\nvar style = registerClass(function (theme, sc) { return \"\\n\\tbackground-color: \" + theme.colors.white + \";\\n\\tposition: relative;\\n\\n\\t> header,\\n\\t> .\" + sc('contentContainer') + \" > .\" + sc('content') + \",\\n\\t> footer {\\n\\t\\tpadding: \" + (theme.ratios.xl / 2) * theme.font.baseSize + \"px \" + theme.ratios.xl *\n theme.font.baseSize + \"px;\\n\\t}\\n\\t\\n\\t&.\" + sc('fullwidth') + \" > .\" + sc('contentContainer') + \" > .\" + sc('content') + \"{\\n\\t\\tpadding-left: 0;\\n\\t\\tpadding-right: 0;\\n\\t}\\n\\t\\n\\t&.\" + sc('noFooter') + \".\" + sc('collapsed') + \" {\\n\\t\\tpadding-bottom: 0;\\n\\t}\\n\\n\\t> header {\\n\\t\\tposition: relative;\\n\\t\\ttext-transform: uppercase;\\n\\t\\tfont-size: \" + theme.ratios.l * theme.font.baseSize + \"px;\\n\\t\\tfont-weight: \" + theme.font.weights.bold + \";\\n\\t\\tline-height: 1;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: space-between;\\n\\n\\t\\t> .\" + sc('actionContainer') + \" {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t}\\n\\n\\t\\t> .\" + sc('toggler') + \" {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tright: \" + theme.ratios.xl * theme.font.baseSize + \"px;\\n\\t\\t\\twidth: \" + theme.font.baseSize + \"px;\\n\\t\\t\\ttext-align: center;\\n\\t\\t}\\n\\t}\\n\\t&.\" + sc('collapsible') + \" > header {\\n\\t\\t// Lascio pi\\u00F9 stazio perch\\u00E9 c'\\u00E8 il toggler\\n\\t\\tpadding-right: \" + theme.ratios.xl * 2 * theme.font.baseSize + \"px;\\n\\t}\\n\\t\\n\\n\\t&.\" + sc('blockedHeight') + \" {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\theight: 100%;\\n\\n\\t\\t> header,\\n\\t\\t> footer {\\n\\t\\t\\tflex: 0 0 auto;\\n\\t\\t}\\n\\t\\t> .\" + sc('contentContainer') + \" {\\n\\t\\t\\tflex: 1 1 0;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\tposition: relative;\\n\\t\\t\\n\\t\\t\\t&:after {\\n\\t\\t\\t\\t/* Rende l'overflow: hidden sfumato */\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t\\tfont-size: 0;\\n\\t\\t\\t\\tcontent: ' ';\\n\\t\\t\\t\\tbottom: 0;\\n\\t\\t\\t\\tleft: 0;\\n\\t\\t\\t\\tright: 0;\\n\\t\\t\\t\\theight: \" + (theme.ratios.l / 2) * theme.font.baseSize + \"px;\\n\\t\\t\\t\\tbackground: linear-gradient(0deg,rgba(255,255,255,1),rgba(255,255,255,0));\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&.\" + sc('innerBox') + \" {\\n\\t\\tborder: 1px solid \" + theme.colors.grey.plain + \";\\n\\t\\tborder-radius: \" + theme.radius * theme.font.baseSize + \"px \" + theme.radius *\n theme.font.baseSize + \"px;\\n\\n\\t\\t> header {\\n\\t\\t\\tborder-bottom: 1px solid \" + theme.colors.grey.plain + \";\\n\\t\\t}\\n\\t}\\n\\n\\t&.\" + sc('outerBox') + \" {\\n\\t\\tbox-shadow: \" + theme.boxShadow(1) + \";\\n\\t\\t> header {\\n\\t\\t\\tbackground: \" + theme.colors.action.light + \";\\n\\t\\t\\tcolor: \" + theme.colors.grey.dark + \";\\n\\t\\t}\\n\\t\\t> .\" + sc('contentContainer') + \" > .\" + sc('sideheadContainer') + \" {\\n\\t\\t\\tbackground: \" + theme.colors.action.light + \";\\n\\t\\t}\\n\\t}\\n\"; });\nvar sc = currySC(style);\nexport var Box = function (_a) {\n var className = _a.className, title = _a.title, Action = _a.action, Footer = _a.footer, children = _a.children, blockedHeight = _a.blockedHeight, innerBox = _a.innerBox, collapsible = _a.collapsible, _b = _a.startOpen, startOpen = _b === void 0 ? true : _b, _c = _a.fullWidth, fullWidth = _c === void 0 ? false : _c;\n return (React.createElement(Collapsible, { startOpen: startOpen, forceOpenState: collapsible ? undefined : startOpen }, function (_a) {\n var \n // phase,\n open = _a.open, expand = _a.expand, collapse = _a.collapse, CollapsibleBlockClass = _a.CollapsibleBlockClass;\n return (React.createElement(\"div\", { className: cns(style, className, sc(innerBox ? 'innerBox' : 'outerBox'), blockedHeight && sc('blockedHeight'), collapsible && sc('collapsible'), collapsible && !open && sc('collapsed'), !Footer && sc('noFooter'), fullWidth && sc('fullwidth')) },\n title && (React.createElement(\"header\", null,\n collapsible && (React.createElement(Icon, { name: open ? 'remove' : 'add', className: sc('toggler'), onClick: function () {\n if (open) {\n collapse();\n }\n else {\n expand();\n }\n } })),\n React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: title } }),\n Action && (React.createElement(\"div\", { className: sc('actionContainer') },\n React.createElement(Action, null))))),\n React.createElement(CollapsibleBlockClass, { className: sc('contentContainer') }, (!collapsible || open) && (React.createElement(\"div\", { className: sc('content') }, children))),\n Footer && React.createElement(Footer, null)));\n }));\n};\n//# sourceMappingURL=Box.js.map","import React from 'react';\nimport { registerClass, classNames } from '@food/css-manager';\n// style\nvar style = registerClass(function (theme) { return \"\\n padding: \" + theme.ratios.l / 4 + \"em \" + theme.ratios.l + \"em;\\n background-color: \" + theme.colors.white + \";\\n box-shadow: \" + theme.boxShadow(1) + \";\\n font-size: 25px;\\n color: \" + theme.colors.grey + \";\\n margin-bottom: \" + theme.ratios.l + \"em;\\n \\n display: flex;\\n flex-wrap: nowrap;\\n\\n > span {\\n &:first-child {\\n flex-shrink: 0;\\n }\\n > * {\\n display: inline-block;\\n vertical-align: middle;\\n }\\n }\\n \\n\\toverflow: hidden;\\n\\ttext-overflow: ellipsis;\\n\\twhite-space: nowrap;\\n\\theight: 44px;\\n\"; });\nexport var Breadcrumbs = function (_a) {\n var className = _a.className, branches = _a.branches;\n return (React.createElement(\"nav\", { className: classNames(className, style) }, branches.map(function (node, i) { return (React.createElement(\"span\", { key: i },\n React.createElement(\"a\", null, node.label),\n i !== branches.length - 1 && React.createElement(\"em\", null, \">\"))); })));\n};\n//# sourceMappingURL=Breadcrumbs.js.map","var __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})();\nimport React from 'react';\nimport { registerClass, classNames, subClass, defaultTheme, } from '@food/css-manager';\nimport { Icon, } from './icons';\nexport var Layouts;\n(function (Layouts) {\n Layouts[\"SINGLE_ELEMENT\"] = \"SINGLE_ELEMENT\";\n Layouts[\"SINGLE_ROW\"] = \"SINGLE_ROW\";\n Layouts[\"SHOW_ALL\"] = \"SHOW_ALL\";\n})(Layouts || (Layouts = {}));\n// Se trascino meno di così non lo considero scroll (su Layouts.SINGLE_ELEMENT)\nvar MIN_SCROLL = 10; // px\n// style\nvar style = registerClass(function (t, sc) { return \"\\n\\twidth: 100%;\\n\\toverflow: hidden;\\n\\tposition: relative;\\n\\tuser-select: none;\\n\\n\\t> .\" + sc('scroller') + \" {\\n\\t\\toverflow: hidden;\\n\\t\\tdisplay: inline-block;\\n\\t\\tmax-width: 100%;\\n\\n\\t\\t&.\" + sc('dragging') + \" {\\n\\t\\t\\tcursor: move;\\n\\t\\t}\\n\\t}\\n\\t> .\" + sc('arrowLinner') + \",\\n\\t> .\" + sc('arrowRinner') + \" {\\n\\t\\theight: 100%;\\n\\t\\twidth: \" + t.ratios.xl * 2 * t.font.baseSize + \"px;\\n\\n\\t\\t> span {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\theight: 100%;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tjustify-items: center;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\tbackground-clip: padding-box; // CHROME FIX?\\n\\n\\t\\t\\t> img {\\n\\t\\t\\t\\twidth: \" + t.ratios.xl * 2 * t.font.baseSize + \"px;\\n\\t\\t\\t\\tmargin: \" + t.ratios.xs * t.font.baseSize + \"px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t.\" + sc('arrow') + \" {\\n\\t\\t\\tfont-size: \" + t.ratios.xl * 2 * t.font.baseSize + \"px;\\n\\t\\t}\\n\\t}\\n\\t> .\" + sc('arrowLinner') + \" {\\n\\t\\t> span {\\n\\t\\t\\tbackground-image: linear-gradient(\\n\\t\\t\\t\\tto right,\\n\\t\\t\\t\\t#fff,\\n\\t\\t\\t\\trgba(255, 255, 255, 0)\\n\\t\\t\\t);\\n\\t\\t}\\n\\t}\\n\\t> .\" + sc('arrowRinner') + \" {\\n\\t\\t> span {\\n\\t\\t\\tbackground-image: linear-gradient(\\n\\t\\t\\t\\tto left,\\n\\t\\t\\t\\t#fff,\\n\\t\\t\\t\\trgba(255, 255, 255, 0)\\n\\t\\t\\t);\\n\\t\\t}\\n\\t}\\n\\n\\t.\" + sc('list') + \" {\\n\\t\\tdisplay: inline-flex;\\n\\t\\tflex-direction: row;\\n\\t\\tflex-wrap: nowrap;\\n\\t}\\n\\t.\" + sc('slide') + \" {\\n\\t\\tflex-shrink: 0;\\n\\t\\tflex-grow: 0;\\n\\t\\tpadding-bottom: 0;\\n\\t\\tdisplay: flex;\\n\\t}\\n\\t&.\" + sc('layout', 'SINGLE_ELEMENT') + \" {\\n\\t\\tdisplay: flex;\\n\\t\\t> .\" + sc('scroller') + \" {\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t}\\n\\t\\t> .\" + sc('arrowLinner') + \",\\n\\t\\t> .\" + sc('arrowRinner') + \" {\\n\\t\\t\\tflex: 0 0 auto;\\n\\t\\t}\\n\\t\\t> .\" + sc('arrowLinner') + \" {\\n\\t\\t\\tcolor: \" + t.colors.grey.light + \";\\n\\t\\t\\t> span {\\n\\t\\t\\t\\tcursor: default;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t.\" + sc('list') + \" {\\n\\t\\t\\ttransition: margin-left .5s;\\n\\t\\t}\\n\\t\\t.\" + sc('slide') + \" {\\n\\t\\t\\tjustify-content: center;\\n\\t\\t}\\n\\t\\t.\" + sc('dragging') + \" {\\n\\t\\t\\t.\" + sc('list') + \" {\\n\\t\\t\\t\\ttransition: margin-left 0s;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&.\" + sc('scrolled') + \" {\\n\\t\\t\\t> .\" + sc('arrowLinner') + \" {\\n\\t\\t\\t\\tcolor: inherit;\\n\\t\\t\\t\\t> span {\\n\\t\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&.\" + sc('scrolled-to-end') + \" {\\n\\t\\t\\t> .\" + sc('arrowRinner') + \" {\\n\\t\\t\\t\\tcolor: \" + t.colors.grey.light + \";\\n\\t\\t\\t\\t> span {\\n\\t\\t\\t\\t\\tcursor: default;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\t&.\" + sc('layout', 'SINGLE_ROW') + \" {\\n\\t\\t> .\" + sc('arrowLinner') + \",\\n\\t\\t> .\" + sc('arrowRinner') + \" {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tz-index: \" + t.zIndexes.P1_SlightlyAbove + \";\\n\\t\\t\\ttop: 0;\\n\\t\\t\\t> span {\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\tjustify-items: center;\\n\\t\\t\\t\\tbackground-clip: padding-box; // CHROME FIX?\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t> .\" + sc('arrowLinner') + \" {\\n\\t\\t\\tleft: 0;\\n\\t\\t\\tdisplay: none;\\n\\t\\t\\t> span {\\n\\t\\t\\t\\tbackground-image: linear-gradient(\\n\\t\\t\\t\\t\\tto right,\\n\\t\\t\\t\\t\\t#fff,\\n\\t\\t\\t\\t\\trgba(255, 255, 255, 0)\\n\\t\\t\\t\\t);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t> .\" + sc('arrowRinner') + \" {\\n\\t\\t\\tright: 0;\\n\\t\\t\\t> span {\\n\\t\\t\\t\\tbackground-image: linear-gradient(\\n\\t\\t\\t\\t\\tto left,\\n\\t\\t\\t\\t\\t#fff,\\n\\t\\t\\t\\t\\trgba(255, 255, 255, 0)\\n\\t\\t\\t\\t);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&.\" + sc('scrolled') + \" {\\n\\t\\t\\t> .\" + sc('arrowLinner') + \" {\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&.\" + sc('scrolled-to-end') + \" {\\n\\t\\t\\t> .\" + sc('arrowRinner') + \" {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\t&.\" + sc('layout', 'SHOW_ALL') + \" {\\n\\t\\theight: auto;\\n\\n\\t\\t.\" + sc('list') + \" {\\n\\t\\t\\tflex-wrap: wrap;\\n\\t\\t\\t> * {\\n\\t\\t\\t\\t// flex-shrink: 0;\\n\\t\\t\\t\\t// flex-grow: 0;\\n\\t\\n\\t\\t\\t\\tmargin: \" + (t.ratios.l / 2) * t.font.baseSize + \"px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&:before,\\n\\t\\t&:after {\\n\\t\\t\\tcontent: '';\\n\\t\\t\\torder: 1;\\n\\t\\t\\twidth: \" + t.ratios.xl * 10 * t.font.baseSize + \"px;\\n\\t\\t\\theight: 0;\\n\\t\\t}\\n\\t}\\n\"; });\n// helpers\n// rendere la funzione pura\nvar easeInOutQuart = function (time, from, distance, duration) {\n time = (time * 2) / duration;\n if (time < 1) {\n return (distance / 2) * time * time * time * time + from;\n }\n return (-distance / 2) * ((time -= 2) * time * time * time - 2) + from;\n};\nvar startTime;\n// component\nvar Slider = /** @class */ (function (_super) {\n __extends(Slider, _super);\n function Slider(props) {\n var _this = _super.call(this, props) || this;\n _this.scrolled = function () {\n var s = _this.getScroll();\n var maxScroll = _this.getMaxScroll();\n var isScrollable = (_this.listRef.current.clientWidth > _this.scrollerRef.current.clientWidth);\n // console.log(this.listRef.current.className, this.listRef.current.clientWidth, this.scrollerRef.current.className, this.scrollerRef.current.clientWidth, isScrollable);\n var status;\n if (s <= 0) {\n status = { isScrolled: false, isScrolledToEnd: false, isScrollable: isScrollable };\n }\n else if (s >= maxScroll - 10) {\n // HACK - purtroppo non sempre è esattamente maxScroll a fine corsa\n status = { isScrolled: true, isScrolledToEnd: true, isScrollable: isScrollable };\n }\n else {\n status = { isScrolled: true, isScrolledToEnd: false, isScrollable: isScrollable };\n }\n if (status.isScrolled !== _this.state.isScrolled || status.isScrolledToEnd !== _this.state.isScrolledToEnd || status.isScrollable !== _this.state.isScrollable) {\n _this.setState(status);\n }\n };\n _this.containerRef = React.createRef();\n _this.scrollerRef = React.createRef();\n _this.listRef = React.createRef();\n _this.nextRef = React.createRef();\n _this.prevRef = React.createRef();\n _this.state = {\n isScrolled: false,\n isScrolledToEnd: false,\n isScrollable: false\n };\n return _this;\n }\n Slider.captureClick = function (e) {\n e.stopPropagation(); // Stop the click from being propagated.\n e.preventDefault(); // Cancel default behavior (ex.: link click)\n Slider.clearCaptureClick();\n return false;\n };\n Slider.setCaptureClick = function () {\n if (Slider.clickCaptured) {\n return;\n }\n document.addEventListener('click', Slider.captureClick, true);\n Slider.clickCaptured = true;\n };\n Slider.clearCaptureClick = function () {\n if (!Slider.clickCaptured) {\n return;\n }\n document.removeEventListener('click', Slider.captureClick, true); // cleanup\n Slider.clickCaptured = null;\n };\n /**\n * Su Layouts.SINGLE_ROW ridimensionando o facendo altre variazioni\n * posso dover aggiornare status.isScrolledToEnd perché sia sincronizzato con il DOM.\n * Faccio quindi un aggiornamento su timer ed in questo modo supporto anche l'eventuale variazione dinamica.\n * Non dovrebbe essere pesante sule prestazioni perché il browser fa una cache delle misure che gestisco\n * e quindi se questa non varia non deve ricalcolarla. In aggiunta lo faccio solo ogni 300ms.\n */\n Slider.prototype.startScrolledCheck = function () {\n if (this.scrolledTimer) {\n return;\n }\n this.scrolledTimer = setInterval(this.scrolled.bind(this), 300);\n };\n Slider.prototype.stopScrolledCheck = function () {\n if (!this.scrolledTimer) {\n return;\n }\n clearInterval(this.scrolledTimer);\n delete this.scrolledTimer;\n };\n Slider.prototype.onLayoutChange = function (newValue, oldValue) {\n if (newValue === oldValue) {\n return;\n }\n var listChildren = (this.listRef.current\n ? Array.from(this.listRef.current.children)\n : []);\n // Mantengo lo scroll per quanto possibile\n var currectScroll = this.getScroll();\n // Tolgo il vecchio\n // - Listeners\n switch (oldValue) {\n case Layouts.SINGLE_ROW:\n case Layouts.SINGLE_ELEMENT:\n this.scrollerRef.current.removeEventListener('dragstart', function (e) {\n e.preventDefault();\n });\n this.scrollerRef.current.removeEventListener('mousedown', this.startDrag.bind(this));\n this.scrollerRef.current.removeEventListener('touchstart', this.startDrag.bind(this));\n this.scrollerRef.current.removeEventListener('mouseup', this.endDrag.bind(this));\n this.scrollerRef.current.removeEventListener('touchend', this.endDrag.bind(this));\n document.removeEventListener('mousemove', this.moveDrag.bind(this));\n document.removeEventListener('touchmove', this.moveDrag.bind(this));\n break;\n case Layouts.SHOW_ALL:\n break;\n }\n // - Sizes\n switch (oldValue) {\n case Layouts.SINGLE_ROW:\n this.stopScrolledCheck();\n break;\n case Layouts.SINGLE_ELEMENT:\n this.listRef.current.style.width = null; // CHECK\n listChildren.forEach(function (e) { return (e.style.width = null); });\n break;\n case Layouts.SHOW_ALL:\n break;\n }\n // Metto il nuovo\n // - Listeners\n switch (newValue) {\n case Layouts.SINGLE_ROW:\n case Layouts.SINGLE_ELEMENT:\n this.scrollerRef.current.addEventListener('dragstart', function (e) {\n e.preventDefault();\n });\n this.scrollerRef.current.addEventListener('mousedown', this.startDrag.bind(this));\n this.scrollerRef.current.addEventListener('touchstart', this.startDrag.bind(this));\n document.addEventListener('mousemove', this.moveDrag.bind(this));\n document.addEventListener('touchmove', this.moveDrag.bind(this));\n this.scrollerRef.current.addEventListener('mouseup', this.endDrag.bind(this));\n this.scrollerRef.current.addEventListener('touchend', this.endDrag.bind(this));\n break;\n case Layouts.SHOW_ALL:\n break;\n }\n // - Sizes\n switch (newValue) {\n case Layouts.SINGLE_ROW:\n this.startScrolledCheck();\n break;\n case Layouts.SINGLE_ELEMENT:\n this.listRef.current.style.width = 100 * listChildren.length + \"%\";\n var childWidth_1 = 100 / listChildren.length + \"%\";\n listChildren.forEach(function (e) { return (e.style.width = childWidth_1); });\n break;\n case Layouts.SHOW_ALL:\n break;\n }\n // Traduco lo scroll nel nuovo layout\n this.setScroll(currectScroll);\n };\n Slider.prototype.componentDidMount = function () {\n var newLayout = this.props.layout || Layouts.SINGLE_ROW;\n this.onLayoutChange(newLayout, undefined);\n if (this.props.carusel) {\n this.startCarusel();\n }\n };\n Slider.prototype.componentDidUpdate = function (prevProps) {\n var newLayout = this.props.layout || Layouts.SINGLE_ROW;\n var oldLayout = prevProps.layout || Layouts.SINGLE_ROW;\n if (newLayout !== oldLayout) {\n this.onLayoutChange(newLayout, oldLayout);\n }\n if (this.props.carusel !== prevProps.carusel) {\n if (this.props.carusel) {\n this.startCarusel();\n }\n else {\n this.clearCarusel();\n }\n }\n else if (this.props.caruselIntervalFactor !== prevProps.caruselIntervalFactor &&\n this.props.carusel) {\n this.clearCarusel();\n this.startCarusel();\n }\n };\n Slider.prototype.componentWillUnmount = function () {\n var oldLayout = this.props.layout || Layouts.SINGLE_ROW;\n this.onLayoutChange(undefined, oldLayout);\n // clear timer (se presente)\n if (this.smoothTimer) {\n clearInterval(this.smoothTimer);\n delete this.smoothTimer;\n }\n this.clearCarusel();\n Slider.clearCaptureClick();\n delete this.draggingStart;\n this.stopScrolledCheck();\n };\n Slider.prototype.startCarusel = function () {\n if (!this.caruselTimer) {\n var timingFactor = this.props.caruselIntervalFactor || 1;\n this.caruselTimer = setInterval(this.stepCarusel.bind(this), defaultTheme.timings.base * 5 * timingFactor);\n }\n };\n Slider.prototype.stepCarusel = function () {\n if (!this.containerRef.current) {\n return;\n }\n var pos = this.containerRef.current.getBoundingClientRect();\n if (!pos ||\n !pos.height ||\n !pos.width || // Gestisce i display:none e quando è ridotto a dimensioni nulle\n pos.top > window.innerHeight ||\n pos.bottom < 0 || // Verticalmente fuori schermo\n pos.left > window.innerWidth ||\n pos.right < 0) {\n // Orizzontalmente fuori schermo\n // Non è visibile quindi non scorro\n return;\n }\n if (this.state.isScrolledToEnd) {\n this.scrollSmooth(0);\n }\n else {\n this.scrollParent(1);\n }\n };\n Slider.prototype.clearCarusel = function () {\n // clear timer (se presente)\n if (this.caruselTimer) {\n clearInterval(this.caruselTimer);\n delete this.caruselTimer;\n }\n };\n Slider.prototype.getScroll = function () {\n var layout = this.props.layout || Layouts.SINGLE_ROW;\n switch (layout) {\n case Layouts.SINGLE_ROW:\n // Espresso in px\n return this.scrollerRef.current.scrollLeft;\n case Layouts.SINGLE_ELEMENT:\n // Espreso in % negativa (es. '-200%')\n return ((-this.scrollerRef.current.clientWidth *\n parseFloat(this.listRef.current.style.marginLeft)) /\n 100);\n case Layouts.SHOW_ALL:\n // Non si applica\n return undefined; // CHECK\n }\n };\n // Per coerenza con i metodi sopra\n // Permette di astrarre anche lo scroll in altre direzioni\n Slider.prototype.getMaxScroll = function () {\n // IMPORTANT this.scroller.scrollWidth cala mano a mano che do un margin negativo a this.list\n return (this.listRef.current.scrollWidth - this.scrollerRef.current.clientWidth);\n };\n Slider.prototype.getPageWidth = function () {\n var layout = this.props.layout || Layouts.SINGLE_ROW;\n var scrollWidth = this.scrollerRef.current.clientWidth;\n if (layout === Layouts.SINGLE_ROW) {\n var scroll_1 = this.getScroll();\n var maxScroll = this.getMaxScroll();\n // Qui la comparsa della arrow è dinamica e va in sovrapposizione\n // Negli altri layout non è così\n if (scroll_1 > 0) {\n scrollWidth -= this.prevRef.current.clientWidth;\n }\n if (scroll_1 < maxScroll) {\n scrollWidth -= this.nextRef.current.clientWidth;\n }\n }\n return scrollWidth;\n };\n Slider.prototype.setScroll = function (pxValue) {\n var layout = this.props.layout || Layouts.SINGLE_ROW;\n pxValue = Math.min(Math.max(pxValue, 0), this.getMaxScroll());\n switch (layout) {\n case Layouts.SINGLE_ROW:\n // Espresso in px\n this.scrollerRef.current.scrollLeft = pxValue || 0;\n this.listRef.current.style.marginLeft = '0'; // Pulisco perché può servire su cambio\n break;\n case Layouts.SINGLE_ELEMENT:\n // Espreso in % negativa (es. '-200%')\n this.listRef.current.style.marginLeft = \"-\" + 100 *\n Math.round((pxValue || 0) / this.scrollerRef.current.clientWidth) + \"%\";\n this.scrollerRef.current.scrollLeft = 0; // Pulisco perché può servire su cambio\n this.scrolled(); // Aggiorno isScrolled e isScrolledToEnd\n break;\n case Layouts.SHOW_ALL:\n // Non si applica\n this.listRef.current.style.marginLeft = '0'; // Pulisco perché può servire su cambio\n this.scrollerRef.current.scrollLeft = 0; // Pulisco perché può servire su cambio\n break;\n }\n };\n Slider.getPos = function (e) {\n var pointer = e;\n if (e.touches && e.touches[0]) {\n return { x: e.touches[0].pageX, y: e.touches[0].pageY };\n }\n return { x: pointer.pageX, y: pointer.pageY };\n };\n Slider.prototype.startDrag = function (e) {\n this.draggingStart = this.draggingCur = Slider.getPos(e).x;\n this.scrolling = this.getScroll();\n this.scrollerRef.current.className += ' ' + subClass(style, 'dragging');\n this.clearCarusel();\n };\n // funzione che viene richiamata ad ogni movimento di muose/touch una volta che si e' in modalita' drag\n Slider.prototype.moveDrag = function (e) {\n if (!this.draggingStart) {\n return;\n }\n var pos = Slider.getPos(e);\n // IMPORTANT - Lo annoto perché su endDrag(..) devo usarlo in quanto event.touches poi non è più impostato e event.pageX è sempre a zero\n this.draggingCur = pos.x;\n var threshold = 10;\n var diff = this.draggingStart - this.draggingCur;\n if (diff < threshold) {\n return;\n }\n Slider.setCaptureClick();\n if (pos.x < this.containerRef.current.offsetLeft ||\n pos.x >\n this.containerRef.current.offsetLeft +\n this.containerRef.current.clientWidth ||\n pos.y < this.containerRef.current.offsetTop ||\n pos.y >\n this.containerRef.current.offsetTop +\n this.containerRef.current.clientHeight) {\n this.endDrag();\n return;\n }\n if (this.props.layout !== Layouts.SINGLE_ELEMENT) {\n this.setScroll(this.scrolling + diff);\n }\n };\n Slider.prototype.endDrag = function () {\n // IMPORTANT - Non misuro la posizione qui perché event.touches non è più impostato e event.pageX è sempre a zero\n // find move/dir\n var move = this.draggingStart - this.draggingCur;\n var dir = move > 0 ? 1 : -1;\n // reset\n delete this.draggingCur;\n delete this.draggingStart;\n this.scrollerRef.current.className = (' ' +\n this.scrollerRef.current.className +\n ' ')\n .replace(' ' + subClass(style, 'dragging') + ' ', '')\n .trim();\n // IMPORTANT - Uso setTimeout(.., 0) perché l'evento onClick si scatena dopo questo e se resetto subito non lo cattura più\n setTimeout(function () {\n Slider.clearCaptureClick();\n }, 0);\n // reposition into step\n if (this.props.layout === Layouts.SINGLE_ELEMENT) {\n if (Math.abs(move) > MIN_SCROLL) {\n this.scrollParent(dir);\n }\n }\n else {\n var scroll_2 = this.getScroll();\n var s = this.roundToNearestSlide(scroll_2, dir);\n this.scrollSmooth(s);\n }\n };\n Slider.prototype.scrollSmooth = function (val) {\n var _this = this;\n var layout = this.props.layout || Layouts.SINGLE_ROW;\n if (layout === Layouts.SINGLE_ELEMENT) {\n this.setScroll(val);\n }\n else if (layout === Layouts.SINGLE_ROW) {\n var start_1 = this.getScroll();\n var distance_1 = val - start_1;\n var duration_1 = defaultTheme.timings.base;\n startTime = new Date().getTime();\n if (this.smoothTimer) {\n clearInterval(this.smoothTimer);\n }\n this.smoothTimer = setInterval(function () {\n var time = new Date().getTime() - startTime;\n var scroll = easeInOutQuart(time, start_1, distance_1, duration_1);\n if (time >= duration_1) {\n clearInterval(_this.smoothTimer);\n }\n _this.setScroll(scroll);\n }, 1000 / 60); // 60 fps\n }\n };\n Slider.calcNearSide = function (child, dir) {\n return dir > 0 ? child.offsetLeft : child.offsetLeft + child.offsetWidth;\n };\n Slider.prototype.roundToNearestSlide = function (scroll, dir, minOneStep) {\n var layout = this.props.layout || Layouts.SINGLE_ROW;\n var list = this.listRef.current;\n var maxScroll = this.getMaxScroll();\n var initialS = dir > 0 ? this.getScroll() : maxScroll - this.getScroll();\n // console.log('Initial', dir, minOneStep);\n var listChildren = Array.from(list.children);\n // Prendo il limite del 'nearSide' del primo / ultimo child in modo che siano tutti relativi a quello\n var initialChild = listChildren[dir > 0 ? 0 : listChildren.length - 1];\n var initialOffset = Slider.calcNearSide(initialChild, dir);\n // La arrow che mi interessa è display:none quindi prendo l'altro che è visibile ed è largo uguale\n var nearArrowSize = initialS > 0\n ? (this.prevRef.current || this.nextRef.current).offsetWidth\n : 0;\n var s = dir > 0 ? scroll : maxScroll - scroll;\n // console.log('A', {dir, s});\n // Prende l'ultima non mostrata completamente\n for (var i = 0; i < listChildren.length; i++) {\n // A seconda di 'dir' vado avanti o a ritroso\n var child = listChildren[dir > 0 ? i : listChildren.length - 1 - i];\n var nearSideDiff = dir > 0\n ? Slider.calcNearSide(child, dir) - initialOffset\n : initialOffset - Slider.calcNearSide(child, dir);\n // Prendo il primo che non è completamente visualizzato però faccio almeno un passo (se richiesto)\n // console.log('B-pre', {dir, i, nearSideDiff, initialS, nearArrowSize});\n if (nearSideDiff + child.offsetWidth > s + nearArrowSize &&\n (!minOneStep || nearSideDiff > initialS + nearArrowSize + 10)) {\n // HACK - purtroppo, credo per problemi di arrtondamento, a volte i valori non tornano\n s = nearSideDiff;\n // console.log('B', {dir, i, s, initialS, nearArrowSize});\n break;\n }\n }\n if (layout === Layouts.SINGLE_ROW) {\n // Qui la comparsa della arrow è dinamica e va in sovrapposizione quindi devo adeguarmi\n if (s > 0) {\n // La arrow che mi interessa è display:none quindi prendo l'altro che è visibile ed è largo uguale\n s -=\n dir > 0\n ? this.nextRef.current.clientWidth\n : this.prevRef.current.clientWidth;\n // console.log('C', {dir, s});\n }\n }\n s = dir > 0 ? s : maxScroll - s;\n // console.log('D', {dir, s});\n s = Math.max(0, Math.min(s, maxScroll));\n // console.log('E', {dir, s});\n return s;\n };\n Slider.prototype.scrollParent = function (dir) {\n var scroll = this.getScroll();\n // if (scroll > 0) {\n // \tscroll += this.prevRef.current.clientWidth;\n // }\n scroll += (dir > 0 ? 1 : -1) * this.getPageWidth();\n var s = this.roundToNearestSlide(scroll, dir, true); // Faccio il passo\n this.scrollSmooth(s);\n };\n Slider.prototype.render = function () {\n var _this = this;\n var _a = this.props, className = _a.className, children = _a.children, _b = _a.layout, layout = _b === void 0 ? Layouts.SINGLE_ROW : _b;\n var _c = this.state, isScrolled = _c.isScrolled, isScrolledToEnd = _c.isScrolledToEnd, isScrollable = _c.isScrollable;\n return (React.createElement(\"div\", { className: classNames(style, className, subClass(style, 'scroller-container'), isScrolled && isScrollable ? subClass(style, 'scrolled') : null, isScrolledToEnd || !isScrollable ? subClass(style, 'scrolled-to-end') : null, subClass(style, 'layout', layout)), ref: this.containerRef },\n layout !== Layouts.SHOW_ALL && (React.createElement(\"div\", { className: subClass(style, 'arrowLinner'), onClick: function () {\n _this.clearCarusel();\n _this.scrollParent(-1);\n }, ref: this.prevRef },\n React.createElement(\"span\", null,\n React.createElement(Icon, { className: subClass(style, 'arrow'), name: 'chevron_left' })))),\n React.createElement(\"div\", { className: subClass(style, 'scroller'), onScroll: this.scrolled, ref: this.scrollerRef },\n React.createElement(\"div\", { className: subClass(style, 'list'), ref: this.listRef }, children &&\n children.map(function (item, i) { return (React.createElement(\"div\", { className: subClass(style, 'slide'), key: i }, item)); }))),\n layout !== Layouts.SHOW_ALL && (React.createElement(\"div\", { className: subClass(style, 'arrowRinner'), onClick: function () {\n _this.clearCarusel();\n _this.scrollParent(1);\n }, ref: this.nextRef },\n React.createElement(\"span\", null,\n React.createElement(Icon, { className: subClass(style, 'arrow'), name: 'chevron_right' }))))));\n };\n return Slider;\n}(React.Component));\nexport { Slider };\n//# sourceMappingURL=Slider.js.map","import React, { useCallback, useRef, useState } from 'react';\nimport { registerClass, cns, currySC } from '@food/css-manager';\nimport { Icon } from './icons';\nimport { Dropdown } from './Dropdown';\nvar style = registerClass(function (t, sc) { return \"\\n\\tdisplay: inline-block;\\n\\tposition: relative;\\n\\n\\t.\" + sc('selected') + \" {\\n\\t\\tdisplay: flex;\\n\\t\\theight: 100%;\\n\\t\\talign-items: center;\\n\\t\\tcursor: pointer;\\n\\t\\tcolor: \" + t.colors.white + \";\\n\\t\\tborder-radius: \" + t.radius * t.font.baseSize + \"px;\\n\\t\\tpadding: .5em .5em .5em 1em; /* A destra c'\\u00E8 la icon quindi lascio meno posto */\\n\\n\\t\\t&.\" + sc('selectedOption') + \" {\\n\\t\\t\\tcursor: default;\\n\\t\\t}\\n\\n\\t\\t.\" + sc('icon') + \" {\\n\\t\\t\\tmargin-left: 0.52em;\\n\\t\\t}\\n\\t}\\n\\t\\n\\t&.\" + sc('transparent') + \" {\\n\\t\\t.\" + sc('selected') + \",\\n\\t\\t.\" + sc('options') + \" > div {\\n\\t\\t\\tcolor: inherit;\\n\\t\\t\\t&.\" + sc('selectedOption') + \" {\\n\\t\\t\\t\\topacity: 0.5;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t.\" + sc('selected') + \" {\\n\\t\\t\\tborder: 1px solid transparent; // Evito si sposti con l'apertura\\n\\t\\t}\\n\\t}\\n\\n\\t\" + Object.keys(t.colors)\n .filter(function (k) { return !!t.colors[k].disabled; })\n .map(function (d) {\n return \"&.\" + sc('type', d) + \" {\\n\\t\\t\\t.\" + sc('selected') + \",\\n\\t\\t\\t.\" + sc('options') + \" > div {\\n\\t\\t\\t\\tbackground-color: \" + ('plain' in t.colors[d] ? t.colors[d].plain : t.colors[d]) + \";\\n\\t\\t\\t\\t&.\" + sc('selectedOption') + \" {\\n\\t\\t\\t\\t\\tcolor: \" + ('dark' in t.colors[d] ? t.colors[d].dark : t.colors[d]) + \";\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\";\n})\n .join('') + \"\\n\\t\\n\\t&.\" + sc('open') + \" > .\" + sc('selected') + \" {\\n\\t\\tborder-bottom-left-radius: 0;\\n\\t\\tborder-bottom-right-radius: 0;\\n\\t}\\n\"; });\nvar styleDropdown = registerClass(function (t, sc) { return \"\\n\\n\\t.\" + sc('options') + \" > div {\\n\\t\\tdisplay: flex;\\n\\t\\theight: 100%;\\n\\t\\talign-items: center;\\n\\t\\tcursor: pointer;\\n\\t\\tcolor: \" + t.colors.white + \";\\n\\t\\tpadding: .5em .5em .5em 1em; /* A destra c'\\u00E8 la icon quindi lascio meno posto */\\n\\n\\t\\t&.\" + sc('selectedOption') + \" {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\tpointer-events: none;\\n\\t\\t}\\n\\t}\\n\\n\\t&.\" + sc('transparent') + \" {\\n\\t\\t.\" + sc('options') + \" {\\n\\t\\t\\tborder: 1px solid \" + t.colors.grey.light + \";\\n\\n\\t\\t\\t> div {\\n\\t\\t\\t\\tcolor: inherit;\\n\\n\\t\\t\\t\\tbackground-color: \" + t.colors.white + \";\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t&.\" + sc('selectedOption') + \" {\\n\\t\\t\\t\\t\\tcolor: \" + t.colors.grey.plain + \";\\n\\t\\t\\t\\t\\tpointer-events: none;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t\" + Object.keys(t.colors)\n .filter(function (k) { return !!t.colors[k].disabled; })\n .map(function (d) {\n return \"&.\" + sc('type', d) + \" {\\n\\n\\t\\t\\t\\t\\t.\" + sc('options') + \" > div {\\n\\t\\t\\t\\t\\t\\tbackground-color: \" + ('plain' in t.colors[d] ? t.colors[d].plain : t.colors[d]) + \";\\n\\t\\t\\t\\t\\t\\ttransition: color .3s, background-color .3s;\\n\\n\\t\\t\\t\\t\\t\\t&.\" + sc('selectedOption') + \" {\\n\\t\\t\\t\\t\\t\\t\\tcolor: \" + ('dark' in t.colors[d] ? t.colors[d].dark : t.colors[d]) + \";\\n\\t\\t\\t\\t\\t\\t\\tbackground-color: \" + ('plain' in t.colors[d] ? t.colors[d].plain : t.colors[d]) + \";\\n\\t\\t\\t\\t\\t\\t\\tpointer-events: none;\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\t&.\" + sc('hover-effect') + \" {\\n\\t\\t\\t\\t\\t\\t.\" + sc('options') + \" > div {\\n\\t\\t\\t\\t\\t\\t\\t&:not(.\" + sc('selectedOption') + \"):hover {\\n\\t\\t\\t\\t\\t\\t\\t\\tcolor: \" + t.colors.white + \";\\n\\t\\t\\t\\t\\t\\t\\t\\tbackground: \" + ('light' in t.colors[d] ? t.colors[d].light : t.colors[d]) + \";\\n\\t\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t\";\n})\n .join('') + \"\\n\\t\\n\\t&:not(.\" + sc('openAbove') + \") {\\n\\t\\t.\" + sc('options') + \" {\\n\\t\\t\\ttop: 100%;\\n\\t\\t}\\n\\t}\\n\\t\\n\\t&.\" + sc('openAbove') + \" {\\n\\t\\t.\" + sc('options') + \" {\\n\\t\\t\\tbottom: 100%;\\n\\t\\t}\\n\\t}\\n\"; });\nvar sc = currySC(style);\nvar scd = currySC(styleDropdown);\nvar renderOptionLabel = function (isMain) { return function (label) {\n var labelFn;\n if (typeof label === 'string') {\n labelFn = function () { return React.createElement(\"span\", null, label); };\n }\n else if (React.isValidElement(label)) {\n labelFn = function () { return label; };\n }\n else {\n // @ts-ignore\n labelFn = label;\n }\n return labelFn(isMain);\n}; };\nexport var Select = function (_a) {\n var onChange = _a.onChange, className = _a.className, _b = _a.selected, selected = _b === void 0 ? null : _b, _c = _a.type, type = _c === void 0 ? 'transparent' : _c, isTransparent = _a.isTransparent, options = _a.options, _d = _a.optionsOneLine, optionsOneLine = _d === void 0 ? true : _d, _e = _a.hideSelected, hideSelected = _e === void 0 ? false : _e, _f = _a.openAbove, openAbove = _f === void 0 ? false : _f, dropdownClassName = _a.dropdownClassName, _g = _a.hoverEffect, hoverEffect = _g === void 0 ? false : _g, dropdownItemClassName = _a.dropdownItemClassName;\n if (type === 'transparent') {\n type = 'ink';\n isTransparent = true;\n }\n var _h = useState(false), open = _h[0], setOpen = _h[1];\n var elem = useRef();\n var select = useCallback(function (value) {\n if (onChange) {\n onChange(value);\n }\n setOpen(false);\n }, [onChange]);\n var f = options.find(function (o) { return o.value === selected; });\n var temporarySelected = f || options[0];\n var optionRenderer = renderOptionLabel(false);\n var mainRenderer = renderOptionLabel(true);\n return (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: cns(className, style, isTransparent && sc('transparent'), type && sc('type', type), openAbove && sc('openAbove'), open && sc('open')), tabIndex: 0, ref: elem, onClick: function () { return setOpen(true); } },\n React.createElement(\"div\", { className: sc('selected') },\n mainRenderer(temporarySelected.label),\n React.createElement(Icon, { className: sc('icon'), name: 'arrow_drop_down' }))),\n React.createElement(Dropdown, { element: elem, open: open, onClickOutside: function () { return setOpen(false); } },\n React.createElement(\"div\", { className: cns(styleDropdown, dropdownClassName, type && scd('type', type), isTransparent && scd('transparent'), hoverEffect && scd('hover-effect')), tabIndex: 1 },\n React.createElement(\"div\", { className: cns(scd('options'), optionsOneLine ? scd('optionsOneLine') : null) }, options.map(function (_a) {\n var label = _a.label, value = _a.value;\n return value === temporarySelected.value ? (!hideSelected && (React.createElement(\"div\", { key: value, className: cns(scd('selectedOption'), dropdownItemClassName) },\n React.createElement(\"span\", null, optionRenderer(label))))) : (React.createElement(\"div\", { key: value, tabIndex: 1, onClick: function () { return select(value); }, className: dropdownItemClassName },\n React.createElement(\"span\", null, optionRenderer(label))));\n }))))));\n};\n//# sourceMappingURL=Select.js.map","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport React from 'react';\nimport { registerClass, classNames, subClass } from '@food/css-manager';\nimport { Icon, } from './icons';\nvar style = registerClass(function (theme, sc) { return \"\\n\\tdisplay: flex;\\n\\tjustify-content: space-between;\\n\\n\\t.\" + sc('star') + \" {\\n\\t\\tcursor: pointer;\\n\\t\\tfont-size: \" + theme.ratios.xl * 3 + \"em;\\n\\t\\tcolor: \" + theme.colors.grey.plain + \";\\n\\t\\t&.\" + sc('active') + \" {\\n\\t\\t\\tcolor: \" + theme.colors.premium.plain + \";\\n\\t\\t}\\n\\t}\\n\"; });\nexport var Rating = function (_a) {\n var className = _a.className, onChange = _a.onChange, current = _a.current, _b = _a.max, max = _b === void 0 ? 5 : _b;\n return (React.createElement(\"div\", { className: classNames(className, style) }, __spreadArrays(Array(max)).fill(1).map(function (x, i) { return (React.createElement(Icon, { name: 'star', key: i, onClick: function () { return onChange && onChange(i); }, className: classNames(subClass(style, 'star'), current >= i && subClass(style, 'active')) })); })));\n};\n//# sourceMappingURL=Rating.js.map","import React from 'react';\nimport { Icon, } from './icons';\nimport { classNames, registerClass, subClass, } from '@food/css-manager';\nvar style = registerClass(function (theme, sc) { return \"\\n\\tdisplay: inline-block;\\n\\t\\n\\t\" + Object.keys(theme.colors)\n .filter(function (k) { return !!theme.colors[k].disabled; })\n .map(function (d) {\n return \"&.\" + sc('type', d) + \" {\\n\\t\\t\\tcolor: \" + theme.colors[d].plain + \";\\n\\t\\t}\";\n})\n .join(''); });\nexport var Toggle = function (_a) {\n var checked = _a.checked, onChange = _a.onChange, type = _a.type, className = _a.className;\n return (React.createElement(\"div\", { className: classNames(className, style, checked && subClass(style, 'type', type)), onClick: function () { return onChange && onChange(!checked); } },\n React.createElement(Icon, { name: checked\n ? 'radio_button_checked'\n : 'radio_button_unchecked' })));\n};\n//# sourceMappingURL=Toggle.js.map","var __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})();\nimport React, { createRef } from 'react';\nimport { Dropdown, DropdownPositions } from './Dropdown';\nimport { canUseDOM } from 'exenv';\nimport { registerClass } from '@food/css-manager';\nvar tooltipClass = registerClass(function (t) { return \"\\n\\tbackground: transparent;\\n\\t\\n\\t> div {\\n\\t\\tbackground-color: \" + t.colors.grey.dark + \";\\n\\t\\tcolor: \" + t.colors.white + \";\\n\\t\\tpadding-top: \" + (t.ratios.xs / 2) * t.font.baseSize + \"px;\\n\\t\\tpadding-bottom: \" + (t.ratios.xs / 2) * t.font.baseSize + \"px;\\n\\t\\tpadding-left: \" + t.ratios.s * t.font.baseSize + \"px;\\n\\t\\tpadding-right: \" + t.ratios.s * t.font.baseSize + \"px;\\n\\t\\tborder-radius: .3em;\\n\\t\\tposition: relative;\\n\\t\\tmargin-bottom: 5px;\\n\\t\\t\\n\\t\\t&::after {\\n\\t\\t\\tcontent: \\\" \\\";\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 100%; /* At the bottom of the tooltip */\\n\\t\\t\\tleft: 20%;\\n\\t\\t\\tmargin-left: -5px;\\n\\t\\t\\tborder-width: 5px;\\n\\t\\t\\tborder-style: solid;\\n\\t\\t\\tborder-color: \" + t.colors.grey.dark + \" transparent transparent transparent;\\n\\t\\t}\\n\\t}\\n\"; }, true);\nvar Tooltip = /** @class */ (function (_super) {\n __extends(Tooltip, _super);\n function Tooltip() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.originalRef = createRef();\n _this.tooltipRef = createRef();\n _this.state = {\n open: false,\n };\n _this.open = function () {\n _this.setState({ open: true });\n clearTimeout(_this.closeTimeout);\n };\n _this.close = function () { return _this.setState({ open: false }); };\n _this.timedClose = function () { return (_this.closeTimeout = setTimeout(_this.close, 100)); };\n return _this;\n }\n Tooltip.prototype.componentDidMount = function () {\n if (canUseDOM) {\n var originalElem = this.originalRef.current;\n var tooltipElem = this.tooltipRef.current;\n if (!originalElem || !tooltipElem) {\n return;\n }\n originalElem.addEventListener('mouseenter', this.open);\n tooltipElem.addEventListener('mouseenter', this.open);\n originalElem.addEventListener('mouseleave', this.timedClose);\n tooltipElem.addEventListener('mouseleave', this.timedClose);\n }\n };\n Tooltip.prototype.componentWillUnmount = function () {\n if (canUseDOM) {\n var originalElem = this.originalRef.current;\n var tooltipElem = this.tooltipRef.current;\n if (!originalElem || !tooltipElem) {\n return;\n }\n originalElem.removeEventListener('mouseenter', this.open);\n tooltipElem.removeEventListener('mouseenter', this.open);\n originalElem.removeEventListener('mouseleave', this.timedClose);\n tooltipElem.removeEventListener('mouseleave', this.timedClose);\n }\n };\n Tooltip.prototype.render = function () {\n var _a = this.props, C = _a.component, children = _a.children;\n var open = this.state.open;\n return (React.createElement(React.Fragment, null,\n React.createElement(Dropdown, { element: this.originalRef, open: open, preferredPosition: DropdownPositions.Above, className: tooltipClass },\n React.createElement(\"div\", { ref: this.tooltipRef },\n React.createElement(C, null))),\n React.createElement(\"section\", { ref: this.originalRef }, children)));\n };\n return Tooltip;\n}(React.PureComponent));\nexport { Tooltip };\n//# sourceMappingURL=Tooltip.js.map","import { Button, layouts as ButtonLayouts, IconPositions } from './src/Button';\nimport { ErrorMessage } from './src/ErrorMessage';\nimport { Checkbox } from './src/Checkbox';\nimport { Modal } from './src/Modal';\nimport { LayoutHandler } from './src/LayoutHandler';\nimport { Radio } from './src/Radio';\nimport { Field } from './src/Field';\nimport { Tag } from './src/Tag';\nimport { Box } from './src/Box';\nimport { Breadcrumbs } from './src/Breadcrumbs';\nimport { Select } from './src/Select';\nimport { Rating } from './src/Rating';\nimport { Slider, Layouts as SliderLayouts } from './src/Slider';\nimport { registerGlobal } from '@food/css-manager';\nimport { Icon } from './src/icons';\nimport { Modal as Modal2, ModalLayouts } from './src/Modal2';\nimport { Dropdown, DropdownPositions, DropdownAlignments, } from './src/Dropdown';\nimport { Collapsible, CollapsiblePhases } from './src/Collapsible';\nimport { Toggle } from './src/Toggle';\nimport { Tooltip } from './src/Tooltip';\n// Varie impostazioni di base\nregisterGlobal(function (theme) { return \"\\n\\thtml {\\n\\t\\tcolor: \" + theme.colors.ink + \";\\n\\t\\t&, * {\\n\\t\\t\\tbox-sizing: border-box;\\n\\t\\t\\toutline: 0;\\n\\t\\t}\\n\\t\\t&, > body {\\n\\t\\t\\tmin-height: 100%;\\n\\t\\t}\\n\\t}\\n\"; });\nexport { Button, IconPositions, ButtonLayouts, ErrorMessage, Checkbox, Modal, Radio, Tag, LayoutHandler, Field, Box, Breadcrumbs, Select, Rating, Slider, SliderLayouts, Icon, Dropdown, Collapsible, CollapsiblePhases, Toggle, Tooltip, DropdownPositions, DropdownAlignments, Modal2, ModalLayouts, };\n//# sourceMappingURL=index.js.map","import inspect from '../jsutils/inspect';\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: ['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', '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', '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: ' + 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 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.kind] || [];\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\nfunction isNode(maybeNode) {\n return Boolean(maybeNode && typeof maybeNode.kind === 'string');\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\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]) {\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]) {\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 * Creates a new visitor instance which maintains a provided TypeInfo instance\n * along with visiting visitor.\n */\n\nexport function visitWithTypeInfo(typeInfo, visitor) {\n return {\n enter: function enter(node) {\n typeInfo.enter(node);\n var fn = getVisitFn(visitor, node.kind,\n /* isLeaving */\n false);\n\n if (fn) {\n var result = fn.apply(visitor, arguments);\n\n if (result !== undefined) {\n typeInfo.leave(node);\n\n if (isNode(result)) {\n typeInfo.enter(result);\n }\n }\n\n return result;\n }\n },\n leave: function leave(node) {\n var fn = getVisitFn(visitor, node.kind,\n /* isLeaving */\n true);\n var result;\n\n if (fn) {\n result = fn.apply(visitor, arguments);\n }\n\n typeInfo.leave(node);\n return result;\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","import objectEntries from '../polyfills/objectEntries';\nimport inspect from '../jsutils/inspect';\nimport toObjMap from '../jsutils/toObjMap';\nimport devAssert from '../jsutils/devAssert';\nimport instanceOf from '../jsutils/instanceOf';\nimport defineToJSON from '../jsutils/defineToJSON';\nimport isObjectLike from '../jsutils/isObjectLike';\nimport defineToStringTag from '../jsutils/defineToStringTag';\nimport { DirectiveLocation } from '../language/directiveLocation';\nimport { GraphQLString, GraphQLBoolean } from './scalars';\nimport { argsToArgsConfig, GraphQLNonNull } from './definition';\n/**\n * Test if the given value is a GraphQL directive.\n */\n\n// eslint-disable-next-line no-redeclare\nexport function isDirective(directive) {\n return instanceOf(directive, GraphQLDirective);\n}\nexport function assertDirective(directive) {\n if (!isDirective(directive)) {\n throw new Error(\"Expected \".concat(inspect(directive), \" to be a GraphQL directive.\"));\n }\n\n return directive;\n}\n/**\n * Directives are used by the GraphQL runtime as a way of modifying execution\n * behavior. Type system creators will usually not create these directly.\n */\n\nexport var GraphQLDirective =\n/*#__PURE__*/\nfunction () {\n function GraphQLDirective(config) {\n this.name = config.name;\n this.description = config.description;\n this.locations = config.locations;\n this.isRepeatable = config.isRepeatable != null && config.isRepeatable;\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n config.name || devAssert(0, 'Directive must be named.');\n Array.isArray(config.locations) || devAssert(0, \"@\".concat(config.name, \" locations must be an Array.\"));\n var args = config.args || {};\n isObjectLike(args) && !Array.isArray(args) || devAssert(0, \"@\".concat(config.name, \" args must be an object with argument names as keys.\"));\n this.args = objectEntries(args).map(function (_ref) {\n var argName = _ref[0],\n arg = _ref[1];\n return {\n name: argName,\n description: arg.description === undefined ? null : arg.description,\n type: arg.type,\n defaultValue: arg.defaultValue,\n extensions: arg.extensions && toObjMap(arg.extensions),\n astNode: arg.astNode\n };\n });\n }\n\n var _proto = GraphQLDirective.prototype;\n\n _proto.toString = function toString() {\n return '@' + this.name;\n };\n\n _proto.toConfig = function toConfig() {\n return {\n name: this.name,\n description: this.description,\n locations: this.locations,\n args: argsToArgsConfig(this.args),\n isRepeatable: this.isRepeatable,\n extensions: this.extensions,\n astNode: this.astNode\n };\n };\n\n return GraphQLDirective;\n}(); // Conditionally apply `[Symbol.toStringTag]` if `Symbol`s are supported\n\ndefineToStringTag(GraphQLDirective);\ndefineToJSON(GraphQLDirective);\n\n/**\n * Used to conditionally include fields or fragments.\n */\nexport var GraphQLIncludeDirective = new GraphQLDirective({\n name: 'include',\n description: 'Directs the executor to include this field or fragment only when the `if` argument is true.',\n locations: [DirectiveLocation.FIELD, DirectiveLocation.FRAGMENT_SPREAD, DirectiveLocation.INLINE_FRAGMENT],\n args: {\n if: {\n type: GraphQLNonNull(GraphQLBoolean),\n description: 'Included when true.'\n }\n }\n});\n/**\n * Used to conditionally skip (exclude) fields or fragments.\n */\n\nexport var GraphQLSkipDirective = new GraphQLDirective({\n name: 'skip',\n description: 'Directs the executor to skip this field or fragment when the `if` argument is true.',\n locations: [DirectiveLocation.FIELD, DirectiveLocation.FRAGMENT_SPREAD, DirectiveLocation.INLINE_FRAGMENT],\n args: {\n if: {\n type: GraphQLNonNull(GraphQLBoolean),\n description: 'Skipped when true.'\n }\n }\n});\n/**\n * Constant string used for default reason for a deprecation.\n */\n\nexport var DEFAULT_DEPRECATION_REASON = 'No longer supported';\n/**\n * Used to declare element of a GraphQL schema as deprecated.\n */\n\nexport var GraphQLDeprecatedDirective = new GraphQLDirective({\n name: 'deprecated',\n description: 'Marks an element of a GraphQL schema as no longer supported.',\n locations: [DirectiveLocation.FIELD_DEFINITION, DirectiveLocation.ENUM_VALUE],\n args: {\n reason: {\n type: GraphQLString,\n description: 'Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax (as specified by [CommonMark](https://commonmark.org/).',\n defaultValue: DEFAULT_DEPRECATION_REASON\n }\n }\n});\n/**\n * The full list of specified directives.\n */\n\nexport var specifiedDirectives = Object.freeze([GraphQLIncludeDirective, GraphQLSkipDirective, GraphQLDeprecatedDirective]);\nexport function isSpecifiedDirective(directive) {\n return isDirective(directive) && specifiedDirectives.some(function (_ref2) {\n var name = _ref2.name;\n return name === directive.name;\n });\n}\n","// Utilities\n//\n'use strict';\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction isString(obj) { return _class(obj) === '[object String]'; }\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction has(object, key) {\n return _hasOwnProperty.call(object, key);\n}\n\n// Merge objects\n//\nfunction assign(obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n\n sources.forEach(function (source) {\n if (!source) { return; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be object');\n }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key];\n });\n });\n\n return obj;\n}\n\n// Remove element from array and put another array at those position.\n// Useful for some operations with tokens\nfunction arrayReplaceAt(src, pos, newElements) {\n return [].concat(src.slice(0, pos), newElements, src.slice(pos + 1));\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction isValidEntityCode(c) {\n /*eslint no-bitwise:0*/\n // broken sequence\n if (c >= 0xD800 && c <= 0xDFFF) { return false; }\n // never used\n if (c >= 0xFDD0 && c <= 0xFDEF) { return false; }\n if ((c & 0xFFFF) === 0xFFFF || (c & 0xFFFF) === 0xFFFE) { return false; }\n // control codes\n if (c >= 0x00 && c <= 0x08) { return false; }\n if (c === 0x0B) { return false; }\n if (c >= 0x0E && c <= 0x1F) { return false; }\n if (c >= 0x7F && c <= 0x9F) { return false; }\n // out of range\n if (c > 0x10FFFF) { return false; }\n return true;\n}\n\nfunction fromCodePoint(c) {\n /*eslint no-bitwise:0*/\n if (c > 0xffff) {\n c -= 0x10000;\n var surrogate1 = 0xd800 + (c >> 10),\n surrogate2 = 0xdc00 + (c & 0x3ff);\n\n return String.fromCharCode(surrogate1, surrogate2);\n }\n return String.fromCharCode(c);\n}\n\n\nvar UNESCAPE_MD_RE = /\\\\([!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~])/g;\nvar ENTITY_RE = /&([a-z#][a-z0-9]{1,31});/gi;\nvar UNESCAPE_ALL_RE = new RegExp(UNESCAPE_MD_RE.source + '|' + ENTITY_RE.source, 'gi');\n\nvar DIGITAL_ENTITY_TEST_RE = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i;\n\nvar entities = require('./entities');\n\nfunction replaceEntityPattern(match, name) {\n var code = 0;\n\n if (has(entities, name)) {\n return entities[name];\n }\n\n if (name.charCodeAt(0) === 0x23/* # */ && DIGITAL_ENTITY_TEST_RE.test(name)) {\n code = name[1].toLowerCase() === 'x' ?\n parseInt(name.slice(2), 16) : parseInt(name.slice(1), 10);\n\n if (isValidEntityCode(code)) {\n return fromCodePoint(code);\n }\n }\n\n return match;\n}\n\n/*function replaceEntities(str) {\n if (str.indexOf('&') < 0) { return str; }\n\n return str.replace(ENTITY_RE, replaceEntityPattern);\n}*/\n\nfunction unescapeMd(str) {\n if (str.indexOf('\\\\') < 0) { return str; }\n return str.replace(UNESCAPE_MD_RE, '$1');\n}\n\nfunction unescapeAll(str) {\n if (str.indexOf('\\\\') < 0 && str.indexOf('&') < 0) { return str; }\n\n return str.replace(UNESCAPE_ALL_RE, function (match, escaped, entity) {\n if (escaped) { return escaped; }\n return replaceEntityPattern(match, entity);\n });\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar HTML_ESCAPE_TEST_RE = /[&<>\"]/;\nvar HTML_ESCAPE_REPLACE_RE = /[&<>\"]/g;\nvar HTML_REPLACEMENTS = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"'\n};\n\nfunction replaceUnsafeChar(ch) {\n return HTML_REPLACEMENTS[ch];\n}\n\nfunction escapeHtml(str) {\n if (HTML_ESCAPE_TEST_RE.test(str)) {\n return str.replace(HTML_ESCAPE_REPLACE_RE, replaceUnsafeChar);\n }\n return str;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar REGEXP_ESCAPE_RE = /[.?*+^$[\\]\\\\(){}|-]/g;\n\nfunction escapeRE(str) {\n return str.replace(REGEXP_ESCAPE_RE, '\\\\$&');\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction isSpace(code) {\n switch (code) {\n case 0x09:\n case 0x20:\n return true;\n }\n return false;\n}\n\n// Zs (unicode class) || [\\t\\f\\v\\r\\n]\nfunction isWhiteSpace(code) {\n if (code >= 0x2000 && code <= 0x200A) { return true; }\n switch (code) {\n case 0x09: // \\t\n case 0x0A: // \\n\n case 0x0B: // \\v\n case 0x0C: // \\f\n case 0x0D: // \\r\n case 0x20:\n case 0xA0:\n case 0x1680:\n case 0x202F:\n case 0x205F:\n case 0x3000:\n return true;\n }\n return false;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n/*eslint-disable max-len*/\nvar UNICODE_PUNCT_RE = require('uc.micro/categories/P/regex');\n\n// Currently without astral characters support.\nfunction isPunctChar(ch) {\n return UNICODE_PUNCT_RE.test(ch);\n}\n\n\n// Markdown ASCII punctuation characters.\n//\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\n//\n// Don't confuse with unicode punctuation !!! It lacks some chars in ascii range.\n//\nfunction isMdAsciiPunct(ch) {\n switch (ch) {\n case 0x21/* ! */:\n case 0x22/* \" */:\n case 0x23/* # */:\n case 0x24/* $ */:\n case 0x25/* % */:\n case 0x26/* & */:\n case 0x27/* ' */:\n case 0x28/* ( */:\n case 0x29/* ) */:\n case 0x2A/* * */:\n case 0x2B/* + */:\n case 0x2C/* , */:\n case 0x2D/* - */:\n case 0x2E/* . */:\n case 0x2F/* / */:\n case 0x3A/* : */:\n case 0x3B/* ; */:\n case 0x3C/* < */:\n case 0x3D/* = */:\n case 0x3E/* > */:\n case 0x3F/* ? */:\n case 0x40/* @ */:\n case 0x5B/* [ */:\n case 0x5C/* \\ */:\n case 0x5D/* ] */:\n case 0x5E/* ^ */:\n case 0x5F/* _ */:\n case 0x60/* ` */:\n case 0x7B/* { */:\n case 0x7C/* | */:\n case 0x7D/* } */:\n case 0x7E/* ~ */:\n return true;\n default:\n return false;\n }\n}\n\n// Hepler to unify [reference labels].\n//\nfunction normalizeReference(str) {\n // Trim and collapse whitespace\n //\n str = str.trim().replace(/\\s+/g, ' ');\n\n // In node v10 'ẞ'.toLowerCase() === 'Ṿ', which is presumed to be a bug\n // fixed in v12 (couldn't find any details).\n //\n // So treat this one as a special case\n // (remove this when node v10 is no longer supported).\n //\n if ('ẞ'.toLowerCase() === 'Ṿ') {\n str = str.replace(/ẞ/g, 'ß');\n }\n\n // .toLowerCase().toUpperCase() should get rid of all differences\n // between letter variants.\n //\n // Simple .toLowerCase() doesn't normalize 125 code points correctly,\n // and .toUpperCase doesn't normalize 6 of them (list of exceptions:\n // İ, ϴ, ẞ, Ω, K, Å - those are already uppercased, but have differently\n // uppercased versions).\n //\n // Here's an example showing how it happens. Lets take greek letter omega:\n // uppercase U+0398 (Θ), U+03f4 (ϴ) and lowercase U+03b8 (θ), U+03d1 (ϑ)\n //\n // Unicode entries:\n // 0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8;\n // 03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398\n // 03D1;GREEK THETA SYMBOL;Ll;0;L; 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398\n // 03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L; 0398;;;;N;;;;03B8;\n //\n // Case-insensitive comparison should treat all of them as equivalent.\n //\n // But .toLowerCase() doesn't change ϑ (it's already lowercase),\n // and .toUpperCase() doesn't change ϴ (already uppercase).\n //\n // Applying first lower then upper case normalizes any character:\n // '\\u0398\\u03f4\\u03b8\\u03d1'.toLowerCase().toUpperCase() === '\\u0398\\u0398\\u0398\\u0398'\n //\n // Note: this is equivalent to unicode case folding; unicode normalization\n // is a different step that is not required here.\n //\n // Final result should be uppercased, because it's later stored in an object\n // (this avoid a conflict with Object.prototype members,\n // most notably, `__proto__`)\n //\n return str.toLowerCase().toUpperCase();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n// Re-export libraries commonly used in both markdown-it and its plugins,\n// so plugins won't have to depend on them explicitly, which reduces their\n// bundled size (e.g. a browser build).\n//\nexports.lib = {};\nexports.lib.mdurl = require('mdurl');\nexports.lib.ucmicro = require('uc.micro');\n\nexports.assign = assign;\nexports.isString = isString;\nexports.has = has;\nexports.unescapeMd = unescapeMd;\nexports.unescapeAll = unescapeAll;\nexports.isValidEntityCode = isValidEntityCode;\nexports.fromCodePoint = fromCodePoint;\n// exports.replaceEntities = replaceEntities;\nexports.escapeHtml = escapeHtml;\nexports.arrayReplaceAt = arrayReplaceAt;\nexports.isSpace = isSpace;\nexports.isWhiteSpace = isWhiteSpace;\nexports.isMdAsciiPunct = isMdAsciiPunct;\nexports.isPunctChar = isPunctChar;\nexports.escapeRE = escapeRE;\nexports.normalizeReference = normalizeReference;\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","import { visit } from './visitor';\nimport { printBlockString } from './blockString';\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: function SchemaDefinition(_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 directives = _ref26.directives,\n fields = _ref26.fields;\n return join(['interface', name, 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 directives = _ref35.directives,\n fields = _ref35.fields;\n return join(['extend interface', name, 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, separator) {\n return maybeArray ? maybeArray.filter(function (x) {\n return x;\n }).join(separator || '') : '';\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, end) {\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","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\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 invariant(condition, message) {\n var booleanCondition = Boolean(condition);\n\n if (!booleanCondition) {\n throw new Error(message || 'Unexpected invariant triggered');\n }\n}\n","/**\n * Note: This file is autogenerated using \"resources/gen-version.js\" script and\n * automatically updated by \"yarn version\" command.\n */\n\n/**\n * A string containing the version of the GraphQL.js library\n */\nexport var version = '14.7.0';\n/**\n * An object containing the components of the GraphQL.js version string\n */\n\nexport var versionInfo = Object.freeze({\n major: 14,\n minor: 7,\n patch: 0,\n preReleaseTag: null\n});\n","/**\n * Returns true if the value acts like a Promise, i.e. has a \"then\" function,\n * otherwise returns false.\n */\n// eslint-disable-next-line no-redeclare\nexport default function isPromise(value) {\n return Boolean(value && typeof value.then === 'function');\n}\n","/**\n * Given a Path and a key, return a new Path containing the new key.\n */\nexport function addPath(prev, key) {\n return {\n prev: prev,\n key: key\n };\n}\n/**\n * Given a Path, return an Array of the path keys.\n */\n\nexport function pathToArray(path) {\n var flattened = [];\n var curr = path;\n\n while (curr) {\n flattened.push(curr.key);\n curr = curr.prev;\n }\n\n return flattened.reverse();\n}\n","import { GraphQLError } from './GraphQLError';\n/**\n * Given an arbitrary Error, presumably thrown while attempting to execute a\n * GraphQL operation, produce a new GraphQLError aware of the location in the\n * document responsible for the original Error.\n */\n\nexport function locatedError(originalError, nodes, path) {\n // Note: this uses a brand-check to support GraphQL errors originating from\n // other contexts.\n if (originalError && Array.isArray(originalError.path)) {\n return originalError;\n }\n\n return new GraphQLError(originalError && originalError.message, originalError && originalError.nodes || nodes, originalError && originalError.source, originalError && originalError.positions, path, originalError);\n}\n","import { GraphQLError } from '../error/GraphQLError';\n\n/**\n * Extracts the root type of the operation from the schema.\n */\nexport function getOperationRootType(schema, operation) {\n if (operation.operation === 'query') {\n var queryType = schema.getQueryType();\n\n if (!queryType) {\n throw new GraphQLError('Schema does not define the required query root type.', operation);\n }\n\n return queryType;\n }\n\n if (operation.operation === 'mutation') {\n var mutationType = schema.getMutationType();\n\n if (!mutationType) {\n throw new GraphQLError('Schema is not configured for mutations.', operation);\n }\n\n return mutationType;\n }\n\n if (operation.operation === 'subscription') {\n var subscriptionType = schema.getSubscriptionType();\n\n if (!subscriptionType) {\n throw new GraphQLError('Schema is not configured for subscriptions.', operation);\n }\n\n return subscriptionType;\n }\n\n throw new GraphQLError('Can only have query, mutation and subscription operations.', operation);\n}\n","/**\n * Build a string describing the path.\n */\nexport default function printPathArray(path) {\n return path.map(function (key) {\n return typeof key === 'number' ? '[' + key.toString() + ']' : '.' + key;\n }).join('');\n}\n","import objectValues from '../polyfills/objectValues';\nimport keyMap from '../jsutils/keyMap';\nimport inspect from '../jsutils/inspect';\nimport invariant from '../jsutils/invariant';\nimport isInvalid from '../jsutils/isInvalid';\nimport { Kind } from '../language/kinds';\nimport { isScalarType, isEnumType, isInputObjectType, isListType, isNonNullType } from '../type/definition';\n/**\n * Produces a JavaScript value given a GraphQL Value AST.\n *\n * A GraphQL type must be provided, which will be used to interpret different\n * GraphQL Value literals.\n *\n * Returns `undefined` when the value could not be validly coerced according to\n * the provided type.\n *\n * | GraphQL Value | JSON Value |\n * | -------------------- | ------------- |\n * | Input Object | Object |\n * | List | Array |\n * | Boolean | Boolean |\n * | String | String |\n * | Int / Float | Number |\n * | Enum Value | Mixed |\n * | NullValue | null |\n *\n */\n\nexport function valueFromAST(valueNode, type, variables) {\n if (!valueNode) {\n // When there is no node, then there is also no value.\n // Importantly, this is different from returning the value null.\n return;\n }\n\n if (isNonNullType(type)) {\n if (valueNode.kind === Kind.NULL) {\n return; // Invalid: intentionally return no value.\n }\n\n return valueFromAST(valueNode, type.ofType, variables);\n }\n\n if (valueNode.kind === Kind.NULL) {\n // This is explicitly returning the value null.\n return null;\n }\n\n if (valueNode.kind === Kind.VARIABLE) {\n var variableName = valueNode.name.value;\n\n if (!variables || isInvalid(variables[variableName])) {\n // No valid return value.\n return;\n }\n\n var variableValue = variables[variableName];\n\n if (variableValue === null && isNonNullType(type)) {\n return; // Invalid: intentionally return no value.\n } // Note: This does no further checking that this variable is correct.\n // This assumes that this query has been validated and the variable\n // usage here is of the correct type.\n\n\n return variableValue;\n }\n\n if (isListType(type)) {\n var itemType = type.ofType;\n\n if (valueNode.kind === Kind.LIST) {\n var coercedValues = [];\n\n for (var _i2 = 0, _valueNode$values2 = valueNode.values; _i2 < _valueNode$values2.length; _i2++) {\n var itemNode = _valueNode$values2[_i2];\n\n if (isMissingVariable(itemNode, variables)) {\n // If an array contains a missing variable, it is either coerced to\n // null or if the item type is non-null, it considered invalid.\n if (isNonNullType(itemType)) {\n return; // Invalid: intentionally return no value.\n }\n\n coercedValues.push(null);\n } else {\n var itemValue = valueFromAST(itemNode, itemType, variables);\n\n if (isInvalid(itemValue)) {\n return; // Invalid: intentionally return no value.\n }\n\n coercedValues.push(itemValue);\n }\n }\n\n return coercedValues;\n }\n\n var coercedValue = valueFromAST(valueNode, itemType, variables);\n\n if (isInvalid(coercedValue)) {\n return; // Invalid: intentionally return no value.\n }\n\n return [coercedValue];\n }\n\n if (isInputObjectType(type)) {\n if (valueNode.kind !== Kind.OBJECT) {\n return; // Invalid: intentionally return no value.\n }\n\n var coercedObj = Object.create(null);\n var fieldNodes = keyMap(valueNode.fields, function (field) {\n return field.name.value;\n });\n\n for (var _i4 = 0, _objectValues2 = objectValues(type.getFields()); _i4 < _objectValues2.length; _i4++) {\n var field = _objectValues2[_i4];\n var fieldNode = fieldNodes[field.name];\n\n if (!fieldNode || isMissingVariable(fieldNode.value, variables)) {\n if (field.defaultValue !== undefined) {\n coercedObj[field.name] = field.defaultValue;\n } else if (isNonNullType(field.type)) {\n return; // Invalid: intentionally return no value.\n }\n\n continue;\n }\n\n var fieldValue = valueFromAST(fieldNode.value, field.type, variables);\n\n if (isInvalid(fieldValue)) {\n return; // Invalid: intentionally return no value.\n }\n\n coercedObj[field.name] = fieldValue;\n }\n\n return coercedObj;\n }\n\n if (isEnumType(type)) {\n if (valueNode.kind !== Kind.ENUM) {\n return; // Invalid: intentionally return no value.\n }\n\n var enumValue = type.getValue(valueNode.value);\n\n if (!enumValue) {\n return; // Invalid: intentionally return no value.\n }\n\n return enumValue.value;\n }\n\n /* istanbul ignore else */\n if (isScalarType(type)) {\n // Scalars fulfill parsing a literal value via parseLiteral().\n // Invalid values represent a failure to parse correctly, in which case\n // no value is returned.\n var result;\n\n try {\n result = type.parseLiteral(valueNode, variables);\n } catch (_error) {\n return; // Invalid: intentionally return no value.\n }\n\n if (isInvalid(result)) {\n return; // Invalid: intentionally return no value.\n }\n\n return result;\n } // Not reachable. All possible input types have been considered.\n\n\n /* istanbul ignore next */\n invariant(false, 'Unexpected input type: ' + inspect(type));\n} // Returns true if the provided valueNode is a variable which is not defined\n// in the set of variables.\n\nfunction isMissingVariable(valueNode, variables) {\n return valueNode.kind === Kind.VARIABLE && (!variables || isInvalid(variables[valueNode.name.value]));\n}\n","import { forEach, isCollection } from 'iterall';\nimport objectValues from '../polyfills/objectValues';\nimport inspect from '../jsutils/inspect';\nimport invariant from '../jsutils/invariant';\nimport didYouMean from '../jsutils/didYouMean';\nimport isObjectLike from '../jsutils/isObjectLike';\nimport suggestionList from '../jsutils/suggestionList';\nimport printPathArray from '../jsutils/printPathArray';\nimport { addPath, pathToArray } from '../jsutils/Path';\nimport { GraphQLError } from '../error/GraphQLError';\nimport { isScalarType, isEnumType, isInputObjectType, isListType, isNonNullType } from '../type/definition';\n\n/**\n * Coerces a JavaScript value given a GraphQL Input Type.\n */\nexport function coerceInputValue(inputValue, type) {\n var onError = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultOnError;\n return coerceInputValueImpl(inputValue, type, onError);\n}\n\nfunction defaultOnError(path, invalidValue, error) {\n var errorPrefix = 'Invalid value ' + inspect(invalidValue);\n\n if (path.length > 0) {\n errorPrefix += \" at \\\"value\".concat(printPathArray(path), \"\\\": \");\n }\n\n error.message = errorPrefix + ': ' + error.message;\n throw error;\n}\n\nfunction coerceInputValueImpl(inputValue, type, onError, path) {\n if (isNonNullType(type)) {\n if (inputValue != null) {\n return coerceInputValueImpl(inputValue, type.ofType, onError, path);\n }\n\n onError(pathToArray(path), inputValue, new GraphQLError(\"Expected non-nullable type \".concat(inspect(type), \" not to be null.\")));\n return;\n }\n\n if (inputValue == null) {\n // Explicitly return the value null.\n return null;\n }\n\n if (isListType(type)) {\n var itemType = type.ofType;\n\n if (isCollection(inputValue)) {\n var coercedValue = [];\n forEach(inputValue, function (itemValue, index) {\n coercedValue.push(coerceInputValueImpl(itemValue, itemType, onError, addPath(path, index)));\n });\n return coercedValue;\n } // Lists accept a non-list value as a list of one.\n\n\n return [coerceInputValueImpl(inputValue, itemType, onError, path)];\n }\n\n if (isInputObjectType(type)) {\n if (!isObjectLike(inputValue)) {\n onError(pathToArray(path), inputValue, new GraphQLError(\"Expected type \".concat(type.name, \" to be an object.\")));\n return;\n }\n\n var _coercedValue = {};\n var fieldDefs = type.getFields();\n\n for (var _i2 = 0, _objectValues2 = objectValues(fieldDefs); _i2 < _objectValues2.length; _i2++) {\n var field = _objectValues2[_i2];\n var fieldValue = inputValue[field.name];\n\n if (fieldValue === undefined) {\n if (field.defaultValue !== undefined) {\n _coercedValue[field.name] = field.defaultValue;\n } else if (isNonNullType(field.type)) {\n var typeStr = inspect(field.type);\n onError(pathToArray(path), inputValue, new GraphQLError(\"Field \".concat(field.name, \" of required type \").concat(typeStr, \" was not provided.\")));\n }\n\n continue;\n }\n\n _coercedValue[field.name] = coerceInputValueImpl(fieldValue, field.type, onError, addPath(path, field.name));\n } // Ensure every provided field is defined.\n\n\n for (var _i4 = 0, _Object$keys2 = Object.keys(inputValue); _i4 < _Object$keys2.length; _i4++) {\n var fieldName = _Object$keys2[_i4];\n\n if (!fieldDefs[fieldName]) {\n var suggestions = suggestionList(fieldName, Object.keys(type.getFields()));\n onError(pathToArray(path), inputValue, new GraphQLError(\"Field \\\"\".concat(fieldName, \"\\\" is not defined by type \").concat(type.name, \".\") + didYouMean(suggestions)));\n }\n }\n\n return _coercedValue;\n }\n\n if (isScalarType(type)) {\n var parseResult; // Scalars determine if a input value is valid via parseValue(), which can\n // throw to indicate failure. If it throws, maintain a reference to\n // the original error.\n\n try {\n parseResult = type.parseValue(inputValue);\n } catch (error) {\n onError(pathToArray(path), inputValue, new GraphQLError(\"Expected type \".concat(type.name, \". \") + error.message, undefined, undefined, undefined, undefined, error));\n return;\n }\n\n if (parseResult === undefined) {\n onError(pathToArray(path), inputValue, new GraphQLError(\"Expected type \".concat(type.name, \".\")));\n }\n\n return parseResult;\n }\n\n /* istanbul ignore else */\n if (isEnumType(type)) {\n if (typeof inputValue === 'string') {\n var enumValue = type.getValue(inputValue);\n\n if (enumValue) {\n return enumValue.value;\n }\n }\n\n var _suggestions = suggestionList(String(inputValue), type.getValues().map(function (enumValue) {\n return enumValue.name;\n }));\n\n onError(pathToArray(path), inputValue, new GraphQLError(\"Expected type \".concat(type.name, \".\") + didYouMean(_suggestions)));\n return;\n } // Not reachable. All possible input types have been considered.\n\n\n /* istanbul ignore next */\n invariant(false, 'Unexpected input type: ' + inspect(type));\n}\n","import find from '../polyfills/find';\nimport keyMap from '../jsutils/keyMap';\nimport inspect from '../jsutils/inspect';\nimport printPathArray from '../jsutils/printPathArray';\nimport { GraphQLError } from '../error/GraphQLError';\nimport { Kind } from '../language/kinds';\nimport { print } from '../language/printer';\nimport { isInputType, isNonNullType } from '../type/definition';\nimport { typeFromAST } from '../utilities/typeFromAST';\nimport { valueFromAST } from '../utilities/valueFromAST';\nimport { coerceInputValue } from '../utilities/coerceInputValue';\n\n/**\n * Prepares an object map of variableValues of the correct type based on the\n * provided variable definitions and arbitrary input. If the input cannot be\n * parsed to match the variable definitions, a GraphQLError will be thrown.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n */\nexport function getVariableValues(schema, varDefNodes, inputs, options) {\n var maxErrors = options && options.maxErrors;\n var errors = [];\n\n try {\n var coerced = coerceVariableValues(schema, varDefNodes, inputs, function (error) {\n if (maxErrors != null && errors.length >= maxErrors) {\n throw new GraphQLError('Too many errors processing variables, error limit reached. Execution aborted.');\n }\n\n errors.push(error);\n });\n\n if (errors.length === 0) {\n return {\n coerced: coerced\n };\n }\n } catch (error) {\n errors.push(error);\n }\n\n return {\n errors: errors\n };\n}\n\nfunction coerceVariableValues(schema, varDefNodes, inputs, onError) {\n var coercedValues = {};\n\n var _loop = function _loop(_i2) {\n var varDefNode = varDefNodes[_i2];\n var varName = varDefNode.variable.name.value;\n var varType = typeFromAST(schema, varDefNode.type);\n\n if (!isInputType(varType)) {\n // Must use input types for variables. This should be caught during\n // validation, however is checked again here for safety.\n var varTypeStr = print(varDefNode.type);\n onError(new GraphQLError(\"Variable \\\"$\".concat(varName, \"\\\" expected value of type \\\"\").concat(varTypeStr, \"\\\" which cannot be used as an input type.\"), varDefNode.type));\n return \"continue\";\n }\n\n if (!hasOwnProperty(inputs, varName)) {\n if (varDefNode.defaultValue) {\n coercedValues[varName] = valueFromAST(varDefNode.defaultValue, varType);\n } else if (isNonNullType(varType)) {\n var _varTypeStr = inspect(varType);\n\n onError(new GraphQLError(\"Variable \\\"$\".concat(varName, \"\\\" of required type \\\"\").concat(_varTypeStr, \"\\\" was not provided.\"), varDefNode));\n }\n\n return \"continue\";\n }\n\n var value = inputs[varName];\n\n if (value === null && isNonNullType(varType)) {\n var _varTypeStr2 = inspect(varType);\n\n onError(new GraphQLError(\"Variable \\\"$\".concat(varName, \"\\\" of non-null type \\\"\").concat(_varTypeStr2, \"\\\" must not be null.\"), varDefNode));\n return \"continue\";\n }\n\n coercedValues[varName] = coerceInputValue(value, varType, function (path, invalidValue, error) {\n var prefix = \"Variable \\\"$\".concat(varName, \"\\\" got invalid value \") + inspect(invalidValue);\n\n if (path.length > 0) {\n prefix += \" at \\\"\".concat(varName).concat(printPathArray(path), \"\\\"\");\n }\n\n onError(new GraphQLError(prefix + '; ' + error.message, varDefNode, undefined, undefined, undefined, error.originalError));\n });\n };\n\n for (var _i2 = 0; _i2 < varDefNodes.length; _i2++) {\n var _ret = _loop(_i2);\n\n if (_ret === \"continue\") continue;\n }\n\n return coercedValues;\n}\n/**\n * Prepares an object map of argument values given a list of argument\n * definitions and list of argument AST nodes.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n */\n\n\nexport function getArgumentValues(def, node, variableValues) {\n var coercedValues = {};\n var argNodeMap = keyMap(node.arguments || [], function (arg) {\n return arg.name.value;\n });\n\n for (var _i4 = 0, _def$args2 = def.args; _i4 < _def$args2.length; _i4++) {\n var argDef = _def$args2[_i4];\n var name = argDef.name;\n var argType = argDef.type;\n var argumentNode = argNodeMap[name];\n\n if (!argumentNode) {\n if (argDef.defaultValue !== undefined) {\n coercedValues[name] = argDef.defaultValue;\n } else if (isNonNullType(argType)) {\n throw new GraphQLError(\"Argument \\\"\".concat(name, \"\\\" of required type \\\"\").concat(inspect(argType), \"\\\" \") + 'was not provided.', node);\n }\n\n continue;\n }\n\n var valueNode = argumentNode.value;\n var isNull = valueNode.kind === Kind.NULL;\n\n if (valueNode.kind === Kind.VARIABLE) {\n var variableName = valueNode.name.value;\n\n if (variableValues == null || !hasOwnProperty(variableValues, variableName)) {\n if (argDef.defaultValue !== undefined) {\n coercedValues[name] = argDef.defaultValue;\n } else if (isNonNullType(argType)) {\n throw new GraphQLError(\"Argument \\\"\".concat(name, \"\\\" of required type \\\"\").concat(inspect(argType), \"\\\" \") + \"was provided the variable \\\"$\".concat(variableName, \"\\\" which was not provided a runtime value.\"), valueNode);\n }\n\n continue;\n }\n\n isNull = variableValues[variableName] == null;\n }\n\n if (isNull && isNonNullType(argType)) {\n throw new GraphQLError(\"Argument \\\"\".concat(name, \"\\\" of non-null type \\\"\").concat(inspect(argType), \"\\\" \") + 'must not be null.', valueNode);\n }\n\n var coercedValue = valueFromAST(valueNode, argType, variableValues);\n\n if (coercedValue === undefined) {\n // Note: ValuesOfCorrectType validation should catch this before\n // execution. This is a runtime check to ensure execution does not\n // continue with an invalid argument value.\n throw new GraphQLError(\"Argument \\\"\".concat(name, \"\\\" has invalid value \").concat(print(valueNode), \".\"), valueNode);\n }\n\n coercedValues[name] = coercedValue;\n }\n\n return coercedValues;\n}\n/**\n * Prepares an object map of argument values given a directive definition\n * and a AST node which may contain directives. Optionally also accepts a map\n * of variable values.\n *\n * If the directive does not exist on the node, returns undefined.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n */\n\nexport function getDirectiveValues(directiveDef, node, variableValues) {\n var directiveNode = node.directives && find(node.directives, function (directive) {\n return directive.name.value === directiveDef.name;\n });\n\n if (directiveNode) {\n return getArgumentValues(directiveDef, directiveNode, variableValues);\n }\n}\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n","import { forEach, isCollection } from 'iterall';\nimport inspect from '../jsutils/inspect';\nimport memoize3 from '../jsutils/memoize3';\nimport invariant from '../jsutils/invariant';\nimport devAssert from '../jsutils/devAssert';\nimport isInvalid from '../jsutils/isInvalid';\nimport isNullish from '../jsutils/isNullish';\nimport isPromise from '../jsutils/isPromise';\nimport isObjectLike from '../jsutils/isObjectLike';\nimport promiseReduce from '../jsutils/promiseReduce';\nimport promiseForObject from '../jsutils/promiseForObject';\nimport { addPath, pathToArray } from '../jsutils/Path';\nimport { GraphQLError } from '../error/GraphQLError';\nimport { locatedError } from '../error/locatedError';\nimport { Kind } from '../language/kinds';\nimport { assertValidSchema } from '../type/validate';\nimport { SchemaMetaFieldDef, TypeMetaFieldDef, TypeNameMetaFieldDef } from '../type/introspection';\nimport { GraphQLIncludeDirective, GraphQLSkipDirective } from '../type/directives';\nimport { isObjectType, isAbstractType, isLeafType, isListType, isNonNullType } from '../type/definition';\nimport { typeFromAST } from '../utilities/typeFromAST';\nimport { getOperationRootType } from '../utilities/getOperationRootType';\nimport { getVariableValues, getArgumentValues, getDirectiveValues } from './values';\n/**\n * Terminology\n *\n * \"Definitions\" are the generic name for top-level statements in the document.\n * Examples of this include:\n * 1) Operations (such as a query)\n * 2) Fragments\n *\n * \"Operations\" are a generic name for requests in the document.\n * Examples of this include:\n * 1) query,\n * 2) mutation\n *\n * \"Selections\" are the definitions that can appear legally and at\n * single level of the query. These include:\n * 1) field references e.g \"a\"\n * 2) fragment \"spreads\" e.g. \"...c\"\n * 3) inline fragment \"spreads\" e.g. \"...on Type { a }\"\n */\n\n/**\n * Data that must be available at all points during query execution.\n *\n * Namely, schema of the type system that is currently executing,\n * and the fragments defined in the query document\n */\n\nexport function execute(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {\n /* eslint-enable no-redeclare */\n // Extract arguments from object args if provided.\n return arguments.length === 1 ? executeImpl(argsOrSchema) : executeImpl({\n schema: argsOrSchema,\n document: document,\n rootValue: rootValue,\n contextValue: contextValue,\n variableValues: variableValues,\n operationName: operationName,\n fieldResolver: fieldResolver,\n typeResolver: typeResolver\n });\n}\n\nfunction executeImpl(args) {\n var schema = args.schema,\n document = args.document,\n rootValue = args.rootValue,\n contextValue = args.contextValue,\n variableValues = args.variableValues,\n operationName = args.operationName,\n fieldResolver = args.fieldResolver,\n typeResolver = args.typeResolver; // If arguments are missing or incorrect, throw an error.\n\n assertValidExecutionArguments(schema, document, variableValues); // If a valid execution context cannot be created due to incorrect arguments,\n // a \"Response\" with only errors is returned.\n\n var exeContext = buildExecutionContext(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver); // Return early errors if execution context failed.\n\n if (Array.isArray(exeContext)) {\n return {\n errors: exeContext\n };\n } // Return a Promise that will eventually resolve to the data described by\n // The \"Response\" section of the GraphQL specification.\n //\n // If errors are encountered while executing a GraphQL field, only that\n // field and its descendants will be omitted, and sibling fields will still\n // be executed. An execution which encounters errors will still result in a\n // resolved Promise.\n\n\n var data = executeOperation(exeContext, exeContext.operation, rootValue);\n return buildResponse(exeContext, data);\n}\n/**\n * Given a completed execution context and data, build the { errors, data }\n * response defined by the \"Response\" section of the GraphQL specification.\n */\n\n\nfunction buildResponse(exeContext, data) {\n if (isPromise(data)) {\n return data.then(function (resolved) {\n return buildResponse(exeContext, resolved);\n });\n }\n\n return exeContext.errors.length === 0 ? {\n data: data\n } : {\n errors: exeContext.errors,\n data: data\n };\n}\n/**\n * Essential assertions before executing to provide developer feedback for\n * improper use of the GraphQL library.\n */\n\n\nexport function assertValidExecutionArguments(schema, document, rawVariableValues) {\n document || devAssert(0, 'Must provide document'); // If the schema used for execution is invalid, throw an error.\n\n assertValidSchema(schema); // Variables, if provided, must be an object.\n\n rawVariableValues == null || isObjectLike(rawVariableValues) || devAssert(0, 'Variables must be provided as an Object where each property is a variable value. Perhaps look to see if an unparsed JSON string was provided.');\n}\n/**\n * Constructs a ExecutionContext object from the arguments passed to\n * execute, which we will pass throughout the other execution methods.\n *\n * Throws a GraphQLError if a valid execution context cannot be created.\n */\n\nexport function buildExecutionContext(schema, document, rootValue, contextValue, rawVariableValues, operationName, fieldResolver, typeResolver) {\n var operation;\n var hasMultipleAssumedOperations = false;\n var fragments = Object.create(null);\n\n for (var _i2 = 0, _document$definitions2 = document.definitions; _i2 < _document$definitions2.length; _i2++) {\n var definition = _document$definitions2[_i2];\n\n switch (definition.kind) {\n case Kind.OPERATION_DEFINITION:\n if (!operationName && operation) {\n hasMultipleAssumedOperations = true;\n } else if (!operationName || definition.name && definition.name.value === operationName) {\n operation = definition;\n }\n\n break;\n\n case Kind.FRAGMENT_DEFINITION:\n fragments[definition.name.value] = definition;\n break;\n }\n }\n\n if (!operation) {\n if (operationName) {\n return [new GraphQLError(\"Unknown operation named \\\"\".concat(operationName, \"\\\".\"))];\n }\n\n return [new GraphQLError('Must provide an operation.')];\n }\n\n if (hasMultipleAssumedOperations) {\n return [new GraphQLError('Must provide operation name if query contains multiple operations.')];\n }\n\n var coercedVariableValues = getVariableValues(schema, operation.variableDefinitions || [], rawVariableValues || {}, {\n maxErrors: 50\n });\n\n if (coercedVariableValues.errors) {\n return coercedVariableValues.errors;\n }\n\n return {\n schema: schema,\n fragments: fragments,\n rootValue: rootValue,\n contextValue: contextValue,\n operation: operation,\n variableValues: coercedVariableValues.coerced,\n fieldResolver: fieldResolver || defaultFieldResolver,\n typeResolver: typeResolver || defaultTypeResolver,\n errors: []\n };\n}\n/**\n * Implements the \"Evaluating operations\" section of the spec.\n */\n\nfunction executeOperation(exeContext, operation, rootValue) {\n var type = getOperationRootType(exeContext.schema, operation);\n var fields = collectFields(exeContext, type, operation.selectionSet, Object.create(null), Object.create(null));\n var path = undefined; // Errors from sub-fields of a NonNull type may propagate to the top level,\n // at which point we still log the error and null the parent field, which\n // in this case is the entire response.\n //\n // Similar to completeValueCatchingError.\n\n try {\n var result = operation.operation === 'mutation' ? executeFieldsSerially(exeContext, type, rootValue, path, fields) : executeFields(exeContext, type, rootValue, path, fields);\n\n if (isPromise(result)) {\n return result.then(undefined, function (error) {\n exeContext.errors.push(error);\n return Promise.resolve(null);\n });\n }\n\n return result;\n } catch (error) {\n exeContext.errors.push(error);\n return null;\n }\n}\n/**\n * Implements the \"Evaluating selection sets\" section of the spec\n * for \"write\" mode.\n */\n\n\nfunction executeFieldsSerially(exeContext, parentType, sourceValue, path, fields) {\n return promiseReduce(Object.keys(fields), function (results, responseName) {\n var fieldNodes = fields[responseName];\n var fieldPath = addPath(path, responseName);\n var result = resolveField(exeContext, parentType, sourceValue, fieldNodes, fieldPath);\n\n if (result === undefined) {\n return results;\n }\n\n if (isPromise(result)) {\n return result.then(function (resolvedResult) {\n results[responseName] = resolvedResult;\n return results;\n });\n }\n\n results[responseName] = result;\n return results;\n }, Object.create(null));\n}\n/**\n * Implements the \"Evaluating selection sets\" section of the spec\n * for \"read\" mode.\n */\n\n\nfunction executeFields(exeContext, parentType, sourceValue, path, fields) {\n var results = Object.create(null);\n var containsPromise = false;\n\n for (var _i4 = 0, _Object$keys2 = Object.keys(fields); _i4 < _Object$keys2.length; _i4++) {\n var responseName = _Object$keys2[_i4];\n var fieldNodes = fields[responseName];\n var fieldPath = addPath(path, responseName);\n var result = resolveField(exeContext, parentType, sourceValue, fieldNodes, fieldPath);\n\n if (result !== undefined) {\n results[responseName] = result;\n\n if (!containsPromise && isPromise(result)) {\n containsPromise = true;\n }\n }\n } // If there are no promises, we can just return the object\n\n\n if (!containsPromise) {\n return results;\n } // Otherwise, results is a map from field name to the result of resolving that\n // field, which is possibly a promise. Return a promise that will return this\n // same map, but with any promises replaced with the values they resolved to.\n\n\n return promiseForObject(results);\n}\n/**\n * Given a selectionSet, adds all of the fields in that selection to\n * the passed in map of fields, and returns it at the end.\n *\n * CollectFields requires the \"runtime type\" of an object. For a field which\n * returns an Interface or Union type, the \"runtime type\" will be the actual\n * Object type returned by that field.\n */\n\n\nexport function collectFields(exeContext, runtimeType, selectionSet, fields, visitedFragmentNames) {\n for (var _i6 = 0, _selectionSet$selecti2 = selectionSet.selections; _i6 < _selectionSet$selecti2.length; _i6++) {\n var selection = _selectionSet$selecti2[_i6];\n\n switch (selection.kind) {\n case Kind.FIELD:\n {\n if (!shouldIncludeNode(exeContext, selection)) {\n continue;\n }\n\n var name = getFieldEntryKey(selection);\n\n if (!fields[name]) {\n fields[name] = [];\n }\n\n fields[name].push(selection);\n break;\n }\n\n case Kind.INLINE_FRAGMENT:\n {\n if (!shouldIncludeNode(exeContext, selection) || !doesFragmentConditionMatch(exeContext, selection, runtimeType)) {\n continue;\n }\n\n collectFields(exeContext, runtimeType, selection.selectionSet, fields, visitedFragmentNames);\n break;\n }\n\n case Kind.FRAGMENT_SPREAD:\n {\n var fragName = selection.name.value;\n\n if (visitedFragmentNames[fragName] || !shouldIncludeNode(exeContext, selection)) {\n continue;\n }\n\n visitedFragmentNames[fragName] = true;\n var fragment = exeContext.fragments[fragName];\n\n if (!fragment || !doesFragmentConditionMatch(exeContext, fragment, runtimeType)) {\n continue;\n }\n\n collectFields(exeContext, runtimeType, fragment.selectionSet, fields, visitedFragmentNames);\n break;\n }\n }\n }\n\n return fields;\n}\n/**\n * Determines if a field should be included based on the @include and @skip\n * directives, where @skip has higher precedence than @include.\n */\n\nfunction shouldIncludeNode(exeContext, node) {\n var skip = getDirectiveValues(GraphQLSkipDirective, node, exeContext.variableValues);\n\n if (skip && skip.if === true) {\n return false;\n }\n\n var include = getDirectiveValues(GraphQLIncludeDirective, node, exeContext.variableValues);\n\n if (include && include.if === false) {\n return false;\n }\n\n return true;\n}\n/**\n * Determines if a fragment is applicable to the given type.\n */\n\n\nfunction doesFragmentConditionMatch(exeContext, fragment, type) {\n var typeConditionNode = fragment.typeCondition;\n\n if (!typeConditionNode) {\n return true;\n }\n\n var conditionalType = typeFromAST(exeContext.schema, typeConditionNode);\n\n if (conditionalType === type) {\n return true;\n }\n\n if (isAbstractType(conditionalType)) {\n return exeContext.schema.isPossibleType(conditionalType, type);\n }\n\n return false;\n}\n/**\n * Implements the logic to compute the key of a given field's entry\n */\n\n\nfunction getFieldEntryKey(node) {\n return node.alias ? node.alias.value : node.name.value;\n}\n/**\n * Resolves the field on the given source object. In particular, this\n * figures out the value that the field returns by calling its resolve function,\n * then calls completeValue to complete promises, serialize scalars, or execute\n * the sub-selection-set for objects.\n */\n\n\nfunction resolveField(exeContext, parentType, source, fieldNodes, path) {\n var fieldNode = fieldNodes[0];\n var fieldName = fieldNode.name.value;\n var fieldDef = getFieldDef(exeContext.schema, parentType, fieldName);\n\n if (!fieldDef) {\n return;\n }\n\n var resolveFn = fieldDef.resolve || exeContext.fieldResolver;\n var info = buildResolveInfo(exeContext, fieldDef, fieldNodes, parentType, path); // Get the resolve function, regardless of if its result is normal\n // or abrupt (error).\n\n var result = resolveFieldValueOrError(exeContext, fieldDef, fieldNodes, resolveFn, source, info);\n return completeValueCatchingError(exeContext, fieldDef.type, fieldNodes, info, path, result);\n}\n\nexport function buildResolveInfo(exeContext, fieldDef, fieldNodes, parentType, path) {\n // The resolve function's optional fourth argument is a collection of\n // information about the current execution state.\n return {\n fieldName: fieldDef.name,\n fieldNodes: fieldNodes,\n returnType: fieldDef.type,\n parentType: parentType,\n path: path,\n schema: exeContext.schema,\n fragments: exeContext.fragments,\n rootValue: exeContext.rootValue,\n operation: exeContext.operation,\n variableValues: exeContext.variableValues\n };\n} // Isolates the \"ReturnOrAbrupt\" behavior to not de-opt the `resolveField`\n// function. Returns the result of resolveFn or the abrupt-return Error object.\n\nexport function resolveFieldValueOrError(exeContext, fieldDef, fieldNodes, resolveFn, source, info) {\n try {\n // Build a JS object of arguments from the field.arguments AST, using the\n // variables scope to fulfill any variable references.\n // TODO: find a way to memoize, in case this field is within a List type.\n var args = getArgumentValues(fieldDef, fieldNodes[0], exeContext.variableValues); // The resolve function's optional third argument is a context value that\n // is provided to every resolve function within an execution. It is commonly\n // used to represent an authenticated user, or request-specific caches.\n\n var _contextValue = exeContext.contextValue;\n var result = resolveFn(source, args, _contextValue, info);\n return isPromise(result) ? result.then(undefined, asErrorInstance) : result;\n } catch (error) {\n return asErrorInstance(error);\n }\n} // Sometimes a non-error is thrown, wrap it as an Error instance to ensure a\n// consistent Error interface.\n\nfunction asErrorInstance(error) {\n if (error instanceof Error) {\n return error;\n }\n\n return new Error('Unexpected error value: ' + inspect(error));\n} // This is a small wrapper around completeValue which detects and logs errors\n// in the execution context.\n\n\nfunction completeValueCatchingError(exeContext, returnType, fieldNodes, info, path, result) {\n try {\n var completed;\n\n if (isPromise(result)) {\n completed = result.then(function (resolved) {\n return completeValue(exeContext, returnType, fieldNodes, info, path, resolved);\n });\n } else {\n completed = completeValue(exeContext, returnType, fieldNodes, info, path, result);\n }\n\n if (isPromise(completed)) {\n // Note: we don't rely on a `catch` method, but we do expect \"thenable\"\n // to take a second callback for the error case.\n return completed.then(undefined, function (error) {\n return handleFieldError(error, fieldNodes, path, returnType, exeContext);\n });\n }\n\n return completed;\n } catch (error) {\n return handleFieldError(error, fieldNodes, path, returnType, exeContext);\n }\n}\n\nfunction handleFieldError(rawError, fieldNodes, path, returnType, exeContext) {\n var error = locatedError(asErrorInstance(rawError), fieldNodes, pathToArray(path)); // If the field type is non-nullable, then it is resolved without any\n // protection from errors, however it still properly locates the error.\n\n if (isNonNullType(returnType)) {\n throw error;\n } // Otherwise, error protection is applied, logging the error and resolving\n // a null value for this field if one is encountered.\n\n\n exeContext.errors.push(error);\n return null;\n}\n/**\n * Implements the instructions for completeValue as defined in the\n * \"Field entries\" section of the spec.\n *\n * If the field type is Non-Null, then this recursively completes the value\n * for the inner type. It throws a field error if that completion returns null,\n * as per the \"Nullability\" section of the spec.\n *\n * If the field type is a List, then this recursively completes the value\n * for the inner type on each item in the list.\n *\n * If the field type is a Scalar or Enum, ensures the completed value is a legal\n * value of the type by calling the `serialize` method of GraphQL type\n * definition.\n *\n * If the field is an abstract type, determine the runtime type of the value\n * and then complete based on that type\n *\n * Otherwise, the field type expects a sub-selection set, and will complete the\n * value by evaluating all sub-selections.\n */\n\n\nfunction completeValue(exeContext, returnType, fieldNodes, info, path, result) {\n // If result is an Error, throw a located error.\n if (result instanceof Error) {\n throw result;\n } // If field type is NonNull, complete for inner type, and throw field error\n // if result is null.\n\n\n if (isNonNullType(returnType)) {\n var completed = completeValue(exeContext, returnType.ofType, fieldNodes, info, path, result);\n\n if (completed === null) {\n throw new Error(\"Cannot return null for non-nullable field \".concat(info.parentType.name, \".\").concat(info.fieldName, \".\"));\n }\n\n return completed;\n } // If result value is null-ish (null, undefined, or NaN) then return null.\n\n\n if (isNullish(result)) {\n return null;\n } // If field type is List, complete each item in the list with the inner type\n\n\n if (isListType(returnType)) {\n return completeListValue(exeContext, returnType, fieldNodes, info, path, result);\n } // If field type is a leaf type, Scalar or Enum, serialize to a valid value,\n // returning null if serialization is not possible.\n\n\n if (isLeafType(returnType)) {\n return completeLeafValue(returnType, result);\n } // If field type is an abstract type, Interface or Union, determine the\n // runtime Object type and complete for that type.\n\n\n if (isAbstractType(returnType)) {\n return completeAbstractValue(exeContext, returnType, fieldNodes, info, path, result);\n } // If field type is Object, execute and complete all sub-selections.\n\n\n /* istanbul ignore else */\n if (isObjectType(returnType)) {\n return completeObjectValue(exeContext, returnType, fieldNodes, info, path, result);\n } // Not reachable. All possible output types have been considered.\n\n\n /* istanbul ignore next */\n invariant(false, 'Cannot complete value of unexpected output type: ' + inspect(returnType));\n}\n/**\n * Complete a list value by completing each item in the list with the\n * inner type\n */\n\n\nfunction completeListValue(exeContext, returnType, fieldNodes, info, path, result) {\n if (!isCollection(result)) {\n throw new GraphQLError(\"Expected Iterable, but did not find one for field \".concat(info.parentType.name, \".\").concat(info.fieldName, \".\"));\n } // This is specified as a simple map, however we're optimizing the path\n // where the list contains no Promises by avoiding creating another Promise.\n\n\n var itemType = returnType.ofType;\n var containsPromise = false;\n var completedResults = [];\n forEach(result, function (item, index) {\n // No need to modify the info object containing the path,\n // since from here on it is not ever accessed by resolver functions.\n var fieldPath = addPath(path, index);\n var completedItem = completeValueCatchingError(exeContext, itemType, fieldNodes, info, fieldPath, item);\n\n if (!containsPromise && isPromise(completedItem)) {\n containsPromise = true;\n }\n\n completedResults.push(completedItem);\n });\n return containsPromise ? Promise.all(completedResults) : completedResults;\n}\n/**\n * Complete a Scalar or Enum by serializing to a valid value, returning\n * null if serialization is not possible.\n */\n\n\nfunction completeLeafValue(returnType, result) {\n var serializedResult = returnType.serialize(result);\n\n if (isInvalid(serializedResult)) {\n throw new Error(\"Expected a value of type \\\"\".concat(inspect(returnType), \"\\\" but \") + \"received: \".concat(inspect(result)));\n }\n\n return serializedResult;\n}\n/**\n * Complete a value of an abstract type by determining the runtime object type\n * of that value, then complete the value for that type.\n */\n\n\nfunction completeAbstractValue(exeContext, returnType, fieldNodes, info, path, result) {\n var resolveTypeFn = returnType.resolveType || exeContext.typeResolver;\n var contextValue = exeContext.contextValue;\n var runtimeType = resolveTypeFn(result, contextValue, info, returnType);\n\n if (isPromise(runtimeType)) {\n return runtimeType.then(function (resolvedRuntimeType) {\n return completeObjectValue(exeContext, ensureValidRuntimeType(resolvedRuntimeType, exeContext, returnType, fieldNodes, info, result), fieldNodes, info, path, result);\n });\n }\n\n return completeObjectValue(exeContext, ensureValidRuntimeType(runtimeType, exeContext, returnType, fieldNodes, info, result), fieldNodes, info, path, result);\n}\n\nfunction ensureValidRuntimeType(runtimeTypeOrName, exeContext, returnType, fieldNodes, info, result) {\n var runtimeType = typeof runtimeTypeOrName === 'string' ? exeContext.schema.getType(runtimeTypeOrName) : runtimeTypeOrName;\n\n if (!isObjectType(runtimeType)) {\n throw new GraphQLError(\"Abstract type \".concat(returnType.name, \" must resolve to an Object type at runtime for field \").concat(info.parentType.name, \".\").concat(info.fieldName, \" with \") + \"value \".concat(inspect(result), \", received \\\"\").concat(inspect(runtimeType), \"\\\". \") + \"Either the \".concat(returnType.name, \" type should provide a \\\"resolveType\\\" function or each possible type should provide an \\\"isTypeOf\\\" function.\"), fieldNodes);\n }\n\n if (!exeContext.schema.isPossibleType(returnType, runtimeType)) {\n throw new GraphQLError(\"Runtime Object type \\\"\".concat(runtimeType.name, \"\\\" is not a possible type for \\\"\").concat(returnType.name, \"\\\".\"), fieldNodes);\n }\n\n return runtimeType;\n}\n/**\n * Complete an Object value by executing all sub-selections.\n */\n\n\nfunction completeObjectValue(exeContext, returnType, fieldNodes, info, path, result) {\n // If there is an isTypeOf predicate function, call it with the\n // current result. If isTypeOf returns false, then raise an error rather\n // than continuing execution.\n if (returnType.isTypeOf) {\n var isTypeOf = returnType.isTypeOf(result, exeContext.contextValue, info);\n\n if (isPromise(isTypeOf)) {\n return isTypeOf.then(function (resolvedIsTypeOf) {\n if (!resolvedIsTypeOf) {\n throw invalidReturnTypeError(returnType, result, fieldNodes);\n }\n\n return collectAndExecuteSubfields(exeContext, returnType, fieldNodes, path, result);\n });\n }\n\n if (!isTypeOf) {\n throw invalidReturnTypeError(returnType, result, fieldNodes);\n }\n }\n\n return collectAndExecuteSubfields(exeContext, returnType, fieldNodes, path, result);\n}\n\nfunction invalidReturnTypeError(returnType, result, fieldNodes) {\n return new GraphQLError(\"Expected value of type \\\"\".concat(returnType.name, \"\\\" but got: \").concat(inspect(result), \".\"), fieldNodes);\n}\n\nfunction collectAndExecuteSubfields(exeContext, returnType, fieldNodes, path, result) {\n // Collect sub-fields to execute to complete this value.\n var subFieldNodes = collectSubfields(exeContext, returnType, fieldNodes);\n return executeFields(exeContext, returnType, result, path, subFieldNodes);\n}\n/**\n * A memoized collection of relevant subfields with regard to the return\n * type. Memoizing ensures the subfields are not repeatedly calculated, which\n * saves overhead when resolving lists of values.\n */\n\n\nvar collectSubfields = memoize3(_collectSubfields);\n\nfunction _collectSubfields(exeContext, returnType, fieldNodes) {\n var subFieldNodes = Object.create(null);\n var visitedFragmentNames = Object.create(null);\n\n for (var _i8 = 0; _i8 < fieldNodes.length; _i8++) {\n var node = fieldNodes[_i8];\n\n if (node.selectionSet) {\n subFieldNodes = collectFields(exeContext, returnType, node.selectionSet, subFieldNodes, visitedFragmentNames);\n }\n }\n\n return subFieldNodes;\n}\n/**\n * If a resolveType function is not given, then a default resolve behavior is\n * used which attempts two strategies:\n *\n * First, See if the provided value has a `__typename` field defined, if so, use\n * that value as name of the resolved type.\n *\n * Otherwise, test each possible type for the abstract type by calling\n * isTypeOf for the object being coerced, returning the first type that matches.\n */\n\n\nexport var defaultTypeResolver = function defaultTypeResolver(value, contextValue, info, abstractType) {\n // First, look for `__typename`.\n if (isObjectLike(value) && typeof value.__typename === 'string') {\n return value.__typename;\n } // Otherwise, test each possible type.\n\n\n var possibleTypes = info.schema.getPossibleTypes(abstractType);\n var promisedIsTypeOfResults = [];\n\n for (var i = 0; i < possibleTypes.length; i++) {\n var type = possibleTypes[i];\n\n if (type.isTypeOf) {\n var isTypeOfResult = type.isTypeOf(value, contextValue, info);\n\n if (isPromise(isTypeOfResult)) {\n promisedIsTypeOfResults[i] = isTypeOfResult;\n } else if (isTypeOfResult) {\n return type;\n }\n }\n }\n\n if (promisedIsTypeOfResults.length) {\n return Promise.all(promisedIsTypeOfResults).then(function (isTypeOfResults) {\n for (var _i9 = 0; _i9 < isTypeOfResults.length; _i9++) {\n if (isTypeOfResults[_i9]) {\n return possibleTypes[_i9];\n }\n }\n });\n }\n};\n/**\n * If a resolve function is not given, then a default resolve behavior is used\n * which takes the property of the source object of the same name as the field\n * and returns it as the result, or if it's a function, returns the result\n * of calling that function while passing along args and context value.\n */\n\nexport var defaultFieldResolver = function defaultFieldResolver(source, args, contextValue, info) {\n // ensure source is a value for which property access is acceptable.\n if (isObjectLike(source) || typeof source === 'function') {\n var property = source[info.fieldName];\n\n if (typeof property === 'function') {\n return source[info.fieldName](args, contextValue, info);\n }\n\n return property;\n }\n};\n/**\n * This method looks up the field on the given type definition.\n * It has special casing for the two introspection fields, __schema\n * and __typename. __typename is special because it can always be\n * queried as a field, even in situations where no other fields\n * are allowed, like on a Union. __schema could get automatically\n * added to the query type, but that would require mutating type\n * definitions, which would cause issues.\n */\n\nexport function getFieldDef(schema, parentType, fieldName) {\n if (fieldName === SchemaMetaFieldDef.name && schema.getQueryType() === parentType) {\n return SchemaMetaFieldDef;\n } else if (fieldName === TypeMetaFieldDef.name && schema.getQueryType() === parentType) {\n return TypeMetaFieldDef;\n } else if (fieldName === TypeNameMetaFieldDef.name) {\n return TypeNameMetaFieldDef;\n }\n\n return parentType.getFields()[fieldName];\n}\n","import isPromise from './isPromise';\n\n/**\n * Similar to Array.prototype.reduce(), however the reducing callback may return\n * a Promise, in which case reduction will continue after each promise resolves.\n *\n * If the callback does not return a Promise, then this function will also not\n * return a Promise.\n */\nexport default function promiseReduce(values, callback, initialValue) {\n return values.reduce(function (previous, value) {\n return isPromise(previous) ? previous.then(function (resolved) {\n return callback(resolved, value);\n }) : callback(previous, value);\n }, initialValue);\n}\n","/**\n * This function transforms a JS object `ObjMap>` into\n * a `Promise>`\n *\n * This is akin to bluebird's `Promise.props`, but implemented only using\n * `Promise.all` so it will work with any implementation of ES6 promises.\n */\nexport default function promiseForObject(object) {\n var keys = Object.keys(object);\n var valuesAndPromises = keys.map(function (name) {\n return object[name];\n });\n return Promise.all(valuesAndPromises).then(function (values) {\n return values.reduce(function (resolvedObject, value, i) {\n resolvedObject[keys[i]] = value;\n return resolvedObject;\n }, Object.create(null));\n });\n}\n","/**\n * Memoizes the provided three-argument function.\n */\nexport default function memoize3(fn) {\n var cache0;\n\n function memoized(a1, a2, a3) {\n if (!cache0) {\n cache0 = new WeakMap();\n }\n\n var cache1 = cache0.get(a1);\n var cache2;\n\n if (cache1) {\n cache2 = cache1.get(a2);\n\n if (cache2) {\n var cachedValue = cache2.get(a3);\n\n if (cachedValue !== undefined) {\n return cachedValue;\n }\n }\n } else {\n cache1 = new WeakMap();\n cache0.set(a1, cache1);\n }\n\n if (!cache2) {\n cache2 = new WeakMap();\n cache1.set(a2, cache2);\n }\n\n var newValue = fn(a1, a2, a3);\n cache2.set(a3, newValue);\n return newValue;\n }\n\n return memoized;\n}\n","import isPromise from './jsutils/isPromise';\nimport { parse } from './language/parser';\nimport { validate } from './validation/validate';\nimport { validateSchema } from './type/validate';\nimport { execute } from './execution/execute';\n/**\n * This is the primary entry point function for fulfilling GraphQL operations\n * by parsing, validating, and executing a GraphQL document along side a\n * GraphQL schema.\n *\n * More sophisticated GraphQL servers, such as those which persist queries,\n * may wish to separate the validation and execution phases to a static time\n * tooling step, and a server runtime step.\n *\n * Accepts either an object with named arguments, or individual arguments:\n *\n * schema:\n * The GraphQL type system to use when validating and executing a query.\n * source:\n * A GraphQL language formatted string representing the requested operation.\n * rootValue:\n * The value provided as the first argument to resolver functions on the top\n * level type (e.g. the query object type).\n * contextValue:\n * The context value is provided as an argument to resolver functions after\n * field arguments. It is used to pass shared information useful at any point\n * during executing this query, for example the currently logged in user and\n * connections to databases or other services.\n * variableValues:\n * A mapping of variable name to runtime value to use for all variables\n * defined in the requestString.\n * operationName:\n * The name of the operation to use if requestString contains multiple\n * possible operations. Can be omitted if requestString contains only\n * one operation.\n * fieldResolver:\n * A resolver function to use when one is not provided by the schema.\n * If not provided, the default field resolver is used (which looks for a\n * value or method on the source value with the field's name).\n * typeResolver:\n * A type resolver function to use when none is provided by the schema.\n * If not provided, the default type resolver is used (which looks for a\n * `__typename` field or alternatively calls the `isTypeOf` method).\n */\n\nexport function graphql(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {\n var _arguments = arguments;\n\n /* eslint-enable no-redeclare */\n // Always return a Promise for a consistent API.\n return new Promise(function (resolve) {\n return resolve( // Extract arguments from object args if provided.\n _arguments.length === 1 ? graphqlImpl(argsOrSchema) : graphqlImpl({\n schema: argsOrSchema,\n source: source,\n rootValue: rootValue,\n contextValue: contextValue,\n variableValues: variableValues,\n operationName: operationName,\n fieldResolver: fieldResolver,\n typeResolver: typeResolver\n }));\n });\n}\n/**\n * The graphqlSync function also fulfills GraphQL operations by parsing,\n * validating, and executing a GraphQL document along side a GraphQL schema.\n * However, it guarantees to complete synchronously (or throw an error) assuming\n * that all field resolvers are also synchronous.\n */\n\nexport function graphqlSync(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {\n /* eslint-enable no-redeclare */\n // Extract arguments from object args if provided.\n var result = arguments.length === 1 ? graphqlImpl(argsOrSchema) : graphqlImpl({\n schema: argsOrSchema,\n source: source,\n rootValue: rootValue,\n contextValue: contextValue,\n variableValues: variableValues,\n operationName: operationName,\n fieldResolver: fieldResolver,\n typeResolver: typeResolver\n }); // Assert that the execution was synchronous.\n\n if (isPromise(result)) {\n throw new Error('GraphQL execution failed to complete synchronously.');\n }\n\n return result;\n}\n\nfunction graphqlImpl(args) {\n var schema = args.schema,\n source = args.source,\n rootValue = args.rootValue,\n contextValue = args.contextValue,\n variableValues = args.variableValues,\n operationName = args.operationName,\n fieldResolver = args.fieldResolver,\n typeResolver = args.typeResolver; // Validate Schema\n\n var schemaValidationErrors = validateSchema(schema);\n\n if (schemaValidationErrors.length > 0) {\n return {\n errors: schemaValidationErrors\n };\n } // Parse\n\n\n var document;\n\n try {\n document = parse(source);\n } catch (syntaxError) {\n return {\n errors: [syntaxError]\n };\n } // Validate\n\n\n var validationErrors = validate(schema, document);\n\n if (validationErrors.length > 0) {\n return {\n errors: validationErrors\n };\n } // Execute\n\n\n return execute({\n schema: schema,\n document: document,\n rootValue: rootValue,\n contextValue: contextValue,\n variableValues: variableValues,\n operationName: operationName,\n fieldResolver: fieldResolver,\n typeResolver: typeResolver\n });\n}\n","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { $$asyncIterator, getAsyncIterator } from 'iterall';\n\n/**\n * Given an AsyncIterable and a callback function, return an AsyncIterator\n * which produces values mapped via calling the callback function.\n */\nexport default function mapAsyncIterator(iterable, callback, rejectCallback) {\n var iterator = getAsyncIterator(iterable);\n var $return;\n var abruptClose; // $FlowFixMe(>=0.68.0)\n\n if (typeof iterator.return === 'function') {\n $return = iterator.return;\n\n abruptClose = function abruptClose(error) {\n var rethrow = function rethrow() {\n return Promise.reject(error);\n };\n\n return $return.call(iterator).then(rethrow, rethrow);\n };\n }\n\n function mapResult(result) {\n return result.done ? result : asyncMapValue(result.value, callback).then(iteratorResult, abruptClose);\n }\n\n var mapReject;\n\n if (rejectCallback) {\n // Capture rejectCallback to ensure it cannot be null.\n var reject = rejectCallback;\n\n mapReject = function mapReject(error) {\n return asyncMapValue(error, reject).then(iteratorResult, abruptClose);\n };\n }\n /* TODO: Flow doesn't support symbols as keys:\n https://github.com/facebook/flow/issues/3258 */\n\n\n return _defineProperty({\n next: function next() {\n return iterator.next().then(mapResult, mapReject);\n },\n return: function _return() {\n return $return ? $return.call(iterator).then(mapResult, mapReject) : Promise.resolve({\n value: undefined,\n done: true\n });\n },\n throw: function _throw(error) {\n // $FlowFixMe(>=0.68.0)\n if (typeof iterator.throw === 'function') {\n return iterator.throw(error).then(mapResult, mapReject);\n }\n\n return Promise.reject(error).catch(abruptClose);\n }\n }, $$asyncIterator, function () {\n return this;\n });\n}\n\nfunction asyncMapValue(value, callback) {\n return new Promise(function (resolve) {\n return resolve(callback(value));\n });\n}\n\nfunction iteratorResult(value) {\n return {\n value: value,\n done: false\n };\n}\n","import { isAsyncIterable } from 'iterall';\nimport inspect from '../jsutils/inspect';\nimport { addPath, pathToArray } from '../jsutils/Path';\nimport { GraphQLError } from '../error/GraphQLError';\nimport { locatedError } from '../error/locatedError';\nimport { assertValidExecutionArguments, buildExecutionContext, buildResolveInfo, collectFields, execute, getFieldDef, resolveFieldValueOrError } from '../execution/execute';\nimport { getOperationRootType } from '../utilities/getOperationRootType';\nimport mapAsyncIterator from './mapAsyncIterator';\nexport function subscribe(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, subscribeFieldResolver) {\n /* eslint-enable no-redeclare */\n // Extract arguments from object args if provided.\n return arguments.length === 1 ? subscribeImpl(argsOrSchema) : subscribeImpl({\n schema: argsOrSchema,\n document: document,\n rootValue: rootValue,\n contextValue: contextValue,\n variableValues: variableValues,\n operationName: operationName,\n fieldResolver: fieldResolver,\n subscribeFieldResolver: subscribeFieldResolver\n });\n}\n/**\n * This function checks if the error is a GraphQLError. If it is, report it as\n * an ExecutionResult, containing only errors and no data. Otherwise treat the\n * error as a system-class error and re-throw it.\n */\n\nfunction reportGraphQLError(error) {\n if (error instanceof GraphQLError) {\n return {\n errors: [error]\n };\n }\n\n throw error;\n}\n\nfunction subscribeImpl(args) {\n var schema = args.schema,\n document = args.document,\n rootValue = args.rootValue,\n contextValue = args.contextValue,\n variableValues = args.variableValues,\n operationName = args.operationName,\n fieldResolver = args.fieldResolver,\n subscribeFieldResolver = args.subscribeFieldResolver;\n var sourcePromise = createSourceEventStream(schema, document, rootValue, contextValue, variableValues, operationName, subscribeFieldResolver); // For each payload yielded from a subscription, map it over the normal\n // GraphQL `execute` function, with `payload` as the rootValue.\n // This implements the \"MapSourceToResponseEvent\" algorithm described in\n // the GraphQL specification. The `execute` function provides the\n // \"ExecuteSubscriptionEvent\" algorithm, as it is nearly identical to the\n // \"ExecuteQuery\" algorithm, for which `execute` is also used.\n\n var mapSourceToResponse = function mapSourceToResponse(payload) {\n return execute(schema, document, payload, contextValue, variableValues, operationName, fieldResolver);\n }; // Resolve the Source Stream, then map every source value to a\n // ExecutionResult value as described above.\n\n\n return sourcePromise.then(function (resultOrStream) {\n return (// Note: Flow can't refine isAsyncIterable, so explicit casts are used.\n isAsyncIterable(resultOrStream) ? mapAsyncIterator(resultOrStream, mapSourceToResponse, reportGraphQLError) : resultOrStream\n );\n });\n}\n/**\n * Implements the \"CreateSourceEventStream\" algorithm described in the\n * GraphQL specification, resolving the subscription source event stream.\n *\n * Returns a Promise which resolves to either an AsyncIterable (if successful)\n * or an ExecutionResult (error). The promise will be rejected if the schema or\n * other arguments to this function are invalid, or if the resolved event stream\n * is not an async iterable.\n *\n * If the client-provided arguments to this function do not result in a\n * compliant subscription, a GraphQL Response (ExecutionResult) with\n * descriptive errors and no data will be returned.\n *\n * If the the source stream could not be created due to faulty subscription\n * resolver logic or underlying systems, the promise will resolve to a single\n * ExecutionResult containing `errors` and no `data`.\n *\n * If the operation succeeded, the promise resolves to the AsyncIterable for the\n * event stream returned by the resolver.\n *\n * A Source Event Stream represents a sequence of events, each of which triggers\n * a GraphQL execution for that event.\n *\n * This may be useful when hosting the stateful subscription service in a\n * different process or machine than the stateless GraphQL execution engine,\n * or otherwise separating these two steps. For more on this, see the\n * \"Supporting Subscriptions at Scale\" information in the GraphQL specification.\n */\n\n\nexport function createSourceEventStream(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver) {\n // If arguments are missing or incorrectly typed, this is an internal\n // developer mistake which should throw an early error.\n assertValidExecutionArguments(schema, document, variableValues);\n\n try {\n // If a valid context cannot be created due to incorrect arguments,\n // this will throw an error.\n var exeContext = buildExecutionContext(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver); // Return early errors if execution context failed.\n\n if (Array.isArray(exeContext)) {\n return Promise.resolve({\n errors: exeContext\n });\n }\n\n var type = getOperationRootType(schema, exeContext.operation);\n var fields = collectFields(exeContext, type, exeContext.operation.selectionSet, Object.create(null), Object.create(null));\n var responseNames = Object.keys(fields);\n var responseName = responseNames[0];\n var fieldNodes = fields[responseName];\n var fieldNode = fieldNodes[0];\n var fieldName = fieldNode.name.value;\n var fieldDef = getFieldDef(schema, type, fieldName);\n\n if (!fieldDef) {\n throw new GraphQLError(\"The subscription field \\\"\".concat(fieldName, \"\\\" is not defined.\"), fieldNodes);\n } // Call the `subscribe()` resolver or the default resolver to produce an\n // AsyncIterable yielding raw payloads.\n\n\n var resolveFn = fieldDef.subscribe || exeContext.fieldResolver;\n var path = addPath(undefined, responseName);\n var info = buildResolveInfo(exeContext, fieldDef, fieldNodes, type, path); // resolveFieldValueOrError implements the \"ResolveFieldEventStream\"\n // algorithm from GraphQL specification. It differs from\n // \"ResolveFieldValue\" due to providing a different `resolveFn`.\n\n var result = resolveFieldValueOrError(exeContext, fieldDef, fieldNodes, resolveFn, rootValue, info); // Coerce to Promise for easier error handling and consistent return type.\n\n return Promise.resolve(result).then(function (eventStream) {\n // If eventStream is an Error, rethrow a located error.\n if (eventStream instanceof Error) {\n return {\n errors: [locatedError(eventStream, fieldNodes, pathToArray(path))]\n };\n } // Assert field returned an event stream, otherwise yield an error.\n\n\n if (isAsyncIterable(eventStream)) {\n // Note: isAsyncIterable above ensures this will be correct.\n return eventStream;\n }\n\n throw new Error('Subscription field must return Async Iterable. Received: ' + inspect(eventStream));\n });\n } catch (error) {\n // As with reportGraphQLError above, if the error is a GraphQLError, report\n // it as an ExecutionResult; otherwise treat it as a system-class error and\n // re-throw it.\n return error instanceof GraphQLError ? Promise.resolve({\n errors: [error]\n }) : Promise.reject(error);\n }\n}\n","import devAssert from '../jsutils/devAssert';\n\n/**\n * Given a GraphQLError, format it according to the rules described by the\n * Response Format, Errors section of the GraphQL Specification.\n */\nexport function formatError(error) {\n error || devAssert(0, 'Received null or undefined error.');\n var message = error.message || 'An unknown error occurred.';\n var locations = error.locations;\n var path = error.path;\n var extensions = error.extensions;\n return extensions ? {\n message: message,\n locations: locations,\n path: path,\n extensions: extensions\n } : {\n message: message,\n locations: locations,\n path: path\n };\n}\n/**\n * @see https://github.com/graphql/graphql-spec/blob/master/spec/Section%207%20--%20Response.md#errors\n */\n","export function getIntrospectionQuery(options) {\n var descriptions = !(options && options.descriptions === false);\n return \"\\n query IntrospectionQuery {\\n __schema {\\n queryType { name }\\n mutationType { name }\\n subscriptionType { name }\\n types {\\n ...FullType\\n }\\n directives {\\n name\\n \".concat(descriptions ? 'description' : '', \"\\n locations\\n args {\\n ...InputValue\\n }\\n }\\n }\\n }\\n\\n fragment FullType on __Type {\\n kind\\n name\\n \").concat(descriptions ? 'description' : '', \"\\n fields(includeDeprecated: true) {\\n name\\n \").concat(descriptions ? 'description' : '', \"\\n args {\\n ...InputValue\\n }\\n type {\\n ...TypeRef\\n }\\n isDeprecated\\n deprecationReason\\n }\\n inputFields {\\n ...InputValue\\n }\\n interfaces {\\n ...TypeRef\\n }\\n enumValues(includeDeprecated: true) {\\n name\\n \").concat(descriptions ? 'description' : '', \"\\n isDeprecated\\n deprecationReason\\n }\\n possibleTypes {\\n ...TypeRef\\n }\\n }\\n\\n fragment InputValue on __InputValue {\\n name\\n \").concat(descriptions ? 'description' : '', \"\\n type { ...TypeRef }\\n defaultValue\\n }\\n\\n fragment TypeRef on __Type {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n ofType {\\n kind\\n name\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n \");\n}\n/**\n * Deprecated, call getIntrospectionQuery directly.\n *\n * This function will be removed in v15\n */\n\nexport var introspectionQuery = getIntrospectionQuery();\n","import { Kind } from '../language/kinds';\n\n/**\n * Returns an operation AST given a document AST and optionally an operation\n * name. If a name is not provided, an operation is only returned if only one is\n * provided in the document.\n */\nexport function getOperationAST(documentAST, operationName) {\n var operation = null;\n\n for (var _i2 = 0, _documentAST$definiti2 = documentAST.definitions; _i2 < _documentAST$definiti2.length; _i2++) {\n var definition = _documentAST$definiti2[_i2];\n\n if (definition.kind === Kind.OPERATION_DEFINITION) {\n if (!operationName) {\n // If no operation name was provided, only return an Operation if there\n // is one defined in the document. Upon encountering the second, return\n // null.\n if (operation) {\n return null;\n }\n\n operation = definition;\n } else if (definition.name && definition.name.value === operationName) {\n return definition;\n }\n }\n }\n\n return operation;\n}\n","import invariant from '../jsutils/invariant';\nimport isPromise from '../jsutils/isPromise';\nimport { parse } from '../language/parser';\nimport { execute } from '../execution/execute';\nimport { getIntrospectionQuery } from './introspectionQuery';\n/**\n * Build an IntrospectionQuery from a GraphQLSchema\n *\n * IntrospectionQuery is useful for utilities that care about type and field\n * relationships, but do not need to traverse through those relationships.\n *\n * This is the inverse of buildClientSchema. The primary use case is outside\n * of the server context, for instance when doing schema comparisons.\n */\n\nexport function introspectionFromSchema(schema, options) {\n var queryAST = parse(getIntrospectionQuery(options));\n var result = execute(schema, queryAST);\n\n /* istanbul ignore next */\n !isPromise(result) && !result.errors && result.data || invariant(0);\n return result.data;\n}\n","import objectValues from '../polyfills/objectValues';\nimport inspect from '../jsutils/inspect';\nimport devAssert from '../jsutils/devAssert';\nimport keyValMap from '../jsutils/keyValMap';\nimport isObjectLike from '../jsutils/isObjectLike';\nimport { parseValue } from '../language/parser';\nimport { GraphQLDirective } from '../type/directives';\nimport { specifiedScalarTypes } from '../type/scalars';\nimport { introspectionTypes, TypeKind } from '../type/introspection';\nimport { GraphQLSchema } from '../type/schema';\nimport { isInputType, isOutputType, GraphQLScalarType, GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType, GraphQLList, GraphQLNonNull, assertNullableType, assertObjectType, assertInterfaceType } from '../type/definition';\nimport { valueFromAST } from './valueFromAST';\n\n/**\n * Build a GraphQLSchema for use by client tools.\n *\n * Given the result of a client running the introspection query, creates and\n * returns a GraphQLSchema instance which can be then used with all graphql-js\n * tools, but cannot be used to execute a query, as introspection does not\n * represent the \"resolver\", \"parse\" or \"serialize\" functions or any other\n * server-internal mechanisms.\n *\n * This function expects a complete introspection result. Don't forget to check\n * the \"errors\" field of a server response before calling this function.\n */\nexport function buildClientSchema(introspection, options) {\n isObjectLike(introspection) && isObjectLike(introspection.__schema) || devAssert(0, 'Invalid or incomplete introspection result. Ensure that you are passing \"data\" property of introspection response and no \"errors\" was returned alongside: ' + inspect(introspection)); // Get the schema from the introspection result.\n\n var schemaIntrospection = introspection.__schema; // Iterate through all types, getting the type definition for each.\n\n var typeMap = keyValMap(schemaIntrospection.types, function (typeIntrospection) {\n return typeIntrospection.name;\n }, function (typeIntrospection) {\n return buildType(typeIntrospection);\n });\n\n for (var _i2 = 0, _ref2 = [].concat(specifiedScalarTypes, introspectionTypes); _i2 < _ref2.length; _i2++) {\n var stdType = _ref2[_i2];\n\n if (typeMap[stdType.name]) {\n typeMap[stdType.name] = stdType;\n }\n } // Get the root Query, Mutation, and Subscription types.\n\n\n var queryType = schemaIntrospection.queryType ? getObjectType(schemaIntrospection.queryType) : null;\n var mutationType = schemaIntrospection.mutationType ? getObjectType(schemaIntrospection.mutationType) : null;\n var subscriptionType = schemaIntrospection.subscriptionType ? getObjectType(schemaIntrospection.subscriptionType) : null; // Get the directives supported by Introspection, assuming empty-set if\n // directives were not queried for.\n\n var directives = schemaIntrospection.directives ? schemaIntrospection.directives.map(buildDirective) : []; // Then produce and return a Schema with these types.\n\n return new GraphQLSchema({\n query: queryType,\n mutation: mutationType,\n subscription: subscriptionType,\n types: objectValues(typeMap),\n directives: directives,\n assumeValid: options && options.assumeValid,\n allowedLegacyNames: options && options.allowedLegacyNames\n }); // Given a type reference in introspection, return the GraphQLType instance.\n // preferring cached instances before building new instances.\n\n function getType(typeRef) {\n if (typeRef.kind === TypeKind.LIST) {\n var itemRef = typeRef.ofType;\n\n if (!itemRef) {\n throw new Error('Decorated type deeper than introspection query.');\n }\n\n return GraphQLList(getType(itemRef));\n }\n\n if (typeRef.kind === TypeKind.NON_NULL) {\n var nullableRef = typeRef.ofType;\n\n if (!nullableRef) {\n throw new Error('Decorated type deeper than introspection query.');\n }\n\n var nullableType = getType(nullableRef);\n return GraphQLNonNull(assertNullableType(nullableType));\n }\n\n if (!typeRef.name) {\n throw new Error('Unknown type reference: ' + inspect(typeRef));\n }\n\n return getNamedType(typeRef.name);\n }\n\n function getNamedType(typeName) {\n var type = typeMap[typeName];\n\n if (!type) {\n throw new Error(\"Invalid or incomplete schema, unknown type: \".concat(typeName, \". Ensure that a full introspection query is used in order to build a client schema.\"));\n }\n\n return type;\n }\n\n function getInputType(typeRef) {\n var type = getType(typeRef);\n\n if (isInputType(type)) {\n return type;\n }\n\n throw new Error('Introspection must provide input type for arguments, but received: ' + inspect(type) + '.');\n }\n\n function getOutputType(typeRef) {\n var type = getType(typeRef);\n\n if (isOutputType(type)) {\n return type;\n }\n\n throw new Error('Introspection must provide output type for fields, but received: ' + inspect(type) + '.');\n }\n\n function getObjectType(typeRef) {\n var type = getType(typeRef);\n return assertObjectType(type);\n }\n\n function getInterfaceType(typeRef) {\n var type = getType(typeRef);\n return assertInterfaceType(type);\n } // Given a type's introspection result, construct the correct\n // GraphQLType instance.\n\n\n function buildType(type) {\n if (type && type.name && type.kind) {\n switch (type.kind) {\n case TypeKind.SCALAR:\n return buildScalarDef(type);\n\n case TypeKind.OBJECT:\n return buildObjectDef(type);\n\n case TypeKind.INTERFACE:\n return buildInterfaceDef(type);\n\n case TypeKind.UNION:\n return buildUnionDef(type);\n\n case TypeKind.ENUM:\n return buildEnumDef(type);\n\n case TypeKind.INPUT_OBJECT:\n return buildInputObjectDef(type);\n }\n }\n\n throw new Error('Invalid or incomplete introspection result. Ensure that a full introspection query is used in order to build a client schema:' + inspect(type));\n }\n\n function buildScalarDef(scalarIntrospection) {\n return new GraphQLScalarType({\n name: scalarIntrospection.name,\n description: scalarIntrospection.description\n });\n }\n\n function buildObjectDef(objectIntrospection) {\n if (!objectIntrospection.interfaces) {\n throw new Error('Introspection result missing interfaces: ' + inspect(objectIntrospection));\n }\n\n return new GraphQLObjectType({\n name: objectIntrospection.name,\n description: objectIntrospection.description,\n interfaces: function interfaces() {\n return objectIntrospection.interfaces.map(getInterfaceType);\n },\n fields: function fields() {\n return buildFieldDefMap(objectIntrospection);\n }\n });\n }\n\n function buildInterfaceDef(interfaceIntrospection) {\n return new GraphQLInterfaceType({\n name: interfaceIntrospection.name,\n description: interfaceIntrospection.description,\n fields: function fields() {\n return buildFieldDefMap(interfaceIntrospection);\n }\n });\n }\n\n function buildUnionDef(unionIntrospection) {\n if (!unionIntrospection.possibleTypes) {\n throw new Error('Introspection result missing possibleTypes: ' + inspect(unionIntrospection));\n }\n\n return new GraphQLUnionType({\n name: unionIntrospection.name,\n description: unionIntrospection.description,\n types: function types() {\n return unionIntrospection.possibleTypes.map(getObjectType);\n }\n });\n }\n\n function buildEnumDef(enumIntrospection) {\n if (!enumIntrospection.enumValues) {\n throw new Error('Introspection result missing enumValues: ' + inspect(enumIntrospection));\n }\n\n return new GraphQLEnumType({\n name: enumIntrospection.name,\n description: enumIntrospection.description,\n values: keyValMap(enumIntrospection.enumValues, function (valueIntrospection) {\n return valueIntrospection.name;\n }, function (valueIntrospection) {\n return {\n description: valueIntrospection.description,\n deprecationReason: valueIntrospection.deprecationReason\n };\n })\n });\n }\n\n function buildInputObjectDef(inputObjectIntrospection) {\n if (!inputObjectIntrospection.inputFields) {\n throw new Error('Introspection result missing inputFields: ' + inspect(inputObjectIntrospection));\n }\n\n return new GraphQLInputObjectType({\n name: inputObjectIntrospection.name,\n description: inputObjectIntrospection.description,\n fields: function fields() {\n return buildInputValueDefMap(inputObjectIntrospection.inputFields);\n }\n });\n }\n\n function buildFieldDefMap(typeIntrospection) {\n if (!typeIntrospection.fields) {\n throw new Error('Introspection result missing fields: ' + inspect(typeIntrospection));\n }\n\n return keyValMap(typeIntrospection.fields, function (fieldIntrospection) {\n return fieldIntrospection.name;\n }, function (fieldIntrospection) {\n if (!fieldIntrospection.args) {\n throw new Error('Introspection result missing field args: ' + inspect(fieldIntrospection));\n }\n\n return {\n description: fieldIntrospection.description,\n deprecationReason: fieldIntrospection.deprecationReason,\n type: getOutputType(fieldIntrospection.type),\n args: buildInputValueDefMap(fieldIntrospection.args)\n };\n });\n }\n\n function buildInputValueDefMap(inputValueIntrospections) {\n return keyValMap(inputValueIntrospections, function (inputValue) {\n return inputValue.name;\n }, buildInputValue);\n }\n\n function buildInputValue(inputValueIntrospection) {\n var type = getInputType(inputValueIntrospection.type);\n var defaultValue = inputValueIntrospection.defaultValue ? valueFromAST(parseValue(inputValueIntrospection.defaultValue), type) : undefined;\n return {\n description: inputValueIntrospection.description,\n type: type,\n defaultValue: defaultValue\n };\n }\n\n function buildDirective(directiveIntrospection) {\n if (!directiveIntrospection.args) {\n throw new Error('Introspection result missing directive args: ' + inspect(directiveIntrospection));\n }\n\n if (!directiveIntrospection.locations) {\n throw new Error('Introspection result missing directive locations: ' + inspect(directiveIntrospection));\n }\n\n return new GraphQLDirective({\n name: directiveIntrospection.name,\n description: directiveIntrospection.description,\n locations: directiveIntrospection.locations.slice(),\n args: buildInputValueDefMap(directiveIntrospection.args)\n });\n }\n}\n","import objectValues from '../polyfills/objectValues';\nimport keyMap from '../jsutils/keyMap';\nimport inspect from '../jsutils/inspect';\nimport invariant from '../jsutils/invariant';\nimport devAssert from '../jsutils/devAssert';\nimport keyValMap from '../jsutils/keyValMap';\nimport { Kind } from '../language/kinds';\nimport { TokenKind } from '../language/tokenKind';\nimport { parse } from '../language/parser';\nimport { isTypeDefinitionNode } from '../language/predicates';\nimport { dedentBlockStringValue } from '../language/blockString';\nimport { assertValidSDL } from '../validation/validate';\nimport { getDirectiveValues } from '../execution/values';\nimport { specifiedScalarTypes } from '../type/scalars';\nimport { introspectionTypes } from '../type/introspection';\nimport { GraphQLSchema } from '../type/schema';\nimport { GraphQLDirective, GraphQLSkipDirective, GraphQLIncludeDirective, GraphQLDeprecatedDirective } from '../type/directives';\nimport { GraphQLScalarType, GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType, GraphQLList, GraphQLNonNull } from '../type/definition';\nimport { valueFromAST } from './valueFromAST';\n\n/**\n * This takes the ast of a schema document produced by the parse function in\n * src/language/parser.js.\n *\n * If no schema definition is provided, then it will look for types named Query\n * and Mutation.\n *\n * Given that AST it constructs a GraphQLSchema. The resulting schema\n * has no resolve methods, so execution will use default resolvers.\n *\n * Accepts options as a second argument:\n *\n * - commentDescriptions:\n * Provide true to use preceding comments as the description.\n *\n */\nexport function buildASTSchema(documentAST, options) {\n documentAST && documentAST.kind === Kind.DOCUMENT || devAssert(0, 'Must provide valid Document AST');\n\n if (!options || !(options.assumeValid || options.assumeValidSDL)) {\n assertValidSDL(documentAST);\n }\n\n var schemaDef;\n var typeDefs = [];\n var directiveDefs = [];\n\n for (var _i2 = 0, _documentAST$definiti2 = documentAST.definitions; _i2 < _documentAST$definiti2.length; _i2++) {\n var def = _documentAST$definiti2[_i2];\n\n if (def.kind === Kind.SCHEMA_DEFINITION) {\n schemaDef = def;\n } else if (isTypeDefinitionNode(def)) {\n typeDefs.push(def);\n } else if (def.kind === Kind.DIRECTIVE_DEFINITION) {\n directiveDefs.push(def);\n }\n }\n\n var astBuilder = new ASTDefinitionBuilder(options, function (typeName) {\n var type = typeMap[typeName];\n\n if (type === undefined) {\n throw new Error(\"Type \\\"\".concat(typeName, \"\\\" not found in document.\"));\n }\n\n return type;\n });\n var typeMap = keyByNameNode(typeDefs, function (node) {\n return astBuilder.buildType(node);\n });\n var operationTypes = schemaDef ? getOperationTypes(schemaDef) : {\n query: 'Query',\n mutation: 'Mutation',\n subscription: 'Subscription'\n };\n var directives = directiveDefs.map(function (def) {\n return astBuilder.buildDirective(def);\n }); // If specified directives were not explicitly declared, add them.\n\n if (!directives.some(function (directive) {\n return directive.name === 'skip';\n })) {\n directives.push(GraphQLSkipDirective);\n }\n\n if (!directives.some(function (directive) {\n return directive.name === 'include';\n })) {\n directives.push(GraphQLIncludeDirective);\n }\n\n if (!directives.some(function (directive) {\n return directive.name === 'deprecated';\n })) {\n directives.push(GraphQLDeprecatedDirective);\n }\n\n return new GraphQLSchema({\n // Note: While this could make early assertions to get the correctly\n // typed values below, that would throw immediately while type system\n // validation with validateSchema() will produce more actionable results.\n query: operationTypes.query ? typeMap[operationTypes.query] : null,\n mutation: operationTypes.mutation ? typeMap[operationTypes.mutation] : null,\n subscription: operationTypes.subscription ? typeMap[operationTypes.subscription] : null,\n types: objectValues(typeMap),\n directives: directives,\n astNode: schemaDef,\n assumeValid: options && options.assumeValid,\n allowedLegacyNames: options && options.allowedLegacyNames\n });\n\n function getOperationTypes(schema) {\n var opTypes = {};\n\n for (var _i4 = 0, _schema$operationType2 = schema.operationTypes; _i4 < _schema$operationType2.length; _i4++) {\n var operationType = _schema$operationType2[_i4];\n opTypes[operationType.operation] = operationType.type.name.value;\n }\n\n return opTypes;\n }\n}\nvar stdTypeMap = keyMap(specifiedScalarTypes.concat(introspectionTypes), function (type) {\n return type.name;\n});\nexport var ASTDefinitionBuilder =\n/*#__PURE__*/\nfunction () {\n function ASTDefinitionBuilder(options, resolveType) {\n this._options = options;\n this._resolveType = resolveType;\n }\n\n var _proto = ASTDefinitionBuilder.prototype;\n\n _proto.getNamedType = function getNamedType(node) {\n var name = node.name.value;\n return stdTypeMap[name] || this._resolveType(name);\n };\n\n _proto.getWrappedType = function getWrappedType(node) {\n if (node.kind === Kind.LIST_TYPE) {\n return new GraphQLList(this.getWrappedType(node.type));\n }\n\n if (node.kind === Kind.NON_NULL_TYPE) {\n return new GraphQLNonNull(this.getWrappedType(node.type));\n }\n\n return this.getNamedType(node);\n };\n\n _proto.buildDirective = function buildDirective(directive) {\n var _this = this;\n\n var locations = directive.locations.map(function (_ref) {\n var value = _ref.value;\n return value;\n });\n return new GraphQLDirective({\n name: directive.name.value,\n description: getDescription(directive, this._options),\n locations: locations,\n isRepeatable: directive.repeatable,\n args: keyByNameNode(directive.arguments || [], function (arg) {\n return _this.buildArg(arg);\n }),\n astNode: directive\n });\n };\n\n _proto.buildField = function buildField(field) {\n var _this2 = this;\n\n return {\n // Note: While this could make assertions to get the correctly typed\n // value, that would throw immediately while type system validation\n // with validateSchema() will produce more actionable results.\n type: this.getWrappedType(field.type),\n description: getDescription(field, this._options),\n args: keyByNameNode(field.arguments || [], function (arg) {\n return _this2.buildArg(arg);\n }),\n deprecationReason: getDeprecationReason(field),\n astNode: field\n };\n };\n\n _proto.buildArg = function buildArg(value) {\n // Note: While this could make assertions to get the correctly typed\n // value, that would throw immediately while type system validation\n // with validateSchema() will produce more actionable results.\n var type = this.getWrappedType(value.type);\n return {\n type: type,\n description: getDescription(value, this._options),\n defaultValue: valueFromAST(value.defaultValue, type),\n astNode: value\n };\n };\n\n _proto.buildInputField = function buildInputField(value) {\n // Note: While this could make assertions to get the correctly typed\n // value, that would throw immediately while type system validation\n // with validateSchema() will produce more actionable results.\n var type = this.getWrappedType(value.type);\n return {\n type: type,\n description: getDescription(value, this._options),\n defaultValue: valueFromAST(value.defaultValue, type),\n astNode: value\n };\n };\n\n _proto.buildEnumValue = function buildEnumValue(value) {\n return {\n description: getDescription(value, this._options),\n deprecationReason: getDeprecationReason(value),\n astNode: value\n };\n };\n\n _proto.buildType = function buildType(astNode) {\n var name = astNode.name.value;\n\n if (stdTypeMap[name]) {\n return stdTypeMap[name];\n }\n\n switch (astNode.kind) {\n case Kind.OBJECT_TYPE_DEFINITION:\n return this._makeTypeDef(astNode);\n\n case Kind.INTERFACE_TYPE_DEFINITION:\n return this._makeInterfaceDef(astNode);\n\n case Kind.ENUM_TYPE_DEFINITION:\n return this._makeEnumDef(astNode);\n\n case Kind.UNION_TYPE_DEFINITION:\n return this._makeUnionDef(astNode);\n\n case Kind.SCALAR_TYPE_DEFINITION:\n return this._makeScalarDef(astNode);\n\n case Kind.INPUT_OBJECT_TYPE_DEFINITION:\n return this._makeInputObjectDef(astNode);\n } // Not reachable. All possible type definition nodes have been considered.\n\n\n /* istanbul ignore next */\n invariant(false, 'Unexpected type definition node: ' + inspect(astNode));\n };\n\n _proto._makeTypeDef = function _makeTypeDef(astNode) {\n var _this3 = this;\n\n var interfaceNodes = astNode.interfaces;\n var fieldNodes = astNode.fields; // Note: While this could make assertions to get the correctly typed\n // values below, that would throw immediately while type system\n // validation with validateSchema() will produce more actionable results.\n\n var interfaces = interfaceNodes && interfaceNodes.length > 0 ? function () {\n return interfaceNodes.map(function (ref) {\n return _this3.getNamedType(ref);\n });\n } : [];\n var fields = fieldNodes && fieldNodes.length > 0 ? function () {\n return keyByNameNode(fieldNodes, function (field) {\n return _this3.buildField(field);\n });\n } : Object.create(null);\n return new GraphQLObjectType({\n name: astNode.name.value,\n description: getDescription(astNode, this._options),\n interfaces: interfaces,\n fields: fields,\n astNode: astNode\n });\n };\n\n _proto._makeInterfaceDef = function _makeInterfaceDef(astNode) {\n var _this4 = this;\n\n var fieldNodes = astNode.fields;\n var fields = fieldNodes && fieldNodes.length > 0 ? function () {\n return keyByNameNode(fieldNodes, function (field) {\n return _this4.buildField(field);\n });\n } : Object.create(null);\n return new GraphQLInterfaceType({\n name: astNode.name.value,\n description: getDescription(astNode, this._options),\n fields: fields,\n astNode: astNode\n });\n };\n\n _proto._makeEnumDef = function _makeEnumDef(astNode) {\n var _this5 = this;\n\n var valueNodes = astNode.values || [];\n return new GraphQLEnumType({\n name: astNode.name.value,\n description: getDescription(astNode, this._options),\n values: keyByNameNode(valueNodes, function (value) {\n return _this5.buildEnumValue(value);\n }),\n astNode: astNode\n });\n };\n\n _proto._makeUnionDef = function _makeUnionDef(astNode) {\n var _this6 = this;\n\n var typeNodes = astNode.types; // Note: While this could make assertions to get the correctly typed\n // values below, that would throw immediately while type system\n // validation with validateSchema() will produce more actionable results.\n\n var types = typeNodes && typeNodes.length > 0 ? function () {\n return typeNodes.map(function (ref) {\n return _this6.getNamedType(ref);\n });\n } : [];\n return new GraphQLUnionType({\n name: astNode.name.value,\n description: getDescription(astNode, this._options),\n types: types,\n astNode: astNode\n });\n };\n\n _proto._makeScalarDef = function _makeScalarDef(astNode) {\n return new GraphQLScalarType({\n name: astNode.name.value,\n description: getDescription(astNode, this._options),\n astNode: astNode\n });\n };\n\n _proto._makeInputObjectDef = function _makeInputObjectDef(def) {\n var _this7 = this;\n\n var fields = def.fields;\n return new GraphQLInputObjectType({\n name: def.name.value,\n description: getDescription(def, this._options),\n fields: fields ? function () {\n return keyByNameNode(fields, function (field) {\n return _this7.buildInputField(field);\n });\n } : Object.create(null),\n astNode: def\n });\n };\n\n return ASTDefinitionBuilder;\n}();\n\nfunction keyByNameNode(list, valFn) {\n return keyValMap(list, function (_ref2) {\n var name = _ref2.name;\n return name.value;\n }, valFn);\n}\n/**\n * Given a field or enum value node, returns the string value for the\n * deprecation reason.\n */\n\n\nfunction getDeprecationReason(node) {\n var deprecated = getDirectiveValues(GraphQLDeprecatedDirective, node);\n return deprecated && deprecated.reason;\n}\n/**\n * Given an ast node, returns its string description.\n * @deprecated: provided to ease adoption and will be removed in v16.\n *\n * Accepts options as a second argument:\n *\n * - commentDescriptions:\n * Provide true to use preceding comments as the description.\n *\n */\n\n\nexport function getDescription(node, options) {\n if (node.description) {\n return node.description.value;\n }\n\n if (options && options.commentDescriptions) {\n var rawValue = getLeadingCommentBlock(node);\n\n if (rawValue !== undefined) {\n return dedentBlockStringValue('\\n' + rawValue);\n }\n }\n}\n\nfunction getLeadingCommentBlock(node) {\n var loc = node.loc;\n\n if (!loc) {\n return;\n }\n\n var comments = [];\n var token = loc.startToken.prev;\n\n while (token && token.kind === TokenKind.COMMENT && token.next && token.prev && token.line + 1 === token.next.line && token.line !== token.prev.line) {\n var value = String(token.value);\n comments.push(value);\n token = token.prev;\n }\n\n return comments.reverse().join('\\n');\n}\n/**\n * A helper function to build a GraphQLSchema directly from a source\n * document.\n */\n\n\nexport function buildSchema(source, options) {\n return buildASTSchema(parse(source, options), options);\n}\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport flatMap from '../polyfills/flatMap';\nimport objectValues from '../polyfills/objectValues';\nimport inspect from '../jsutils/inspect';\nimport mapValue from '../jsutils/mapValue';\nimport invariant from '../jsutils/invariant';\nimport devAssert from '../jsutils/devAssert';\nimport keyValMap from '../jsutils/keyValMap';\nimport { Kind } from '../language/kinds';\nimport { isTypeDefinitionNode, isTypeExtensionNode } from '../language/predicates';\nimport { assertValidSDLExtension } from '../validation/validate';\nimport { GraphQLDirective } from '../type/directives';\nimport { isSpecifiedScalarType } from '../type/scalars';\nimport { isIntrospectionType } from '../type/introspection';\nimport { assertSchema, GraphQLSchema } from '../type/schema';\nimport { isScalarType, isObjectType, isInterfaceType, isUnionType, isListType, isNonNullType, isEnumType, isInputObjectType, GraphQLList, GraphQLNonNull, GraphQLScalarType, GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType } from '../type/definition';\nimport { ASTDefinitionBuilder } from './buildASTSchema';\n\n/**\n * Produces a new schema given an existing schema and a document which may\n * contain GraphQL type extensions and definitions. The original schema will\n * remain unaltered.\n *\n * Because a schema represents a graph of references, a schema cannot be\n * extended without effectively making an entire copy. We do not know until it's\n * too late if subgraphs remain unchanged.\n *\n * This algorithm copies the provided schema, applying extensions while\n * producing the copy. The original schema remains unaltered.\n *\n * Accepts options as a third argument:\n *\n * - commentDescriptions:\n * Provide true to use preceding comments as the description.\n *\n */\nexport function extendSchema(schema, documentAST, options) {\n assertSchema(schema);\n documentAST && documentAST.kind === Kind.DOCUMENT || devAssert(0, 'Must provide valid Document AST');\n\n if (!options || !(options.assumeValid || options.assumeValidSDL)) {\n assertValidSDLExtension(documentAST, schema);\n } // Collect the type definitions and extensions found in the document.\n\n\n var typeDefs = [];\n var typeExtsMap = Object.create(null); // New directives and types are separate because a directives and types can\n // have the same name. For example, a type named \"skip\".\n\n var directiveDefs = [];\n var schemaDef; // Schema extensions are collected which may add additional operation types.\n\n var schemaExts = [];\n\n for (var _i2 = 0, _documentAST$definiti2 = documentAST.definitions; _i2 < _documentAST$definiti2.length; _i2++) {\n var def = _documentAST$definiti2[_i2];\n\n if (def.kind === Kind.SCHEMA_DEFINITION) {\n schemaDef = def;\n } else if (def.kind === Kind.SCHEMA_EXTENSION) {\n schemaExts.push(def);\n } else if (isTypeDefinitionNode(def)) {\n typeDefs.push(def);\n } else if (isTypeExtensionNode(def)) {\n var extendedTypeName = def.name.value;\n var existingTypeExts = typeExtsMap[extendedTypeName];\n typeExtsMap[extendedTypeName] = existingTypeExts ? existingTypeExts.concat([def]) : [def];\n } else if (def.kind === Kind.DIRECTIVE_DEFINITION) {\n directiveDefs.push(def);\n }\n } // If this document contains no new types, extensions, or directives then\n // return the same unmodified GraphQLSchema instance.\n\n\n if (Object.keys(typeExtsMap).length === 0 && typeDefs.length === 0 && directiveDefs.length === 0 && schemaExts.length === 0 && !schemaDef) {\n return schema;\n }\n\n var schemaConfig = schema.toConfig();\n var astBuilder = new ASTDefinitionBuilder(options, function (typeName) {\n var type = typeMap[typeName];\n\n if (type === undefined) {\n throw new Error(\"Unknown type: \\\"\".concat(typeName, \"\\\".\"));\n }\n\n return type;\n });\n var typeMap = keyValMap(typeDefs, function (node) {\n return node.name.value;\n }, function (node) {\n return astBuilder.buildType(node);\n });\n\n for (var _i4 = 0, _schemaConfig$types2 = schemaConfig.types; _i4 < _schemaConfig$types2.length; _i4++) {\n var existingType = _schemaConfig$types2[_i4];\n typeMap[existingType.name] = extendNamedType(existingType);\n } // Get the extended root operation types.\n\n\n var operationTypes = {\n query: schemaConfig.query && schemaConfig.query.name,\n mutation: schemaConfig.mutation && schemaConfig.mutation.name,\n subscription: schemaConfig.subscription && schemaConfig.subscription.name\n };\n\n if (schemaDef) {\n for (var _i6 = 0, _schemaDef$operationT2 = schemaDef.operationTypes; _i6 < _schemaDef$operationT2.length; _i6++) {\n var _ref2 = _schemaDef$operationT2[_i6];\n var operation = _ref2.operation;\n var type = _ref2.type;\n operationTypes[operation] = type.name.value;\n }\n } // Then, incorporate schema definition and all schema extensions.\n\n\n for (var _i8 = 0; _i8 < schemaExts.length; _i8++) {\n var schemaExt = schemaExts[_i8];\n\n if (schemaExt.operationTypes) {\n for (var _i10 = 0, _schemaExt$operationT2 = schemaExt.operationTypes; _i10 < _schemaExt$operationT2.length; _i10++) {\n var _ref4 = _schemaExt$operationT2[_i10];\n var _operation = _ref4.operation;\n var _type = _ref4.type;\n operationTypes[_operation] = _type.name.value;\n }\n }\n } // Support both original legacy names and extended legacy names.\n\n\n var allowedLegacyNames = schemaConfig.allowedLegacyNames.concat(options && options.allowedLegacyNames || []); // Then produce and return a Schema with these types.\n\n return new GraphQLSchema({\n // Note: While this could make early assertions to get the correctly\n // typed values, that would throw immediately while type system\n // validation with validateSchema() will produce more actionable results.\n query: getMaybeTypeByName(operationTypes.query),\n mutation: getMaybeTypeByName(operationTypes.mutation),\n subscription: getMaybeTypeByName(operationTypes.subscription),\n types: objectValues(typeMap),\n directives: getMergedDirectives(),\n astNode: schemaDef || schemaConfig.astNode,\n extensionASTNodes: schemaConfig.extensionASTNodes.concat(schemaExts),\n allowedLegacyNames: allowedLegacyNames\n }); // Below are functions used for producing this schema that have closed over\n // this scope and have access to the schema, cache, and newly defined types.\n\n function replaceType(type) {\n if (isListType(type)) {\n return new GraphQLList(replaceType(type.ofType));\n } else if (isNonNullType(type)) {\n return new GraphQLNonNull(replaceType(type.ofType));\n }\n\n return replaceNamedType(type);\n }\n\n function replaceNamedType(type) {\n return typeMap[type.name];\n }\n\n function getMaybeTypeByName(typeName) {\n return typeName ? typeMap[typeName] : null;\n }\n\n function getMergedDirectives() {\n var existingDirectives = schema.getDirectives().map(extendDirective);\n existingDirectives || devAssert(0, 'schema must have default directives');\n return existingDirectives.concat(directiveDefs.map(function (node) {\n return astBuilder.buildDirective(node);\n }));\n }\n\n function extendNamedType(type) {\n if (isIntrospectionType(type) || isSpecifiedScalarType(type)) {\n // Builtin types are not extended.\n return type;\n } else if (isScalarType(type)) {\n return extendScalarType(type);\n } else if (isObjectType(type)) {\n return extendObjectType(type);\n } else if (isInterfaceType(type)) {\n return extendInterfaceType(type);\n } else if (isUnionType(type)) {\n return extendUnionType(type);\n } else if (isEnumType(type)) {\n return extendEnumType(type);\n } else if (isInputObjectType(type)) {\n return extendInputObjectType(type);\n } // Not reachable. All possible types have been considered.\n\n\n /* istanbul ignore next */\n invariant(false, 'Unexpected type: ' + inspect(type));\n }\n\n function extendDirective(directive) {\n var config = directive.toConfig();\n return new GraphQLDirective(_objectSpread({}, config, {\n args: mapValue(config.args, extendArg)\n }));\n }\n\n function extendInputObjectType(type) {\n var config = type.toConfig();\n var extensions = typeExtsMap[config.name] || [];\n var fieldNodes = flatMap(extensions, function (node) {\n return node.fields || [];\n });\n return new GraphQLInputObjectType(_objectSpread({}, config, {\n fields: function fields() {\n return _objectSpread({}, mapValue(config.fields, function (field) {\n return _objectSpread({}, field, {\n type: replaceType(field.type)\n });\n }), {}, keyValMap(fieldNodes, function (field) {\n return field.name.value;\n }, function (field) {\n return astBuilder.buildInputField(field);\n }));\n },\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendEnumType(type) {\n var config = type.toConfig();\n var extensions = typeExtsMap[type.name] || [];\n var valueNodes = flatMap(extensions, function (node) {\n return node.values || [];\n });\n return new GraphQLEnumType(_objectSpread({}, config, {\n values: _objectSpread({}, config.values, {}, keyValMap(valueNodes, function (value) {\n return value.name.value;\n }, function (value) {\n return astBuilder.buildEnumValue(value);\n })),\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendScalarType(type) {\n var config = type.toConfig();\n var extensions = typeExtsMap[config.name] || [];\n return new GraphQLScalarType(_objectSpread({}, config, {\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendObjectType(type) {\n var config = type.toConfig();\n var extensions = typeExtsMap[config.name] || [];\n var interfaceNodes = flatMap(extensions, function (node) {\n return node.interfaces || [];\n });\n var fieldNodes = flatMap(extensions, function (node) {\n return node.fields || [];\n });\n return new GraphQLObjectType(_objectSpread({}, config, {\n interfaces: function interfaces() {\n return [].concat(type.getInterfaces().map(replaceNamedType), interfaceNodes.map(function (node) {\n return astBuilder.getNamedType(node);\n }));\n },\n fields: function fields() {\n return _objectSpread({}, mapValue(config.fields, extendField), {}, keyValMap(fieldNodes, function (node) {\n return node.name.value;\n }, function (node) {\n return astBuilder.buildField(node);\n }));\n },\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendInterfaceType(type) {\n var config = type.toConfig();\n var extensions = typeExtsMap[config.name] || [];\n var fieldNodes = flatMap(extensions, function (node) {\n return node.fields || [];\n });\n return new GraphQLInterfaceType(_objectSpread({}, config, {\n fields: function fields() {\n return _objectSpread({}, mapValue(config.fields, extendField), {}, keyValMap(fieldNodes, function (node) {\n return node.name.value;\n }, function (node) {\n return astBuilder.buildField(node);\n }));\n },\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendUnionType(type) {\n var config = type.toConfig();\n var extensions = typeExtsMap[config.name] || [];\n var typeNodes = flatMap(extensions, function (node) {\n return node.types || [];\n });\n return new GraphQLUnionType(_objectSpread({}, config, {\n types: function types() {\n return [].concat(type.getTypes().map(replaceNamedType), typeNodes.map(function (node) {\n return astBuilder.getNamedType(node);\n }));\n },\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendField(field) {\n return _objectSpread({}, field, {\n type: replaceType(field.type),\n args: mapValue(field.args, extendArg)\n });\n }\n\n function extendArg(arg) {\n return _objectSpread({}, arg, {\n type: replaceType(arg.type)\n });\n }\n}\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport objectValues from '../polyfills/objectValues';\nimport inspect from '../jsutils/inspect';\nimport invariant from '../jsutils/invariant';\nimport keyValMap from '../jsutils/keyValMap';\nimport { GraphQLSchema } from '../type/schema';\nimport { GraphQLDirective } from '../type/directives';\nimport { isIntrospectionType } from '../type/introspection';\nimport { GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType, GraphQLList, GraphQLNonNull, isListType, isNonNullType, isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType } from '../type/definition';\n/**\n * Sort GraphQLSchema.\n */\n\nexport function lexicographicSortSchema(schema) {\n var schemaConfig = schema.toConfig();\n var typeMap = keyValMap(sortByName(schemaConfig.types), function (type) {\n return type.name;\n }, sortNamedType);\n return new GraphQLSchema(_objectSpread({}, schemaConfig, {\n types: objectValues(typeMap),\n directives: sortByName(schemaConfig.directives).map(sortDirective),\n query: replaceMaybeType(schemaConfig.query),\n mutation: replaceMaybeType(schemaConfig.mutation),\n subscription: replaceMaybeType(schemaConfig.subscription)\n }));\n\n function replaceType(type) {\n if (isListType(type)) {\n return new GraphQLList(replaceType(type.ofType));\n } else if (isNonNullType(type)) {\n return new GraphQLNonNull(replaceType(type.ofType));\n }\n\n return replaceNamedType(type);\n }\n\n function replaceNamedType(type) {\n return typeMap[type.name];\n }\n\n function replaceMaybeType(maybeType) {\n return maybeType && replaceNamedType(maybeType);\n }\n\n function sortDirective(directive) {\n var config = directive.toConfig();\n return new GraphQLDirective(_objectSpread({}, config, {\n locations: sortBy(config.locations, function (x) {\n return x;\n }),\n args: sortArgs(config.args)\n }));\n }\n\n function sortArgs(args) {\n return sortObjMap(args, function (arg) {\n return _objectSpread({}, arg, {\n type: replaceType(arg.type)\n });\n });\n }\n\n function sortFields(fieldsMap) {\n return sortObjMap(fieldsMap, function (field) {\n return _objectSpread({}, field, {\n type: replaceType(field.type),\n args: sortArgs(field.args)\n });\n });\n }\n\n function sortInputFields(fieldsMap) {\n return sortObjMap(fieldsMap, function (field) {\n return _objectSpread({}, field, {\n type: replaceType(field.type)\n });\n });\n }\n\n function sortTypes(arr) {\n return sortByName(arr).map(replaceNamedType);\n }\n\n function sortNamedType(type) {\n if (isScalarType(type) || isIntrospectionType(type)) {\n return type;\n } else if (isObjectType(type)) {\n var config = type.toConfig();\n return new GraphQLObjectType(_objectSpread({}, config, {\n interfaces: function interfaces() {\n return sortTypes(config.interfaces);\n },\n fields: function fields() {\n return sortFields(config.fields);\n }\n }));\n } else if (isInterfaceType(type)) {\n var _config = type.toConfig();\n\n return new GraphQLInterfaceType(_objectSpread({}, _config, {\n fields: function fields() {\n return sortFields(_config.fields);\n }\n }));\n } else if (isUnionType(type)) {\n var _config2 = type.toConfig();\n\n return new GraphQLUnionType(_objectSpread({}, _config2, {\n types: function types() {\n return sortTypes(_config2.types);\n }\n }));\n } else if (isEnumType(type)) {\n var _config3 = type.toConfig();\n\n return new GraphQLEnumType(_objectSpread({}, _config3, {\n values: sortObjMap(_config3.values)\n }));\n } else if (isInputObjectType(type)) {\n var _config4 = type.toConfig();\n\n return new GraphQLInputObjectType(_objectSpread({}, _config4, {\n fields: function fields() {\n return sortInputFields(_config4.fields);\n }\n }));\n } // Not reachable. All possible types have been considered.\n\n\n /* istanbul ignore next */\n invariant(false, 'Unexpected type: ' + inspect(type));\n }\n}\n\nfunction sortObjMap(map, sortValueFn) {\n var sortedMap = Object.create(null);\n var sortedKeys = sortBy(Object.keys(map), function (x) {\n return x;\n });\n\n for (var _i2 = 0; _i2 < sortedKeys.length; _i2++) {\n var key = sortedKeys[_i2];\n var value = map[key];\n sortedMap[key] = sortValueFn ? sortValueFn(value) : value;\n }\n\n return sortedMap;\n}\n\nfunction sortByName(array) {\n return sortBy(array, function (obj) {\n return obj.name;\n });\n}\n\nfunction sortBy(array, mapToKey) {\n return array.slice().sort(function (obj1, obj2) {\n var key1 = mapToKey(obj1);\n var key2 = mapToKey(obj2);\n return key1.localeCompare(key2);\n });\n}\n","import flatMap from '../polyfills/flatMap';\nimport objectValues from '../polyfills/objectValues';\nimport inspect from '../jsutils/inspect';\nimport invariant from '../jsutils/invariant';\nimport { print } from '../language/printer';\nimport { printBlockString } from '../language/blockString';\nimport { isIntrospectionType } from '../type/introspection';\nimport { GraphQLString, isSpecifiedScalarType } from '../type/scalars';\nimport { GraphQLDirective, DEFAULT_DEPRECATION_REASON, isSpecifiedDirective } from '../type/directives';\nimport { isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType } from '../type/definition';\nimport { astFromValue } from '../utilities/astFromValue';\n\n/**\n * Accepts options as a second argument:\n *\n * - commentDescriptions:\n * Provide true to use preceding comments as the description.\n *\n */\nexport function printSchema(schema, options) {\n return printFilteredSchema(schema, function (n) {\n return !isSpecifiedDirective(n);\n }, isDefinedType, options);\n}\nexport function printIntrospectionSchema(schema, options) {\n return printFilteredSchema(schema, isSpecifiedDirective, isIntrospectionType, options);\n}\n\nfunction isDefinedType(type) {\n return !isSpecifiedScalarType(type) && !isIntrospectionType(type);\n}\n\nfunction printFilteredSchema(schema, directiveFilter, typeFilter, options) {\n var directives = schema.getDirectives().filter(directiveFilter);\n var typeMap = schema.getTypeMap();\n var types = objectValues(typeMap).sort(function (type1, type2) {\n return type1.name.localeCompare(type2.name);\n }).filter(typeFilter);\n return [printSchemaDefinition(schema)].concat(directives.map(function (directive) {\n return printDirective(directive, options);\n }), types.map(function (type) {\n return printType(type, options);\n })).filter(Boolean).join('\\n\\n') + '\\n';\n}\n\nfunction printSchemaDefinition(schema) {\n if (isSchemaOfCommonNames(schema)) {\n return;\n }\n\n var operationTypes = [];\n var queryType = schema.getQueryType();\n\n if (queryType) {\n operationTypes.push(\" query: \".concat(queryType.name));\n }\n\n var mutationType = schema.getMutationType();\n\n if (mutationType) {\n operationTypes.push(\" mutation: \".concat(mutationType.name));\n }\n\n var subscriptionType = schema.getSubscriptionType();\n\n if (subscriptionType) {\n operationTypes.push(\" subscription: \".concat(subscriptionType.name));\n }\n\n return \"schema {\\n\".concat(operationTypes.join('\\n'), \"\\n}\");\n}\n/**\n * GraphQL schema define root types for each type of operation. These types are\n * the same as any other type and can be named in any manner, however there is\n * a common naming convention:\n *\n * schema {\n * query: Query\n * mutation: Mutation\n * }\n *\n * When using this naming convention, the schema description can be omitted.\n */\n\n\nfunction isSchemaOfCommonNames(schema) {\n var queryType = schema.getQueryType();\n\n if (queryType && queryType.name !== 'Query') {\n return false;\n }\n\n var mutationType = schema.getMutationType();\n\n if (mutationType && mutationType.name !== 'Mutation') {\n return false;\n }\n\n var subscriptionType = schema.getSubscriptionType();\n\n if (subscriptionType && subscriptionType.name !== 'Subscription') {\n return false;\n }\n\n return true;\n}\n\nexport function printType(type, options) {\n if (isScalarType(type)) {\n return printScalar(type, options);\n } else if (isObjectType(type)) {\n return printObject(type, options);\n } else if (isInterfaceType(type)) {\n return printInterface(type, options);\n } else if (isUnionType(type)) {\n return printUnion(type, options);\n } else if (isEnumType(type)) {\n return printEnum(type, options);\n } else if (isInputObjectType(type)) {\n return printInputObject(type, options);\n } // Not reachable. All possible types have been considered.\n\n\n /* istanbul ignore next */\n invariant(false, 'Unexpected type: ' + inspect(type));\n}\n\nfunction printScalar(type, options) {\n return printDescription(options, type) + \"scalar \".concat(type.name);\n}\n\nfunction printObject(type, options) {\n var interfaces = type.getInterfaces();\n var implementedInterfaces = interfaces.length ? ' implements ' + interfaces.map(function (i) {\n return i.name;\n }).join(' & ') : '';\n return printDescription(options, type) + \"type \".concat(type.name).concat(implementedInterfaces) + printFields(options, type);\n}\n\nfunction printInterface(type, options) {\n return printDescription(options, type) + \"interface \".concat(type.name) + printFields(options, type);\n}\n\nfunction printUnion(type, options) {\n var types = type.getTypes();\n var possibleTypes = types.length ? ' = ' + types.join(' | ') : '';\n return printDescription(options, type) + 'union ' + type.name + possibleTypes;\n}\n\nfunction printEnum(type, options) {\n var values = type.getValues().map(function (value, i) {\n return printDescription(options, value, ' ', !i) + ' ' + value.name + printDeprecated(value);\n });\n return printDescription(options, type) + \"enum \".concat(type.name) + printBlock(values);\n}\n\nfunction printInputObject(type, options) {\n var fields = objectValues(type.getFields()).map(function (f, i) {\n return printDescription(options, f, ' ', !i) + ' ' + printInputValue(f);\n });\n return printDescription(options, type) + \"input \".concat(type.name) + printBlock(fields);\n}\n\nfunction printFields(options, type) {\n var fields = objectValues(type.getFields()).map(function (f, i) {\n return printDescription(options, f, ' ', !i) + ' ' + f.name + printArgs(options, f.args, ' ') + ': ' + String(f.type) + printDeprecated(f);\n });\n return printBlock(fields);\n}\n\nfunction printBlock(items) {\n return items.length !== 0 ? ' {\\n' + items.join('\\n') + '\\n}' : '';\n}\n\nfunction printArgs(options, args) {\n var indentation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n\n if (args.length === 0) {\n return '';\n } // If every arg does not have a description, print them on one line.\n\n\n if (args.every(function (arg) {\n return !arg.description;\n })) {\n return '(' + args.map(printInputValue).join(', ') + ')';\n }\n\n return '(\\n' + args.map(function (arg, i) {\n return printDescription(options, arg, ' ' + indentation, !i) + ' ' + indentation + printInputValue(arg);\n }).join('\\n') + '\\n' + indentation + ')';\n}\n\nfunction printInputValue(arg) {\n var defaultAST = astFromValue(arg.defaultValue, arg.type);\n var argDecl = arg.name + ': ' + String(arg.type);\n\n if (defaultAST) {\n argDecl += \" = \".concat(print(defaultAST));\n }\n\n return argDecl;\n}\n\nfunction printDirective(directive, options) {\n return printDescription(options, directive) + 'directive @' + directive.name + printArgs(options, directive.args) + (directive.isRepeatable ? ' repeatable' : '') + ' on ' + directive.locations.join(' | ');\n}\n\nfunction printDeprecated(fieldOrEnumVal) {\n if (!fieldOrEnumVal.isDeprecated) {\n return '';\n }\n\n var reason = fieldOrEnumVal.deprecationReason;\n var reasonAST = astFromValue(reason, GraphQLString);\n\n if (reasonAST && reason !== '' && reason !== DEFAULT_DEPRECATION_REASON) {\n return ' @deprecated(reason: ' + print(reasonAST) + ')';\n }\n\n return ' @deprecated';\n}\n\nfunction printDescription(options, def) {\n var indentation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n var firstInBlock = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n\n if (!def.description) {\n return '';\n }\n\n var lines = descriptionLines(def.description, 120 - indentation.length);\n\n if (options && options.commentDescriptions) {\n return printDescriptionWithComments(lines, indentation, firstInBlock);\n }\n\n var text = lines.join('\\n');\n var preferMultipleLines = text.length > 70;\n var blockString = printBlockString(text, '', preferMultipleLines);\n var prefix = indentation && !firstInBlock ? '\\n' + indentation : indentation;\n return prefix + blockString.replace(/\\n/g, '\\n' + indentation) + '\\n';\n}\n\nfunction printDescriptionWithComments(lines, indentation, firstInBlock) {\n var description = indentation && !firstInBlock ? '\\n' : '';\n\n for (var _i2 = 0; _i2 < lines.length; _i2++) {\n var line = lines[_i2];\n\n if (line === '') {\n description += indentation + '#\\n';\n } else {\n description += indentation + '# ' + line + '\\n';\n }\n }\n\n return description;\n}\n\nfunction descriptionLines(description, maxLen) {\n var rawLines = description.split('\\n');\n return flatMap(rawLines, function (line) {\n if (line.length < maxLen + 5) {\n return line;\n } // For > 120 character long lines, cut at space boundaries into sublines\n // of ~80 chars.\n\n\n return breakLine(line, maxLen);\n });\n}\n\nfunction breakLine(line, maxLen) {\n var parts = line.split(new RegExp(\"((?: |^).{15,\".concat(maxLen - 40, \"}(?= |$))\")));\n\n if (parts.length < 4) {\n return [line];\n }\n\n var sublines = [parts[0] + parts[1] + parts[2]];\n\n for (var i = 3; i < parts.length; i += 2) {\n sublines.push(parts[i].slice(1) + parts[i + 1]);\n }\n\n return sublines;\n}\n","/* istanbul ignore file */\nimport inspect from '../jsutils/inspect';\nimport printPathArray from '../jsutils/printPathArray';\nimport { pathToArray } from '../jsutils/Path';\nimport { GraphQLError } from '../error/GraphQLError';\nimport { coerceInputValue } from './coerceInputValue';\n\n/**\n * Deprecated. Use coerceInputValue() directly for richer information.\n *\n * This function will be removed in v15\n */\nexport function coerceValue(inputValue, type, blameNode, path) {\n var errors = [];\n var value = coerceInputValue(inputValue, type, function (errorPath, invalidValue, error) {\n var errorPrefix = 'Invalid value ' + inspect(invalidValue);\n var pathArray = [].concat(pathToArray(path), errorPath);\n\n if (pathArray.length > 0) {\n errorPrefix += \" at \\\"value\".concat(printPathArray(pathArray), \"\\\"\");\n }\n\n errors.push(new GraphQLError(errorPrefix + ': ' + error.message, blameNode, undefined, undefined, undefined, error.originalError));\n });\n return errors.length > 0 ? {\n errors: errors,\n value: undefined\n } : {\n errors: undefined,\n value: value\n };\n}\n","/* istanbul ignore file */\nimport { coerceValue } from './coerceValue';\n/**\n * Deprecated. Use coerceInputValue() directly for richer information.\n *\n * This function will be removed in v15\n */\n\nexport function isValidJSValue(value, type) {\n var errors = coerceValue(value, type).errors;\n return errors ? errors.map(function (error) {\n return error.message;\n }) : [];\n}\n","import { Kind } from '../language/kinds';\nimport { visit, visitWithTypeInfo } from '../language/visitor';\nimport { ValuesOfCorrectType } from '../validation/rules/ValuesOfCorrectType';\nimport { ValidationContext } from '../validation/ValidationContext';\nimport { GraphQLSchema } from '../type/schema';\nimport { TypeInfo } from './TypeInfo';\n/**\n * Utility which determines if a value literal node is valid for an input type.\n *\n * Deprecated. Rely on validation for documents containing literal values.\n *\n * This function will be removed in v15\n */\n\nexport function isValidLiteralValue(type, valueNode) {\n var emptySchema = new GraphQLSchema({});\n var emptyDoc = {\n kind: Kind.DOCUMENT,\n definitions: []\n };\n var typeInfo = new TypeInfo(emptySchema, undefined, type);\n var context = new ValidationContext(emptySchema, emptyDoc, typeInfo);\n var visitor = ValuesOfCorrectType(context);\n visit(valueNode, visitWithTypeInfo(typeInfo, visitor));\n return context.getErrors();\n}\n","import flatMap from '../polyfills/flatMap';\n\n/**\n * Provided a collection of ASTs, presumably each from different files,\n * concatenate the ASTs together into batched AST, useful for validating many\n * GraphQL source files which together represent one conceptual application.\n */\nexport function concatAST(asts) {\n return {\n kind: 'Document',\n definitions: flatMap(asts, function (ast) {\n return ast.definitions;\n })\n };\n}\n","import { visit } from '../language/visitor';\n\n/**\n * separateOperations accepts a single AST document which may contain many\n * operations and fragments and returns a collection of AST documents each of\n * which contains a single operation as well the fragment definitions it\n * refers to.\n */\nexport function separateOperations(documentAST) {\n var operations = [];\n var fragments = Object.create(null);\n var positions = new Map();\n var depGraph = Object.create(null);\n var fromName;\n var idx = 0; // Populate metadata and build a dependency graph.\n\n visit(documentAST, {\n OperationDefinition: function OperationDefinition(node) {\n fromName = opName(node);\n operations.push(node);\n positions.set(node, idx++);\n },\n FragmentDefinition: function FragmentDefinition(node) {\n fromName = node.name.value;\n fragments[fromName] = node;\n positions.set(node, idx++);\n },\n FragmentSpread: function FragmentSpread(node) {\n var toName = node.name.value;\n (depGraph[fromName] || (depGraph[fromName] = Object.create(null)))[toName] = true;\n }\n }); // For each operation, produce a new synthesized AST which includes only what\n // is necessary for completing that operation.\n\n var separatedDocumentASTs = Object.create(null);\n\n for (var _i2 = 0; _i2 < operations.length; _i2++) {\n var operation = operations[_i2];\n var operationName = opName(operation);\n var dependencies = Object.create(null);\n collectTransitiveDependencies(dependencies, depGraph, operationName); // The list of definition nodes to be included for this operation, sorted\n // to retain the same order as the original document.\n\n var definitions = [operation];\n\n for (var _i4 = 0, _Object$keys2 = Object.keys(dependencies); _i4 < _Object$keys2.length; _i4++) {\n var name = _Object$keys2[_i4];\n definitions.push(fragments[name]);\n }\n\n definitions.sort(function (n1, n2) {\n return (positions.get(n1) || 0) - (positions.get(n2) || 0);\n });\n separatedDocumentASTs[operationName] = {\n kind: 'Document',\n definitions: definitions\n };\n }\n\n return separatedDocumentASTs;\n}\n\n// Provides the empty string for anonymous operations.\nfunction opName(operation) {\n return operation.name ? operation.name.value : '';\n} // From a dependency graph, collects a list of transitive dependencies by\n// recursing through a dependency graph.\n\n\nfunction collectTransitiveDependencies(collected, depGraph, fromName) {\n var immediateDeps = depGraph[fromName];\n\n if (immediateDeps) {\n for (var _i6 = 0, _Object$keys4 = Object.keys(immediateDeps); _i6 < _Object$keys4.length; _i6++) {\n var toName = _Object$keys4[_i6];\n\n if (!collected[toName]) {\n collected[toName] = true;\n collectTransitiveDependencies(collected, depGraph, toName);\n }\n }\n }\n}\n","import inspect from '../jsutils/inspect';\nimport { Source } from '../language/source';\nimport { TokenKind } from '../language/tokenKind';\nimport { createLexer, isPunctuatorToken } from '../language/lexer';\nimport { dedentBlockStringValue, getBlockStringIndentation } from '../language/blockString';\n/**\n * Strips characters that are not significant to the validity or execution\n * of a GraphQL document:\n * - UnicodeBOM\n * - WhiteSpace\n * - LineTerminator\n * - Comment\n * - Comma\n * - BlockString indentation\n *\n * Note: It is required to have a delimiter character between neighboring\n * non-punctuator tokens and this function always uses single space as delimiter.\n *\n * It is guaranteed that both input and output documents if parsed would result\n * in the exact same AST except for nodes location.\n *\n * Warning: It is guaranteed that this function will always produce stable results.\n * However, it's not guaranteed that it will stay the same between different\n * releases due to bugfixes or changes in the GraphQL specification.\n *\n * Query example:\n *\n * query SomeQuery($foo: String!, $bar: String) {\n * someField(foo: $foo, bar: $bar) {\n * a\n * b {\n * c\n * d\n * }\n * }\n * }\n *\n * Becomes:\n *\n * query SomeQuery($foo:String!$bar:String){someField(foo:$foo bar:$bar){a b{c d}}}\n *\n * SDL example:\n *\n * \"\"\"\n * Type description\n * \"\"\"\n * type Foo {\n * \"\"\"\n * Field description\n * \"\"\"\n * bar: String\n * }\n *\n * Becomes:\n *\n * \"\"\"Type description\"\"\" type Foo{\"\"\"Field description\"\"\" bar:String}\n */\n\nexport function stripIgnoredCharacters(source) {\n var sourceObj = typeof source === 'string' ? new Source(source) : source;\n\n if (!(sourceObj instanceof Source)) {\n throw new TypeError(\"Must provide string or Source. Received: \".concat(inspect(sourceObj)));\n }\n\n var body = sourceObj.body;\n var lexer = createLexer(sourceObj);\n var strippedBody = '';\n var wasLastAddedTokenNonPunctuator = false;\n\n while (lexer.advance().kind !== TokenKind.EOF) {\n var currentToken = lexer.token;\n var tokenKind = currentToken.kind;\n /**\n * Every two non-punctuator tokens should have space between them.\n * Also prevent case of non-punctuator token following by spread resulting\n * in invalid token (e.g. `1...` is invalid Float token).\n */\n\n var isNonPunctuator = !isPunctuatorToken(currentToken);\n\n if (wasLastAddedTokenNonPunctuator) {\n if (isNonPunctuator || currentToken.kind === TokenKind.SPREAD) {\n strippedBody += ' ';\n }\n }\n\n var tokenBody = body.slice(currentToken.start, currentToken.end);\n\n if (tokenKind === TokenKind.BLOCK_STRING) {\n strippedBody += dedentBlockString(tokenBody);\n } else {\n strippedBody += tokenBody;\n }\n\n wasLastAddedTokenNonPunctuator = isNonPunctuator;\n }\n\n return strippedBody;\n}\n\nfunction dedentBlockString(blockStr) {\n // skip leading and trailing triple quotations\n var rawStr = blockStr.slice(3, -3);\n var body = dedentBlockStringValue(rawStr);\n var lines = body.split(/\\r\\n|[\\n\\r]/g);\n\n if (getBlockStringIndentation(lines) > 0) {\n body = '\\n' + body;\n }\n\n var lastChar = body[body.length - 1];\n var hasTrailingQuote = lastChar === '\"' && body.slice(-4) !== '\\\\\"\"\"';\n\n if (hasTrailingQuote || lastChar === '\\\\') {\n body += '\\n';\n }\n\n return '\"\"\"' + body + '\"\"\"';\n}\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport objectValues from '../polyfills/objectValues';\nimport keyMap from '../jsutils/keyMap';\nimport inspect from '../jsutils/inspect';\nimport invariant from '../jsutils/invariant';\nimport { print } from '../language/printer';\nimport { visit } from '../language/visitor';\nimport { isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isNonNullType, isListType, isNamedType, isRequiredArgument, isRequiredInputField } from '../type/definition';\nimport { astFromValue } from './astFromValue';\nexport var BreakingChangeType = Object.freeze({\n TYPE_REMOVED: 'TYPE_REMOVED',\n TYPE_CHANGED_KIND: 'TYPE_CHANGED_KIND',\n TYPE_REMOVED_FROM_UNION: 'TYPE_REMOVED_FROM_UNION',\n VALUE_REMOVED_FROM_ENUM: 'VALUE_REMOVED_FROM_ENUM',\n REQUIRED_INPUT_FIELD_ADDED: 'REQUIRED_INPUT_FIELD_ADDED',\n INTERFACE_REMOVED_FROM_OBJECT: 'INTERFACE_REMOVED_FROM_OBJECT',\n FIELD_REMOVED: 'FIELD_REMOVED',\n FIELD_CHANGED_KIND: 'FIELD_CHANGED_KIND',\n REQUIRED_ARG_ADDED: 'REQUIRED_ARG_ADDED',\n ARG_REMOVED: 'ARG_REMOVED',\n ARG_CHANGED_KIND: 'ARG_CHANGED_KIND',\n DIRECTIVE_REMOVED: 'DIRECTIVE_REMOVED',\n DIRECTIVE_ARG_REMOVED: 'DIRECTIVE_ARG_REMOVED',\n REQUIRED_DIRECTIVE_ARG_ADDED: 'REQUIRED_DIRECTIVE_ARG_ADDED',\n DIRECTIVE_LOCATION_REMOVED: 'DIRECTIVE_LOCATION_REMOVED'\n});\nexport var DangerousChangeType = Object.freeze({\n VALUE_ADDED_TO_ENUM: 'VALUE_ADDED_TO_ENUM',\n TYPE_ADDED_TO_UNION: 'TYPE_ADDED_TO_UNION',\n OPTIONAL_INPUT_FIELD_ADDED: 'OPTIONAL_INPUT_FIELD_ADDED',\n OPTIONAL_ARG_ADDED: 'OPTIONAL_ARG_ADDED',\n INTERFACE_ADDED_TO_OBJECT: 'INTERFACE_ADDED_TO_OBJECT',\n ARG_DEFAULT_VALUE_CHANGE: 'ARG_DEFAULT_VALUE_CHANGE'\n});\n\n/**\n * Given two schemas, returns an Array containing descriptions of all the types\n * of breaking changes covered by the other functions down below.\n */\nexport function findBreakingChanges(oldSchema, newSchema) {\n var breakingChanges = findSchemaChanges(oldSchema, newSchema).filter(function (change) {\n return change.type in BreakingChangeType;\n });\n return breakingChanges;\n}\n/**\n * Given two schemas, returns an Array containing descriptions of all the types\n * of potentially dangerous changes covered by the other functions down below.\n */\n\nexport function findDangerousChanges(oldSchema, newSchema) {\n var dangerousChanges = findSchemaChanges(oldSchema, newSchema).filter(function (change) {\n return change.type in DangerousChangeType;\n });\n return dangerousChanges;\n}\n\nfunction findSchemaChanges(oldSchema, newSchema) {\n return [].concat(findTypeChanges(oldSchema, newSchema), findDirectiveChanges(oldSchema, newSchema));\n}\n\nfunction findDirectiveChanges(oldSchema, newSchema) {\n var schemaChanges = [];\n var directivesDiff = diff(oldSchema.getDirectives(), newSchema.getDirectives());\n\n for (var _i2 = 0, _directivesDiff$remov2 = directivesDiff.removed; _i2 < _directivesDiff$remov2.length; _i2++) {\n var oldDirective = _directivesDiff$remov2[_i2];\n schemaChanges.push({\n type: BreakingChangeType.DIRECTIVE_REMOVED,\n description: \"\".concat(oldDirective.name, \" was removed.\")\n });\n }\n\n for (var _i4 = 0, _directivesDiff$persi2 = directivesDiff.persisted; _i4 < _directivesDiff$persi2.length; _i4++) {\n var _ref2 = _directivesDiff$persi2[_i4];\n var _oldDirective = _ref2[0];\n var newDirective = _ref2[1];\n var argsDiff = diff(_oldDirective.args, newDirective.args);\n\n for (var _i6 = 0, _argsDiff$added2 = argsDiff.added; _i6 < _argsDiff$added2.length; _i6++) {\n var newArg = _argsDiff$added2[_i6];\n\n if (isRequiredArgument(newArg)) {\n schemaChanges.push({\n type: BreakingChangeType.REQUIRED_DIRECTIVE_ARG_ADDED,\n description: \"A required arg \".concat(newArg.name, \" on directive \").concat(_oldDirective.name, \" was added.\")\n });\n }\n }\n\n for (var _i8 = 0, _argsDiff$removed2 = argsDiff.removed; _i8 < _argsDiff$removed2.length; _i8++) {\n var oldArg = _argsDiff$removed2[_i8];\n schemaChanges.push({\n type: BreakingChangeType.DIRECTIVE_ARG_REMOVED,\n description: \"\".concat(oldArg.name, \" was removed from \").concat(_oldDirective.name, \".\")\n });\n }\n\n for (var _i10 = 0, _oldDirective$locatio2 = _oldDirective.locations; _i10 < _oldDirective$locatio2.length; _i10++) {\n var location = _oldDirective$locatio2[_i10];\n\n if (newDirective.locations.indexOf(location) === -1) {\n schemaChanges.push({\n type: BreakingChangeType.DIRECTIVE_LOCATION_REMOVED,\n description: \"\".concat(location, \" was removed from \").concat(_oldDirective.name, \".\")\n });\n }\n }\n }\n\n return schemaChanges;\n}\n\nfunction findTypeChanges(oldSchema, newSchema) {\n var schemaChanges = [];\n var typesDiff = diff(objectValues(oldSchema.getTypeMap()), objectValues(newSchema.getTypeMap()));\n\n for (var _i12 = 0, _typesDiff$removed2 = typesDiff.removed; _i12 < _typesDiff$removed2.length; _i12++) {\n var oldType = _typesDiff$removed2[_i12];\n schemaChanges.push({\n type: BreakingChangeType.TYPE_REMOVED,\n description: \"\".concat(oldType.name, \" was removed.\")\n });\n }\n\n for (var _i14 = 0, _typesDiff$persisted2 = typesDiff.persisted; _i14 < _typesDiff$persisted2.length; _i14++) {\n var _ref4 = _typesDiff$persisted2[_i14];\n var _oldType = _ref4[0];\n var newType = _ref4[1];\n\n if (isEnumType(_oldType) && isEnumType(newType)) {\n schemaChanges.push.apply(schemaChanges, findEnumTypeChanges(_oldType, newType));\n } else if (isUnionType(_oldType) && isUnionType(newType)) {\n schemaChanges.push.apply(schemaChanges, findUnionTypeChanges(_oldType, newType));\n } else if (isInputObjectType(_oldType) && isInputObjectType(newType)) {\n schemaChanges.push.apply(schemaChanges, findInputObjectTypeChanges(_oldType, newType));\n } else if (isObjectType(_oldType) && isObjectType(newType)) {\n schemaChanges.push.apply(schemaChanges, findObjectTypeChanges(_oldType, newType));\n } else if (isInterfaceType(_oldType) && isInterfaceType(newType)) {\n schemaChanges.push.apply(schemaChanges, findFieldChanges(_oldType, newType));\n } else if (_oldType.constructor !== newType.constructor) {\n schemaChanges.push({\n type: BreakingChangeType.TYPE_CHANGED_KIND,\n description: \"\".concat(_oldType.name, \" changed from \") + \"\".concat(typeKindName(_oldType), \" to \").concat(typeKindName(newType), \".\")\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction findInputObjectTypeChanges(oldType, newType) {\n var schemaChanges = [];\n var fieldsDiff = diff(objectValues(oldType.getFields()), objectValues(newType.getFields()));\n\n for (var _i16 = 0, _fieldsDiff$added2 = fieldsDiff.added; _i16 < _fieldsDiff$added2.length; _i16++) {\n var newField = _fieldsDiff$added2[_i16];\n\n if (isRequiredInputField(newField)) {\n schemaChanges.push({\n type: BreakingChangeType.REQUIRED_INPUT_FIELD_ADDED,\n description: \"A required field \".concat(newField.name, \" on input type \").concat(oldType.name, \" was added.\")\n });\n } else {\n schemaChanges.push({\n type: DangerousChangeType.OPTIONAL_INPUT_FIELD_ADDED,\n description: \"An optional field \".concat(newField.name, \" on input type \").concat(oldType.name, \" was added.\")\n });\n }\n }\n\n for (var _i18 = 0, _fieldsDiff$removed2 = fieldsDiff.removed; _i18 < _fieldsDiff$removed2.length; _i18++) {\n var oldField = _fieldsDiff$removed2[_i18];\n schemaChanges.push({\n type: BreakingChangeType.FIELD_REMOVED,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" was removed.\")\n });\n }\n\n for (var _i20 = 0, _fieldsDiff$persisted2 = fieldsDiff.persisted; _i20 < _fieldsDiff$persisted2.length; _i20++) {\n var _ref6 = _fieldsDiff$persisted2[_i20];\n var _oldField = _ref6[0];\n var _newField = _ref6[1];\n var isSafe = isChangeSafeForInputObjectFieldOrFieldArg(_oldField.type, _newField.type);\n\n if (!isSafe) {\n schemaChanges.push({\n type: BreakingChangeType.FIELD_CHANGED_KIND,\n description: \"\".concat(oldType.name, \".\").concat(_oldField.name, \" changed type from \") + \"\".concat(String(_oldField.type), \" to \").concat(String(_newField.type), \".\")\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction findUnionTypeChanges(oldType, newType) {\n var schemaChanges = [];\n var possibleTypesDiff = diff(oldType.getTypes(), newType.getTypes());\n\n for (var _i22 = 0, _possibleTypesDiff$ad2 = possibleTypesDiff.added; _i22 < _possibleTypesDiff$ad2.length; _i22++) {\n var newPossibleType = _possibleTypesDiff$ad2[_i22];\n schemaChanges.push({\n type: DangerousChangeType.TYPE_ADDED_TO_UNION,\n description: \"\".concat(newPossibleType.name, \" was added to union type \").concat(oldType.name, \".\")\n });\n }\n\n for (var _i24 = 0, _possibleTypesDiff$re2 = possibleTypesDiff.removed; _i24 < _possibleTypesDiff$re2.length; _i24++) {\n var oldPossibleType = _possibleTypesDiff$re2[_i24];\n schemaChanges.push({\n type: BreakingChangeType.TYPE_REMOVED_FROM_UNION,\n description: \"\".concat(oldPossibleType.name, \" was removed from union type \").concat(oldType.name, \".\")\n });\n }\n\n return schemaChanges;\n}\n\nfunction findEnumTypeChanges(oldType, newType) {\n var schemaChanges = [];\n var valuesDiff = diff(oldType.getValues(), newType.getValues());\n\n for (var _i26 = 0, _valuesDiff$added2 = valuesDiff.added; _i26 < _valuesDiff$added2.length; _i26++) {\n var newValue = _valuesDiff$added2[_i26];\n schemaChanges.push({\n type: DangerousChangeType.VALUE_ADDED_TO_ENUM,\n description: \"\".concat(newValue.name, \" was added to enum type \").concat(oldType.name, \".\")\n });\n }\n\n for (var _i28 = 0, _valuesDiff$removed2 = valuesDiff.removed; _i28 < _valuesDiff$removed2.length; _i28++) {\n var oldValue = _valuesDiff$removed2[_i28];\n schemaChanges.push({\n type: BreakingChangeType.VALUE_REMOVED_FROM_ENUM,\n description: \"\".concat(oldValue.name, \" was removed from enum type \").concat(oldType.name, \".\")\n });\n }\n\n return schemaChanges;\n}\n\nfunction findObjectTypeChanges(oldType, newType) {\n var schemaChanges = findFieldChanges(oldType, newType);\n var interfacesDiff = diff(oldType.getInterfaces(), newType.getInterfaces());\n\n for (var _i30 = 0, _interfacesDiff$added2 = interfacesDiff.added; _i30 < _interfacesDiff$added2.length; _i30++) {\n var newInterface = _interfacesDiff$added2[_i30];\n schemaChanges.push({\n type: DangerousChangeType.INTERFACE_ADDED_TO_OBJECT,\n description: \"\".concat(newInterface.name, \" added to interfaces implemented by \").concat(oldType.name, \".\")\n });\n }\n\n for (var _i32 = 0, _interfacesDiff$remov2 = interfacesDiff.removed; _i32 < _interfacesDiff$remov2.length; _i32++) {\n var oldInterface = _interfacesDiff$remov2[_i32];\n schemaChanges.push({\n type: BreakingChangeType.INTERFACE_REMOVED_FROM_OBJECT,\n description: \"\".concat(oldType.name, \" no longer implements interface \").concat(oldInterface.name, \".\")\n });\n }\n\n return schemaChanges;\n}\n\nfunction findFieldChanges(oldType, newType) {\n var schemaChanges = [];\n var fieldsDiff = diff(objectValues(oldType.getFields()), objectValues(newType.getFields()));\n\n for (var _i34 = 0, _fieldsDiff$removed4 = fieldsDiff.removed; _i34 < _fieldsDiff$removed4.length; _i34++) {\n var oldField = _fieldsDiff$removed4[_i34];\n schemaChanges.push({\n type: BreakingChangeType.FIELD_REMOVED,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" was removed.\")\n });\n }\n\n for (var _i36 = 0, _fieldsDiff$persisted4 = fieldsDiff.persisted; _i36 < _fieldsDiff$persisted4.length; _i36++) {\n var _ref8 = _fieldsDiff$persisted4[_i36];\n var _oldField2 = _ref8[0];\n var newField = _ref8[1];\n schemaChanges.push.apply(schemaChanges, findArgChanges(oldType, _oldField2, newField));\n var isSafe = isChangeSafeForObjectOrInterfaceField(_oldField2.type, newField.type);\n\n if (!isSafe) {\n schemaChanges.push({\n type: BreakingChangeType.FIELD_CHANGED_KIND,\n description: \"\".concat(oldType.name, \".\").concat(_oldField2.name, \" changed type from \") + \"\".concat(String(_oldField2.type), \" to \").concat(String(newField.type), \".\")\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction findArgChanges(oldType, oldField, newField) {\n var schemaChanges = [];\n var argsDiff = diff(oldField.args, newField.args);\n\n for (var _i38 = 0, _argsDiff$removed4 = argsDiff.removed; _i38 < _argsDiff$removed4.length; _i38++) {\n var oldArg = _argsDiff$removed4[_i38];\n schemaChanges.push({\n type: BreakingChangeType.ARG_REMOVED,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" arg \").concat(oldArg.name, \" was removed.\")\n });\n }\n\n for (var _i40 = 0, _argsDiff$persisted2 = argsDiff.persisted; _i40 < _argsDiff$persisted2.length; _i40++) {\n var _ref10 = _argsDiff$persisted2[_i40];\n var _oldArg = _ref10[0];\n var newArg = _ref10[1];\n var isSafe = isChangeSafeForInputObjectFieldOrFieldArg(_oldArg.type, newArg.type);\n\n if (!isSafe) {\n schemaChanges.push({\n type: BreakingChangeType.ARG_CHANGED_KIND,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" arg \").concat(_oldArg.name, \" has changed type from \") + \"\".concat(String(_oldArg.type), \" to \").concat(String(newArg.type), \".\")\n });\n } else if (_oldArg.defaultValue !== undefined) {\n if (newArg.defaultValue === undefined) {\n schemaChanges.push({\n type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" arg \").concat(_oldArg.name, \" defaultValue was removed.\")\n });\n } else {\n // Since we looking only for client's observable changes we should\n // compare default values in the same representation as they are\n // represented inside introspection.\n var oldValueStr = stringifyValue(_oldArg.defaultValue, _oldArg.type);\n var newValueStr = stringifyValue(newArg.defaultValue, newArg.type);\n\n if (oldValueStr !== newValueStr) {\n schemaChanges.push({\n type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" arg \").concat(_oldArg.name, \" has changed defaultValue from \").concat(oldValueStr, \" to \").concat(newValueStr, \".\")\n });\n }\n }\n }\n }\n\n for (var _i42 = 0, _argsDiff$added4 = argsDiff.added; _i42 < _argsDiff$added4.length; _i42++) {\n var _newArg = _argsDiff$added4[_i42];\n\n if (isRequiredArgument(_newArg)) {\n schemaChanges.push({\n type: BreakingChangeType.REQUIRED_ARG_ADDED,\n description: \"A required arg \".concat(_newArg.name, \" on \").concat(oldType.name, \".\").concat(oldField.name, \" was added.\")\n });\n } else {\n schemaChanges.push({\n type: DangerousChangeType.OPTIONAL_ARG_ADDED,\n description: \"An optional arg \".concat(_newArg.name, \" on \").concat(oldType.name, \".\").concat(oldField.name, \" was added.\")\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction isChangeSafeForObjectOrInterfaceField(oldType, newType) {\n if (isListType(oldType)) {\n return (// if they're both lists, make sure the underlying types are compatible\n isListType(newType) && isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType) || // moving from nullable to non-null of the same underlying type is safe\n isNonNullType(newType) && isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType)\n );\n }\n\n if (isNonNullType(oldType)) {\n // if they're both non-null, make sure the underlying types are compatible\n return isNonNullType(newType) && isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType);\n }\n\n return (// if they're both named types, see if their names are equivalent\n isNamedType(newType) && oldType.name === newType.name || // moving from nullable to non-null of the same underlying type is safe\n isNonNullType(newType) && isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType)\n );\n}\n\nfunction isChangeSafeForInputObjectFieldOrFieldArg(oldType, newType) {\n if (isListType(oldType)) {\n // if they're both lists, make sure the underlying types are compatible\n return isListType(newType) && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType);\n }\n\n if (isNonNullType(oldType)) {\n return (// if they're both non-null, make sure the underlying types are\n // compatible\n isNonNullType(newType) && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType) || // moving from non-null to nullable of the same underlying type is safe\n !isNonNullType(newType) && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType)\n );\n } // if they're both named types, see if their names are equivalent\n\n\n return isNamedType(newType) && oldType.name === newType.name;\n}\n\nfunction typeKindName(type) {\n if (isScalarType(type)) {\n return 'a Scalar type';\n }\n\n if (isObjectType(type)) {\n return 'an Object type';\n }\n\n if (isInterfaceType(type)) {\n return 'an Interface type';\n }\n\n if (isUnionType(type)) {\n return 'a Union type';\n }\n\n if (isEnumType(type)) {\n return 'an Enum type';\n }\n\n /* istanbul ignore else */\n if (isInputObjectType(type)) {\n return 'an Input type';\n } // Not reachable. All possible named types have been considered.\n\n\n /* istanbul ignore next */\n invariant(false, 'Unexpected type: ' + inspect(type));\n}\n\nfunction stringifyValue(value, type) {\n var ast = astFromValue(value, type);\n\n /* istanbul ignore next */\n ast != null || invariant(0);\n var sortedAST = visit(ast, {\n ObjectValue: function ObjectValue(objectNode) {\n var fields = [].concat(objectNode.fields).sort(function (fieldA, fieldB) {\n return fieldA.name.value.localeCompare(fieldB.name.value);\n });\n return _objectSpread({}, objectNode, {\n fields: fields\n });\n }\n });\n return print(sortedAST);\n}\n\nfunction diff(oldArray, newArray) {\n var added = [];\n var removed = [];\n var persisted = [];\n var oldMap = keyMap(oldArray, function (_ref11) {\n var name = _ref11.name;\n return name;\n });\n var newMap = keyMap(newArray, function (_ref12) {\n var name = _ref12.name;\n return name;\n });\n\n for (var _i44 = 0; _i44 < oldArray.length; _i44++) {\n var oldItem = oldArray[_i44];\n var newItem = newMap[oldItem.name];\n\n if (newItem === undefined) {\n removed.push(oldItem);\n } else {\n persisted.push([oldItem, newItem]);\n }\n }\n\n for (var _i46 = 0; _i46 < newArray.length; _i46++) {\n var _newItem = newArray[_i46];\n\n if (oldMap[_newItem.name] === undefined) {\n added.push(_newItem);\n }\n }\n\n return {\n added: added,\n persisted: persisted,\n removed: removed\n };\n}\n","//! moment.js\n//! version : 2.29.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i, 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 // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key;\n for (i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i;\n for (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 var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (\n matched,\n p1,\n p2,\n p3,\n p4\n ) {\n return p1 || p2 || p3 || p4;\n })\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback;\n 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 MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n '_'\n ),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (\n input,\n week,\n config,\n token\n ) {\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 '_'\n ),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat;\n\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 function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era;\n\n tokens =\n 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)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false;\n\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 validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < 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 =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (\n input,\n array,\n config,\n token\n ) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n input,\n week,\n config,\n token\n ) {\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(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","var __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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport 'navigator.sendbeacon';\nimport { canUseDOM } from 'exenv';\nimport React, { createContext, useContext, useEffect } from 'react';\nimport * as Bowser from 'bowser';\nvar bufferLength = 1;\nvar buffer = [];\nvar STORAGE_TOKEN = 'session';\nvar STORAGE_TAB_TOKEN = 'tab';\nvar STORAGE_TIME_TOKEN = 'last_session_timestamp';\nvar STORAGE_PERMANENT_TOKEN = 'browser_id';\nvar now = new Date().getTime();\nvar differenceBetweenDates = 3600000; // ms, un'ora praticamente\nvar baseUrl = null;\nvar inited = false;\nvar targetSiteLocal = '';\nvar defaultUpdatePolicy = function (event, events) { return events.concat([event]); };\nvar updatePolicy = defaultUpdatePolicy;\nvar browser = {\n name: 'ssr',\n version: 1,\n};\nif (canUseDOM) {\n browser = Bowser.getParser(window.navigator.userAgent).getBrowser();\n}\nexport var TrackingContext = createContext({ where: [] });\nvar generateToken = function () {\n return Math.random()\n .toString(36)\n .substring(2);\n};\nexport var getSession = function () {\n return canUseDOM ? localStorage.getItem(STORAGE_TOKEN) : null;\n};\nexport var getTab = function () {\n return canUseDOM ? sessionStorage.getItem(STORAGE_TAB_TOKEN) : null;\n};\nexport var getBId = function () {\n return canUseDOM ? localStorage.getItem(STORAGE_PERMANENT_TOKEN) : null;\n};\nexport function init(args) {\n bufferLength = args.bufferLength;\n baseUrl = args.baseUrl;\n inited = true;\n targetSiteLocal = args.targetSite;\n if (args.policy) {\n updatePolicy = args.policy;\n }\n if (!canUseDOM)\n return;\n if (!getBId()) {\n localStorage.setItem(STORAGE_PERMANENT_TOKEN, generateToken());\n }\n // genero un token a per la sessione in tab\n if (!getTab()) {\n sessionStorage.setItem(STORAGE_TAB_TOKEN, generateToken());\n }\n // controllo il token per il local storage {\n var isTooOld = !localStorage.getItem(STORAGE_TIME_TOKEN) ||\n now - Number(localStorage.getItem(STORAGE_TIME_TOKEN)) >\n differenceBetweenDates;\n if (!getSession() || isTooOld) {\n localStorage.setItem(STORAGE_TOKEN, generateToken());\n }\n localStorage.setItem(STORAGE_TIME_TOKEN, now.toString());\n}\nexport var ExtendContext = function (_a) {\n var transformer = _a.transformer, children = _a.children;\n var context = useContext(TrackingContext);\n var Provider = TrackingContext.Provider;\n return React.createElement(Provider, { value: transformer(context), children: children });\n};\nexport var WhereBlock = function (_a) {\n var step = _a.step, children = _a.children;\n return (React.createElement(ExtendContext, { transformer: function (context) { return (__assign(__assign({}, context), { where: __spreadArrays(context.where, [step]) })); }, children: children }));\n};\n/**\n * Blocco di comodo per utilizzare gli 'useEffect' all'interno di componenti\n * complessi che quindi non permetterebbero di impostare useEffect senza\n * scomporre il componente in diversi componenti\n */\nexport var ViewBlock = function (_a) {\n var event = _a.event, children = _a.children;\n var track = useTracking();\n useEffect(function () {\n track(event);\n }, []);\n return React.createElement(React.Fragment, null, children);\n};\nexport var useTracking = function (overrides) {\n if (overrides === void 0) { overrides = {}; }\n var context = useContext(TrackingContext);\n return function (action, transformer) {\n var transformedContext = transformer ? transformer(context) : context;\n track(__assign(__assign(__assign({}, transformedContext), overrides), { action: action }));\n };\n};\nexport function track(data) {\n if (!canUseDOM)\n return;\n if (!inited) {\n throw new Error('Called track before initialization');\n }\n var event = __assign(__assign({}, data), { timestamp: new Date(), who: __assign(__assign({}, data.who), { tabId: getTab(), sessionId: getSession(), browserId: getBId(), browserName: browser.name, browserVersion: browser.version }) });\n var newBuffer = updatePolicy(event, buffer);\n if (newBuffer.length === bufferLength) {\n buffer = [];\n send(newBuffer);\n }\n else {\n buffer = newBuffer;\n }\n}\nfunction send(chunk) {\n return __awaiter(this, void 0, void 0, function () {\n var obj, token;\n return __generator(this, function (_a) {\n // faccio l'invio dei dati solo se sono su client, su server e' inutile\n if (canUseDOM && baseUrl !== null) {\n try {\n obj = { objs: chunk, targetSite: targetSiteLocal };\n token = localStorage.getItem('auth_token');\n if (token) {\n obj.authorization = token;\n }\n navigator.sendBeacon(baseUrl, JSON.stringify(obj));\n }\n catch (e) {\n console.error(e);\n return [2 /*return*/, e];\n }\n }\n return [2 /*return*/];\n });\n });\n}\nif (canUseDOM) {\n window.addEventListener('unload', function () {\n if (buffer.length > 0) {\n send(buffer);\n }\n });\n}\n//# sourceMappingURL=index.js.map","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\nimport { Primitive } from '@sentry/types';\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat: any): boolean {\n switch (Object.prototype.toString.call(wat)) {\n case '[object Error]':\n return true;\n case '[object Exception]':\n return true;\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat: any): boolean {\n return Object.prototype.toString.call(wat) === '[object ErrorEvent]';\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat: any): boolean {\n return Object.prototype.toString.call(wat) === '[object DOMError]';\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat: any): boolean {\n return Object.prototype.toString.call(wat) === '[object DOMException]';\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat: any): boolean {\n return Object.prototype.toString.call(wat) === '[object String]';\n}\n\n/**\n * Checks whether given value's is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat: any): wat is Primitive {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat: any): boolean {\n return Object.prototype.toString.call(wat) === '[object Object]';\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat: any): boolean {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat: any): boolean {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat: any): boolean {\n return Object.prototype.toString.call(wat) === '[object RegExp]';\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat: any): boolean {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat: any): boolean {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat: any, base: any): boolean {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n","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}","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\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","/**\n * returns true if the given object is a promise\n */\nexport function isPromise(obj) {\n if (obj && typeof obj.then === 'function') {\n return true;\n } else {\n return false;\n }\n}\nexport function sleep(time) {\n if (!time) time = 0;\n return new Promise(function (res) {\n return setTimeout(res, time);\n });\n}\nexport function randomInt(min, max) {\n return Math.floor(Math.random() * (max - min + 1) + min);\n}\n/**\n * https://stackoverflow.com/a/1349426/3443137\n */\n\nexport function randomToken(length) {\n if (!length) length = 5;\n var text = '';\n var possible = 'abcdefghijklmnopqrstuvwxzy0123456789';\n\n for (var i = 0; i < length; i++) {\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n\n return text;\n}\nvar lastMs = 0;\nvar additional = 0;\n/**\n * returns the current time in micro-seconds,\n * WARNING: This is a pseudo-function\n * Performance.now is not reliable in webworkers, so we just make sure to never return the same time.\n * This is enough in browsers, and this function will not be used in nodejs.\n * The main reason for this hack is to ensure that BroadcastChannel behaves equal to production when it is used in fast-running unit tests.\n */\n\nexport function microSeconds() {\n var ms = new Date().getTime();\n\n if (ms === lastMs) {\n additional++;\n return ms * 1000 + additional;\n } else {\n lastMs = ms;\n additional = 0;\n return ms * 1000;\n }\n}\n/**\n * copied from the 'detect-node' npm module\n * We cannot use the module directly because it causes problems with rollup\n * @link https://github.com/iliakan/detect-node/blob/master/index.js\n */\n\nexport var isNode = Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\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}","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}","/**\n * Creates a keyed JS object from an array, given a function to produce the keys\n * and a function to produce the values from each item in the array.\n *\n * const phoneBook = [\n * { name: 'Jon', num: '555-1234' },\n * { name: 'Jenny', num: '867-5309' }\n * ]\n *\n * // { Jon: '555-1234', Jenny: '867-5309' }\n * const phonesByName = keyValMap(\n * phoneBook,\n * entry => entry.name,\n * entry => entry.num\n * )\n *\n */\nexport default function keyValMap(list, keyFn, valFn) {\n return list.reduce(function (map, item) {\n map[keyFn(item)] = valFn(item);\n return map;\n }, Object.create(null));\n}\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct\");\n\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn\");\n\nfunction _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}\n\nmodule.exports = _createSuper;","import inspect from '../jsutils/inspect';\nimport invariant from '../jsutils/invariant';\nimport { Kind } from '../language/kinds';\nimport { GraphQLList, GraphQLNonNull } from '../type/definition';\n/**\n * Given a Schema and an AST node describing a type, return a GraphQLType\n * definition which applies to that type. For example, if provided the parsed\n * AST node for `[User]`, a GraphQLList instance will be returned, containing\n * the type called \"User\" found in the schema. If a type called \"User\" is not\n * found in the schema, then undefined will be returned.\n */\n\n/* eslint-disable no-redeclare */\n\nexport function typeFromAST(schema, typeNode) {\n /* eslint-enable no-redeclare */\n var innerType;\n\n if (typeNode.kind === Kind.LIST_TYPE) {\n innerType = typeFromAST(schema, typeNode.type);\n return innerType && GraphQLList(innerType);\n }\n\n if (typeNode.kind === Kind.NON_NULL_TYPE) {\n innerType = typeFromAST(schema, typeNode.type);\n return innerType && GraphQLNonNull(innerType);\n }\n\n /* istanbul ignore else */\n if (typeNode.kind === Kind.NAMED_TYPE) {\n return schema.getType(typeNode.name.value);\n } // Not reachable. All possible type nodes have been considered.\n\n\n /* istanbul ignore next */\n invariant(false, 'Unexpected type node: ' + inspect(typeNode));\n}\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","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}","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","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","/**\n * Creates a keyed JS object from an array, given a function to produce the keys\n * for each value in the array.\n *\n * This provides a convenient lookup for the array items if the key function\n * produces unique results.\n *\n * const phoneBook = [\n * { name: 'Jon', num: '555-1234' },\n * { name: 'Jenny', num: '867-5309' }\n * ]\n *\n * // { Jon: { name: 'Jon', num: '555-1234' },\n * // Jenny: { name: 'Jenny', num: '867-5309' } }\n * const entriesByName = keyMap(\n * phoneBook,\n * entry => entry.name\n * )\n *\n * // { name: 'Jenny', num: '857-6309' }\n * const jennyEntry = entriesByName['Jenny']\n *\n */\nexport default function keyMap(list, keyFn) {\n return list.reduce(function (map, item) {\n map[keyFn(item)] = item;\n return map;\n }, Object.create(null));\n}\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","/** SF picklist */\nexport var Abbonamento__C_Package__C_Enum;\n(function (Abbonamento__C_Package__C_Enum) {\n /** DOLCESALATO_Cartacei e Sfogliabili Digitali */\n Abbonamento__C_Package__C_Enum[\"DolcesalatoCartaceiESfogliabiliDigitali\"] = \"DOLCESALATO_CARTACEI_E_SFOGLIABILI_DIGITALI\";\n /** DOLCESALATO_Sfogliabili Digitali */\n Abbonamento__C_Package__C_Enum[\"DolcesalatoSfogliabiliDigitali\"] = \"DOLCESALATO_SFOGLIABILI_DIGITALI\";\n /** FOOD_Cartacei e Sfogliabili Digitali */\n Abbonamento__C_Package__C_Enum[\"FoodCartaceiESfogliabiliDigitali\"] = \"FOOD_CARTACEI_E_SFOGLIABILI_DIGITALI\";\n /** FOOD_Sfogliabili Digitali */\n Abbonamento__C_Package__C_Enum[\"FoodSfogliabiliDigitali\"] = \"FOOD_SFOGLIABILI_DIGITALI\";\n /** FOODSERVICE_Cartacei e Sfogliabili Digitali */\n Abbonamento__C_Package__C_Enum[\"FoodserviceCartaceiESfogliabiliDigitali\"] = \"FOODSERVICE_CARTACEI_E_SFOGLIABILI_DIGITALI\";\n /** FOODSERVICE_Sfogliabili Digitali */\n Abbonamento__C_Package__C_Enum[\"FoodserviceSfogliabiliDigitali\"] = \"FOODSERVICE_SFOGLIABILI_DIGITALI\";\n /** ITALIANFOOD.NET_Cartacei e Sfogliabili Digitali */\n Abbonamento__C_Package__C_Enum[\"ItalianfoodNetCartaceiESfogliabiliDigitali\"] = \"ITALIANFOOD_NET_CARTACEI_E_SFOGLIABILI_DIGITALI\";\n /** ITALIANFOOD.NET_Sfogliabili Digitali */\n Abbonamento__C_Package__C_Enum[\"ItalianfoodNetSfogliabiliDigitali\"] = \"ITALIANFOOD_NET_SFOGLIABILI_DIGITALI\";\n /** BB - Premium */\n Abbonamento__C_Package__C_Enum[\"BbPremium\"] = \"BB_PREMIUM\";\n /** BB - Basic */\n Abbonamento__C_Package__C_Enum[\"BbBasic\"] = \"BB_BASIC\";\n})(Abbonamento__C_Package__C_Enum || (Abbonamento__C_Package__C_Enum = {}));\n/** SF picklist */\nexport var Abbonamento__C_Rivista__C_Enum;\n(function (Abbonamento__C_Rivista__C_Enum) {\n /** FOOD */\n Abbonamento__C_Rivista__C_Enum[\"Food\"] = \"FOOD\";\n /** Dolcesalato */\n Abbonamento__C_Rivista__C_Enum[\"Dolcesalato\"] = \"DOLCESALATO\";\n /** Bar Business */\n Abbonamento__C_Rivista__C_Enum[\"BarBusiness\"] = \"BAR_BUSINESS\";\n /** ITALIANFOOD.NET */\n Abbonamento__C_Rivista__C_Enum[\"ItalianfoodNet\"] = \"ITALIANFOOD_NET\";\n /** Food Service */\n Abbonamento__C_Rivista__C_Enum[\"FoodService\"] = \"FOOD_SERVICE\";\n})(Abbonamento__C_Rivista__C_Enum || (Abbonamento__C_Rivista__C_Enum = {}));\n/** SF picklist */\nexport var Abbonamento_Periodo__C_Provenienza__C_Enum;\n(function (Abbonamento_Periodo__C_Provenienza__C_Enum) {\n /** CC postale */\n Abbonamento_Periodo__C_Provenienza__C_Enum[\"CcPostale\"] = \"CC_POSTALE\";\n /** Paypal */\n Abbonamento_Periodo__C_Provenienza__C_Enum[\"Paypal\"] = \"PAYPAL\";\n /** Contanti */\n Abbonamento_Periodo__C_Provenienza__C_Enum[\"Contanti\"] = \"CONTANTI\";\n /** Carta di credito */\n Abbonamento_Periodo__C_Provenienza__C_Enum[\"CartaDiCredito\"] = \"CARTA_DI_CREDITO\";\n /** Bonifico Bancario */\n Abbonamento_Periodo__C_Provenienza__C_Enum[\"BonificoBancario\"] = \"BONIFICO_BANCARIO\";\n /** Omaggio Aziendale */\n Abbonamento_Periodo__C_Provenienza__C_Enum[\"OmaggioAziendale\"] = \"OMAGGIO_AZIENDALE\";\n /** Assegno Bancario */\n Abbonamento_Periodo__C_Provenienza__C_Enum[\"AssegnoBancario\"] = \"ASSEGNO_BANCARIO\";\n /** Omaggio con scadenza */\n Abbonamento_Periodo__C_Provenienza__C_Enum[\"OmaggioConScadenza\"] = \"OMAGGIO_CON_SCADENZA\";\n /** Omaggio Paolo */\n Abbonamento_Periodo__C_Provenienza__C_Enum[\"OmaggioPaolo\"] = \"OMAGGIO_PAOLO\";\n /** Omaggio Davide */\n Abbonamento_Periodo__C_Provenienza__C_Enum[\"OmaggioDavide\"] = \"OMAGGIO_DAVIDE\";\n /** Omaggio Valentina */\n Abbonamento_Periodo__C_Provenienza__C_Enum[\"OmaggioValentina\"] = \"OMAGGIO_VALENTINA\";\n /** Omaggio Cristina */\n Abbonamento_Periodo__C_Provenienza__C_Enum[\"OmaggioCristina\"] = \"OMAGGIO_CRISTINA\";\n /** Omaggio Nicola */\n Abbonamento_Periodo__C_Provenienza__C_Enum[\"OmaggioNicola\"] = \"OMAGGIO_NICOLA\";\n /** Omaggio Agente */\n Abbonamento_Periodo__C_Provenienza__C_Enum[\"OmaggioAgente\"] = \"OMAGGIO_AGENTE\";\n /** Omaggio Annabella */\n Abbonamento_Periodo__C_Provenienza__C_Enum[\"OmaggioAnnabella\"] = \"OMAGGIO_ANNABELLA\";\n /** Omaggio Fochi */\n Abbonamento_Periodo__C_Provenienza__C_Enum[\"OmaggioFochi\"] = \"OMAGGIO_FOCHI\";\n /** Omaggio Bosini */\n Abbonamento_Periodo__C_Provenienza__C_Enum[\"OmaggioBosini\"] = \"OMAGGIO_BOSINI\";\n})(Abbonamento_Periodo__C_Provenienza__C_Enum || (Abbonamento_Periodo__C_Provenienza__C_Enum = {}));\n/** Per accesso in base al role. Flags */\nexport var AccessRole;\n(function (AccessRole) {\n AccessRole[\"Anonymus\"] = \"ANONYMUS\";\n AccessRole[\"Internal\"] = \"INTERNAL\";\n AccessRole[\"Producer\"] = \"PRODUCER\";\n AccessRole[\"Buyer\"] = \"BUYER\";\n AccessRole[\"BuyerPlItalia\"] = \"BUYER_PL_ITALIA\";\n AccessRole[\"Foodservice\"] = \"FOODSERVICE\";\n AccessRole[\"Shopworker\"] = \"SHOPWORKER\";\n AccessRole[\"Service\"] = \"SERVICE\";\n AccessRole[\"Consumer\"] = \"CONSUMER\";\n})(AccessRole || (AccessRole = {}));\n/** SF picklist */\nexport var Account_Settore2__C_Enum;\n(function (Account_Settore2__C_Enum) {\n /** Industria */\n Account_Settore2__C_Enum[\"Industria\"] = \"INDUSTRIA\";\n /** Retail */\n Account_Settore2__C_Enum[\"Retail\"] = \"RETAIL\";\n /** Editoria */\n Account_Settore2__C_Enum[\"Editoria\"] = \"EDITORIA\";\n /** Servizi */\n Account_Settore2__C_Enum[\"Servizi\"] = \"SERVIZI\";\n /** Freelancer */\n Account_Settore2__C_Enum[\"Freelancer\"] = \"FREELANCER\";\n /** Food Service */\n Account_Settore2__C_Enum[\"FoodService\"] = \"FOOD_SERVICE\";\n /** Punto Vendita */\n Account_Settore2__C_Enum[\"PuntoVendita\"] = \"PUNTO_VENDITA\";\n /** Istituzioni */\n Account_Settore2__C_Enum[\"Istituzioni\"] = \"ISTITUZIONI\";\n})(Account_Settore2__C_Enum || (Account_Settore2__C_Enum = {}));\nexport var AccountType;\n(function (AccountType) {\n AccountType[\"Industry\"] = \"INDUSTRY\";\n AccountType[\"RetailPl\"] = \"RETAIL_PL\";\n AccountType[\"RetailNoPl\"] = \"RETAIL_NO_PL\";\n AccountType[\"Institution\"] = \"INSTITUTION\";\n AccountType[\"Service\"] = \"SERVICE\";\n})(AccountType || (AccountType = {}));\nexport var AtecoCodeOrderBy;\n(function (AtecoCodeOrderBy) {\n AtecoCodeOrderBy[\"Code\"] = \"code\";\n AtecoCodeOrderBy[\"Description\"] = \"description\";\n})(AtecoCodeOrderBy || (AtecoCodeOrderBy = {}));\n/** // TODO */\nexport var AwardOptionFlag;\n(function (AwardOptionFlag) {\n AwardOptionFlag[\"EanRequired\"] = \"EAN_REQUIRED\";\n AwardOptionFlag[\"LaunchdateRequired\"] = \"LAUNCHDATE_REQUIRED\";\n AwardOptionFlag[\"ExtramediaRequired\"] = \"EXTRAMEDIA_REQUIRED\";\n AwardOptionFlag[\"CompanyLogoprintRequired\"] = \"COMPANY_LOGOPRINT_REQUIRED\";\n AwardOptionFlag[\"SignedContractRequired\"] = \"SIGNED_CONTRACT_REQUIRED\";\n AwardOptionFlag[\"GalleryEnabled\"] = \"GALLERY_ENABLED\";\n AwardOptionFlag[\"IngredientsImageRequired\"] = \"INGREDIENTS_IMAGE_REQUIRED\";\n})(AwardOptionFlag || (AwardOptionFlag = {}));\nexport var AwardOrderBy;\n(function (AwardOrderBy) {\n AwardOrderBy[\"Name\"] = \"name\";\n AwardOrderBy[\"Edition\"] = \"edition\";\n AwardOrderBy[\"Year\"] = \"year\";\n AwardOrderBy[\"Status\"] = \"status\";\n AwardOrderBy[\"CandidaciesCloseAt\"] = \"candidaciesCloseAt\";\n AwardOrderBy[\"VotesCloseAt\"] = \"votesCloseAt\";\n})(AwardOrderBy || (AwardOrderBy = {}));\n/** Ruoli che gli utenti (invitati) possono ricoprire per un premio. Flags */\nexport var AwardRoles;\n(function (AwardRoles) {\n AwardRoles[\"SpecialJuror\"] = \"SPECIAL_JUROR\";\n AwardRoles[\"Speaker\"] = \"SPEAKER\";\n AwardRoles[\"SpecialGuest\"] = \"SPECIAL_GUEST\";\n})(AwardRoles || (AwardRoles = {}));\n/** Award's possible statues */\nexport var AwardStatus;\n(function (AwardStatus) {\n AwardStatus[\"Draft\"] = \"DRAFT\";\n AwardStatus[\"CandidancyOpen\"] = \"CANDIDANCY_OPEN\";\n AwardStatus[\"CandidancyClosed\"] = \"CANDIDANCY_CLOSED\";\n AwardStatus[\"VotingOpen\"] = \"VOTING_OPEN\";\n AwardStatus[\"VotingClosed\"] = \"VOTING_CLOSED\";\n AwardStatus[\"Concluded\"] = \"CONCLUDED\";\n})(AwardStatus || (AwardStatus = {}));\n/** Award's possible visibility statues */\nexport var AwardVisibility;\n(function (AwardVisibility) {\n AwardVisibility[\"Vote\"] = \"VOTE\";\n AwardVisibility[\"Showcase\"] = \"SHOWCASE\";\n})(AwardVisibility || (AwardVisibility = {}));\n/** Per determinare il mediaType faccio : mediaType = BannerLayout2MediaType[bannerEntity.layout] */\nexport var BannerLayout;\n(function (BannerLayout) {\n BannerLayout[\"Full\"] = \"Full\";\n BannerLayout[\"SidedBoxWithFrequentSearch\"] = \"SidedBoxWithFrequentSearch\";\n BannerLayout[\"SmallImageOnly\"] = \"SmallImageOnly\";\n BannerLayout[\"LeaderboardImageOnly\"] = \"LeaderboardImageOnly\";\n BannerLayout[\"PopupImageOnly\"] = \"PopupImageOnly\";\n BannerLayout[\"DirectoryCard\"] = \"DirectoryCard\";\n BannerLayout[\"Popup\"] = \"Popup\";\n BannerLayout[\"Toaster\"] = \"Toaster\";\n BannerLayout[\"ImpiantoMezza\"] = \"Impianto_Mezza\";\n BannerLayout[\"ImpiantoMezzaVerticale\"] = \"Impianto_MezzaVerticale\";\n BannerLayout[\"ImpiantoIntera\"] = \"Impianto_Intera\";\n BannerLayout[\"ImpiantoBattente\"] = \"Impianto_Battente\";\n BannerLayout[\"PubbliRedazionaleSingola\"] = \"PubbliRedazionale_Singola\";\n BannerLayout[\"PubbliRedazionaleDoppia\"] = \"PubbliRedazionale_Doppia\";\n})(BannerLayout || (BannerLayout = {}));\nexport var BannerOrderBy;\n(function (BannerOrderBy) {\n BannerOrderBy[\"Name\"] = \"name\";\n BannerOrderBy[\"StartDate\"] = \"startDate\";\n BannerOrderBy[\"ExpirationDate\"] = \"expirationDate\";\n BannerOrderBy[\"IsValidated\"] = \"isValidated\";\n BannerOrderBy[\"IsSfAbandoned\"] = \"isSfAbandoned\";\n BannerOrderBy[\"DeadlineDate\"] = \"deadlineDate\";\n BannerOrderBy[\"Size\"] = \"size\";\n BannerOrderBy[\"Media\"] = \"Media\";\n})(BannerOrderBy || (BannerOrderBy = {}));\nexport var BannerViewType;\n(function (BannerViewType) {\n BannerViewType[\"Impression\"] = \"IMPRESSION\";\n BannerViewType[\"Click\"] = \"CLICK\";\n})(BannerViewType || (BannerViewType = {}));\n/** Map boolean to enum for xxSetStatus usage */\nexport var BooleanEnum;\n(function (BooleanEnum) {\n BooleanEnum[\"False\"] = \"FALSE\";\n BooleanEnum[\"True\"] = \"TRUE\";\n})(BooleanEnum || (BooleanEnum = {}));\nexport var BranchType;\n(function (BranchType) {\n BranchType[\"ManufacturingPlant\"] = \"MANUFACTURING_PLANT\";\n BranchType[\"PoBox\"] = \"PO_BOX\";\n BranchType[\"LogisticDepartment\"] = \"LOGISTIC_DEPARTMENT\";\n BranchType[\"SalesDepartment\"] = \"SALES_DEPARTMENT\";\n})(BranchType || (BranchType = {}));\n/** SF picklist */\nexport var CampaignMember_Esito_Campaign__C_Enum;\n(function (CampaignMember_Esito_Campaign__C_Enum) {\n /** Assente */\n CampaignMember_Esito_Campaign__C_Enum[\"Assente\"] = \"ASSENTE\";\n /** Presente */\n CampaignMember_Esito_Campaign__C_Enum[\"Presente\"] = \"PRESENTE\";\n /** Presente solo convegno */\n CampaignMember_Esito_Campaign__C_Enum[\"PresenteSoloConvegno\"] = \"PRESENTE_SOLO_CONVEGNO\";\n /** Presente solo cena */\n CampaignMember_Esito_Campaign__C_Enum[\"PresenteSoloCena\"] = \"PRESENTE_SOLO_CENA\";\n /** Interessato */\n CampaignMember_Esito_Campaign__C_Enum[\"Interessato\"] = \"INTERESSATO\";\n /** Non Interessato */\n CampaignMember_Esito_Campaign__C_Enum[\"NonInteressato\"] = \"NON_INTERESSATO\";\n})(CampaignMember_Esito_Campaign__C_Enum || (CampaignMember_Esito_Campaign__C_Enum = {}));\nexport var CandidacyOrderBy;\n(function (CandidacyOrderBy) {\n CandidacyOrderBy[\"Name\"] = \"name\";\n CandidacyOrderBy[\"AwardId\"] = \"awardId\";\n CandidacyOrderBy[\"AwardCategoryId\"] = \"awardCategoryId\";\n})(CandidacyOrderBy || (CandidacyOrderBy = {}));\nexport var CandidacyRatingOrderBy;\n(function (CandidacyRatingOrderBy) {\n CandidacyRatingOrderBy[\"User\"] = \"User\";\n CandidacyRatingOrderBy[\"Candidacy\"] = \"Candidacy\";\n CandidacyRatingOrderBy[\"LocalId\"] = \"localId\";\n})(CandidacyRatingOrderBy || (CandidacyRatingOrderBy = {}));\n/** User possible managing Capabilities */\nexport var Capability;\n(function (Capability) {\n Capability[\"Edit\"] = \"EDIT\";\n Capability[\"Account\"] = \"ACCOUNT\";\n Capability[\"Purchase\"] = \"PURCHASE\";\n Capability[\"Manage\"] = \"MANAGE\";\n})(Capability || (Capability = {}));\nexport var Channel;\n(function (Channel) {\n Channel[\"Retail\"] = \"RETAIL\";\n Channel[\"Foodservice\"] = \"FOODSERVICE\";\n Channel[\"GourmetShops\"] = \"GOURMET_SHOPS\";\n Channel[\"Wholesaler\"] = \"WHOLESALER\";\n})(Channel || (Channel = {}));\n/** Companies possible types */\nexport var CompaniesTypeEnum;\n(function (CompaniesTypeEnum) {\n CompaniesTypeEnum[\"Company\"] = \"Company\";\n CompaniesTypeEnum[\"Brand\"] = \"Brand\";\n})(CompaniesTypeEnum || (CompaniesTypeEnum = {}));\nexport var CompanyGroupOrderBy;\n(function (CompanyGroupOrderBy) {\n CompanyGroupOrderBy[\"Name\"] = \"name\";\n CompanyGroupOrderBy[\"Type\"] = \"type\";\n})(CompanyGroupOrderBy || (CompanyGroupOrderBy = {}));\n/** CompanyGroup possible types */\nexport var CompanyGroupType;\n(function (CompanyGroupType) {\n CompanyGroupType[\"AssociazioneDiCategoria\"] = \"ASSOCIAZIONE_DI_CATEGORIA\";\n CompanyGroupType[\"CameraDiCommercioEntePromozione\"] = \"CAMERA_DI_COMMERCIO_ENTE_PROMOZIONE\";\n CompanyGroupType[\"ConsorziDiTutela\"] = \"CONSORZI_DI_TUTELA\";\n CompanyGroupType[\"ConsorziPrivati\"] = \"CONSORZI_PRIVATI\";\n CompanyGroupType[\"IstituzioneCulturale\"] = \"ISTITUZIONE_CULTURALE\";\n CompanyGroupType[\"OrganiStatali\"] = \"ORGANI_STATALI\";\n CompanyGroupType[\"ScuoleEUniversit\"] = \"SCUOLE_E_UNIVERSIT\";\n})(CompanyGroupType || (CompanyGroupType = {}));\n/** Company possible industries */\nexport var CompanyIndustry;\n(function (CompanyIndustry) {\n CompanyIndustry[\"IndustriaAlimentare\"] = \"INDUSTRIA_ALIMENTARE\";\n CompanyIndustry[\"IndustriaBeniDiConsumoNonFood\"] = \"INDUSTRIA_BENI_DI_CONSUMO_NON_FOOD\";\n CompanyIndustry[\"IndustriaImpiantiIndAlimArredamenti\"] = \"INDUSTRIA_IMPIANTI_IND_ALIM_ARREDAMENTI\";\n CompanyIndustry[\"IndustriaPackAlimTrasformazione\"] = \"INDUSTRIA_PACK_ALIM_TRASFORMAZIONE\";\n CompanyIndustry[\"IstituzioneCulturale\"] = \"ISTITUZIONE_CULTURALE\";\n})(CompanyIndustry || (CompanyIndustry = {}));\n/** Company possible level types */\nexport var CompanyLevelEnum;\n(function (CompanyLevelEnum) {\n CompanyLevelEnum[\"Hidden\"] = \"HIDDEN\";\n CompanyLevelEnum[\"Free\"] = \"FREE\";\n CompanyLevelEnum[\"PaidL1\"] = \"PAID_L1\";\n CompanyLevelEnum[\"PaidL2\"] = \"PAID_L2\";\n CompanyLevelEnum[\"PaidL3\"] = \"PAID_L3\";\n CompanyLevelEnum[\"PaidL4\"] = \"PAID_L4\";\n})(CompanyLevelEnum || (CompanyLevelEnum = {}));\nexport var CompanyOrderBy;\n(function (CompanyOrderBy) {\n CompanyOrderBy[\"Name\"] = \"name\";\n CompanyOrderBy[\"Industry\"] = \"industry\";\n})(CompanyOrderBy || (CompanyOrderBy = {}));\n/** Company possible ownership types */\nexport var CompanyOwnership;\n(function (CompanyOwnership) {\n CompanyOwnership[\"FamilyBusiness\"] = \"FAMILY_BUSINESS\";\n CompanyOwnership[\"MultinationalCorporation\"] = \"MULTINATIONAL_CORPORATION\";\n CompanyOwnership[\"PrivateEquity\"] = \"PRIVATE_EQUITY\";\n CompanyOwnership[\"Cooperative\"] = \"COOPERATIVE\";\n})(CompanyOwnership || (CompanyOwnership = {}));\n/** Company revenue ranges */\nexport var CompanyRevenueRange;\n(function (CompanyRevenueRange) {\n /** Under 30000000 */\n CompanyRevenueRange[\"Before\"] = \"BEFORE\";\n /** Over 100000000 */\n CompanyRevenueRange[\"After\"] = \"AFTER\";\n /** Range 30000000-100000000 */\n CompanyRevenueRange[\"Range_0\"] = \"RANGE_0\";\n})(CompanyRevenueRange || (CompanyRevenueRange = {}));\n/** SF picklist */\nexport var Contact_Items_Active_Access__C_Enum;\n(function (Contact_Items_Active_Access__C_Enum) {\n /** DS | Rivista | Periodico e Speciali */\n Contact_Items_Active_Access__C_Enum[\"DsRivistaPeriodicoESpeciali\"] = \"DS_RIVISTA_PERIODICO_E_SPECIALI\";\n /** DS | Digitale | Periodico Completo */\n Contact_Items_Active_Access__C_Enum[\"DsDigitalePeriodicoCompleto\"] = \"DS_DIGITALE_PERIODICO_COMPLETO\";\n /** FOOD | Rivista | Periodico e Speciali */\n Contact_Items_Active_Access__C_Enum[\"FoodRivistaPeriodicoESpeciali\"] = \"FOOD_RIVISTA_PERIODICO_E_SPECIALI\";\n /** FOOD | Digitale | Periodico Completo */\n Contact_Items_Active_Access__C_Enum[\"FoodDigitalePeriodicoCompleto\"] = \"FOOD_DIGITALE_PERIODICO_COMPLETO\";\n /** FS | Rivista | Periodico e Speciali */\n Contact_Items_Active_Access__C_Enum[\"FsRivistaPeriodicoESpeciali\"] = \"FS_RIVISTA_PERIODICO_E_SPECIALI\";\n /** FS | Digitale | Periodico Completo */\n Contact_Items_Active_Access__C_Enum[\"FsDigitalePeriodicoCompleto\"] = \"FS_DIGITALE_PERIODICO_COMPLETO\";\n /** IFNET | Rivista | Periodico e Speciali */\n Contact_Items_Active_Access__C_Enum[\"IfnetRivistaPeriodicoESpeciali\"] = \"IFNET_RIVISTA_PERIODICO_E_SPECIALI\";\n /** IFNET | Digitale | Periodico Completo */\n Contact_Items_Active_Access__C_Enum[\"IfnetDigitalePeriodicoCompleto\"] = \"IFNET_DIGITALE_PERIODICO_COMPLETO\";\n})(Contact_Items_Active_Access__C_Enum || (Contact_Items_Active_Access__C_Enum = {}));\nexport var CountryOrderByEnum;\n(function (CountryOrderByEnum) {\n CountryOrderByEnum[\"Name\"] = \"name\";\n CountryOrderByEnum[\"Code\"] = \"code\";\n CountryOrderByEnum[\"Area\"] = \"area\";\n CountryOrderByEnum[\"ContinentMc\"] = \"continentMc\";\n})(CountryOrderByEnum || (CountryOrderByEnum = {}));\nexport var CouponOrderBy;\n(function (CouponOrderBy) {\n CouponOrderBy[\"Name\"] = \"name\";\n CouponOrderBy[\"StartDate\"] = \"startDate\";\n CouponOrderBy[\"ExpirationDate\"] = \"expirationDate\";\n})(CouponOrderBy || (CouponOrderBy = {}));\nexport var CouponType;\n(function (CouponType) {\n CouponType[\"Fix\"] = \"FIX\";\n CouponType[\"Percentage\"] = \"PERCENTAGE\";\n})(CouponType || (CouponType = {}));\nexport var DistributionMode;\n(function (DistributionMode) {\n DistributionMode[\"Direct\"] = \"DIRECT\";\n DistributionMode[\"Distributor\"] = \"DISTRIBUTOR\";\n DistributionMode[\"LocalBranch\"] = \"LOCAL_BRANCH\";\n DistributionMode[\"Broker\"] = \"BROKER\";\n})(DistributionMode || (DistributionMode = {}));\n/** TODO */\nexport var EditorialBrand;\n(function (EditorialBrand) {\n EditorialBrand[\"Barbusiness\"] = \"BARBUSINESS\";\n EditorialBrand[\"Foodweb\"] = \"FOODWEB\";\n EditorialBrand[\"Ifn\"] = \"IFN\";\n EditorialBrand[\"CmAttuali\"] = \"CM_ATTUALI\";\n EditorialBrand[\"Goods4Hub\"] = \"GOODS4HUB\";\n EditorialBrand[\"Food\"] = \"FOOD\";\n EditorialBrand[\"Foodservice\"] = \"FOODSERVICE\";\n EditorialBrand[\"Dolcesalato\"] = \"DOLCESALATO\";\n})(EditorialBrand || (EditorialBrand = {}));\nexport var EditorialSectionOrderBy;\n(function (EditorialSectionOrderBy) {\n EditorialSectionOrderBy[\"Name\"] = \"name\";\n EditorialSectionOrderBy[\"EditorialBrand\"] = \"editorialBrand\";\n})(EditorialSectionOrderBy || (EditorialSectionOrderBy = {}));\n/** Automatic internal action performed */\nexport var EmailDomainAction;\n(function (EmailDomainAction) {\n EmailDomainAction[\"WaitAndNotify\"] = \"WAIT_AND_NOTIFY\";\n EmailDomainAction[\"Accept\"] = \"ACCEPT\";\n EmailDomainAction[\"ConsumerOnly\"] = \"CONSUMER_ONLY\";\n EmailDomainAction[\"ShopworkerOnly\"] = \"SHOPWORKER_ONLY\";\n})(EmailDomainAction || (EmailDomainAction = {}));\nexport var EmailDomainOrderBy;\n(function (EmailDomainOrderBy) {\n EmailDomainOrderBy[\"EmailDomain\"] = \"emailDomain\";\n EmailDomainOrderBy[\"AccountType\"] = \"accountType\";\n EmailDomainOrderBy[\"Action\"] = \"action\";\n})(EmailDomainOrderBy || (EmailDomainOrderBy = {}));\n/** EU Indications */\nexport var EuIndication;\n(function (EuIndication) {\n EuIndication[\"Pdo\"] = \"PDO\";\n EuIndication[\"Pgi\"] = \"PGI\";\n EuIndication[\"Tsg\"] = \"TSG\";\n})(EuIndication || (EuIndication = {}));\n/** Possible exclusion reasons */\nexport var ExclusionReason;\n(function (ExclusionReason) {\n ExclusionReason[\"Other\"] = \"OTHER\";\n ExclusionReason[\"Price\"] = \"PRICE\";\n ExclusionReason[\"Packaging\"] = \"PACKAGING\";\n ExclusionReason[\"Logistic\"] = \"LOGISTIC\";\n ExclusionReason[\"Certifications\"] = \"CERTIFICATIONS\";\n ExclusionReason[\"ProductiveCapability\"] = \"PRODUCTIVE_CAPABILITY\";\n})(ExclusionReason || (ExclusionReason = {}));\n/** Possible final positions for award candidacies */\nexport var FinalPosition;\n(function (FinalPosition) {\n FinalPosition[\"Winner\"] = \"WINNER\";\n FinalPosition[\"Second\"] = \"SECOND\";\n FinalPosition[\"Third\"] = \"THIRD\";\n})(FinalPosition || (FinalPosition = {}));\nexport var FoodServiceOrderBy;\n(function (FoodServiceOrderBy) {\n FoodServiceOrderBy[\"Name\"] = \"name\";\n FoodServiceOrderBy[\"Type\"] = \"type\";\n})(FoodServiceOrderBy || (FoodServiceOrderBy = {}));\n/** FoodService possible types */\nexport var FoodServiceType;\n(function (FoodServiceType) {\n FoodServiceType[\"Agriturismo\"] = \"AGRITURISMO\";\n FoodServiceType[\"Asporto\"] = \"ASPORTO\";\n FoodServiceType[\"BB\"] = \"B_B\";\n FoodServiceType[\"BarTradizionale\"] = \"BAR_TRADIZIONALE\";\n FoodServiceType[\"Camping\"] = \"CAMPING\";\n FoodServiceType[\"Catering\"] = \"CATERING\";\n FoodServiceType[\"CinemaMultisala\"] = \"CINEMA_MULTISALA\";\n FoodServiceType[\"Discoteca\"] = \"DISCOTECA\";\n FoodServiceType[\"Enoteche\"] = \"ENOTECHE\";\n FoodServiceType[\"Farmacia\"] = \"FARMACIA\";\n FoodServiceType[\"FastFood\"] = \"FAST_FOOD\";\n FoodServiceType[\"FoodTruck\"] = \"FOOD_TRUCK\";\n FoodServiceType[\"Franchiser\"] = \"FRANCHISER\";\n FoodServiceType[\"Gelateria\"] = \"GELATERIA\";\n FoodServiceType[\"Hotel\"] = \"HOTEL\";\n FoodServiceType[\"ImpiantiSportivi\"] = \"IMPIANTI_SPORTIVI\";\n FoodServiceType[\"IstituzioneCulturale\"] = \"ISTITUZIONE_CULTURALE\";\n FoodServiceType[\"Latteria\"] = \"LATTERIA\";\n FoodServiceType[\"Libreria\"] = \"LIBRERIA\";\n FoodServiceType[\"LocalePolifunz\"] = \"LOCALE_POLIFUNZ\";\n FoodServiceType[\"Macelleria\"] = \"MACELLERIA\";\n FoodServiceType[\"Mense\"] = \"MENSE\";\n FoodServiceType[\"OstelliHotel_2Stelle\"] = \"OSTELLI_HOTEL_2_STELLE\";\n FoodServiceType[\"Panetteria\"] = \"PANETTERIA\";\n FoodServiceType[\"ParchiDiDivertimento\"] = \"PARCHI_DI_DIVERTIMENTO\";\n FoodServiceType[\"Pasticceria\"] = \"PASTICCERIA\";\n FoodServiceType[\"Pescheria\"] = \"PESCHERIA\";\n FoodServiceType[\"Polleria\"] = \"POLLERIA\";\n FoodServiceType[\"PubBirreria\"] = \"PUB_BIRRERIA\";\n FoodServiceType[\"ResortVillaggioTuristico\"] = \"RESORT_VILLAGGIO_TURISTICO\";\n FoodServiceType[\"RifugiDiMontagna\"] = \"RIFUGI_DI_MONTAGNA\";\n FoodServiceType[\"RistPizzeria\"] = \"RIST_PIZZERIA\";\n FoodServiceType[\"RistEtnico\"] = \"RIST_ETNICO\";\n FoodServiceType[\"RistPremium\"] = \"RIST_PREMIUM\";\n FoodServiceType[\"RistorazioneCollettiva\"] = \"RISTORAZIONE_COLLETTIVA\";\n FoodServiceType[\"RistorazioneCommerciale\"] = \"RISTORAZIONE_COMMERCIALE\";\n FoodServiceType[\"RistorazioneSuMezzi\"] = \"RISTORAZIONE_SU_MEZZI\";\n FoodServiceType[\"SaleScommesse\"] = \"SALE_SCOMMESSE\";\n FoodServiceType[\"Salumeria\"] = \"SALUMERIA\";\n FoodServiceType[\"StabilimentoBalneare\"] = \"STABILIMENTO_BALNEARE\";\n FoodServiceType[\"StazioneDiServizio\"] = \"STAZIONE_DI_SERVIZIO\";\n FoodServiceType[\"Tabaccheria\"] = \"TABACCHERIA\";\n FoodServiceType[\"TeatroSalaDaConcerto\"] = \"TEATRO_SALA_DA_CONCERTO\";\n FoodServiceType[\"Torrefazione\"] = \"TORREFAZIONE\";\n FoodServiceType[\"TrattoriaOsteria\"] = \"TRATTORIA_OSTERIA\";\n})(FoodServiceType || (FoodServiceType = {}));\n/** FrequentSearch's possible collections */\nexport var FrequentSearchCollection;\n(function (FrequentSearchCollection) {\n FrequentSearchCollection[\"Good\"] = \"GOOD\";\n FrequentSearchCollection[\"Company\"] = \"COMPANY\";\n FrequentSearchCollection[\"GeoIndication\"] = \"GEO_INDICATION\";\n FrequentSearchCollection[\"News\"] = \"NEWS\";\n})(FrequentSearchCollection || (FrequentSearchCollection = {}));\n/** FrequentSearch's possible statues */\nexport var FrequentSearchStatus;\n(function (FrequentSearchStatus) {\n FrequentSearchStatus[\"Draft\"] = \"DRAFT\";\n FrequentSearchStatus[\"Published\"] = \"PUBLISHED\";\n FrequentSearchStatus[\"Highlighted\"] = \"HIGHLIGHTED\";\n FrequentSearchStatus[\"Deleted\"] = \"DELETED\";\n})(FrequentSearchStatus || (FrequentSearchStatus = {}));\n/** If FrequentSearch is system-defined this is the type */\nexport var FrequentSearchSystemType;\n(function (FrequentSearchSystemType) {\n FrequentSearchSystemType[\"Favorites\"] = \"FAVORITES\";\n})(FrequentSearchSystemType || (FrequentSearchSystemType = {}));\nexport var GeoIndicationOrderBy;\n(function (GeoIndicationOrderBy) {\n GeoIndicationOrderBy[\"Name\"] = \"name\";\n GeoIndicationOrderBy[\"StateProvince\"] = \"StateProvince\";\n GeoIndicationOrderBy[\"EuIndication\"] = \"euIndication\";\n GeoIndicationOrderBy[\"ItalianIndication\"] = \"italianIndication\";\n GeoIndicationOrderBy[\"Status\"] = \"status\";\n})(GeoIndicationOrderBy || (GeoIndicationOrderBy = {}));\nexport var GoodOrderBy;\n(function (GoodOrderBy) {\n GoodOrderBy[\"Name\"] = \"name\";\n GoodOrderBy[\"NameIta\"] = \"nameIta\";\n})(GoodOrderBy || (GoodOrderBy = {}));\nexport var GoodUnit;\n(function (GoodUnit) {\n GoodUnit[\"Grams\"] = \"GRAMS\";\n GoodUnit[\"Milliliter\"] = \"MILLILITER\";\n GoodUnit[\"Milligrams\"] = \"MILLIGRAMS\";\n})(GoodUnit || (GoodUnit = {}));\n/** // TODO */\nexport var GridSize;\n(function (GridSize) {\n GridSize[\"Col_1\"] = \"COL_1\";\n GridSize[\"Col_2\"] = \"COL_2\";\n GridSize[\"Col_3\"] = \"COL_3\";\n})(GridSize || (GridSize = {}));\n/** Possible Good hightlight reasons */\nexport var HighlightReasons;\n(function (HighlightReasons) {\n HighlightReasons[\"NewProduct\"] = \"NEW_PRODUCT\";\n HighlightReasons[\"RenovatedRecipe\"] = \"RENOVATED_RECIPE\";\n HighlightReasons[\"RenovatedPackaging\"] = \"RENOVATED_PACKAGING\";\n HighlightReasons[\"SpecialEdition\"] = \"SPECIAL_EDITION\";\n HighlightReasons[\"NewSizes\"] = \"NEW_SIZES\";\n})(HighlightReasons || (HighlightReasons = {}));\n/** SF picklist */\nexport var Indirizzo__C_Tipo__C_Enum;\n(function (Indirizzo__C_Tipo__C_Enum) {\n /** Sede legale */\n Indirizzo__C_Tipo__C_Enum[\"SedeLegale\"] = \"SEDE_LEGALE\";\n /** Sede operativa */\n Indirizzo__C_Tipo__C_Enum[\"SedeOperativa\"] = \"SEDE_OPERATIVA\";\n /** Spedizioni */\n Indirizzo__C_Tipo__C_Enum[\"Spedizioni\"] = \"SPEDIZIONI\";\n /** Filiale */\n Indirizzo__C_Tipo__C_Enum[\"Filiale\"] = \"FILIALE\";\n /** Privato */\n Indirizzo__C_Tipo__C_Enum[\"Privato\"] = \"PRIVATO\";\n /** Stabilimento di Produzione */\n Indirizzo__C_Tipo__C_Enum[\"StabilimentoDiProduzione\"] = \"STABILIMENTO_DI_PRODUZIONE\";\n /** Dipartimento Logistico */\n Indirizzo__C_Tipo__C_Enum[\"DipartimentoLogistico\"] = \"DIPARTIMENTO_LOGISTICO\";\n})(Indirizzo__C_Tipo__C_Enum || (Indirizzo__C_Tipo__C_Enum = {}));\n/** Client-side code load proper form based on this value */\nexport var InputTemplate;\n(function (InputTemplate) {\n InputTemplate[\"NewsletterGeneric\"] = \"NEWSLETTER_GENERIC\";\n InputTemplate[\"DemGeneric\"] = \"DEM_GENERIC\";\n})(InputTemplate || (InputTemplate = {}));\n/** User possible internal Capabilities */\nexport var InternalCapability;\n(function (InternalCapability) {\n InternalCapability[\"UsersBase\"] = \"USERS_BASE\";\n InternalCapability[\"UsersExtra\"] = \"USERS_EXTRA\";\n InternalCapability[\"MarketingBase\"] = \"MARKETING_BASE\";\n InternalCapability[\"MarketingExtra\"] = \"MARKETING_EXTRA\";\n InternalCapability[\"EditorialBase\"] = \"EDITORIAL_BASE\";\n InternalCapability[\"EditorialExtra\"] = \"EDITORIAL_EXTRA\";\n InternalCapability[\"DirectoryBase\"] = \"DIRECTORY_BASE\";\n InternalCapability[\"DirectoryExtra\"] = \"DIRECTORY_EXTRA\";\n InternalCapability[\"AdminBase\"] = \"ADMIN_BASE\";\n InternalCapability[\"AdminExtra\"] = \"ADMIN_EXTRA\";\n})(InternalCapability || (InternalCapability = {}));\n/** Italian Indications */\nexport var ItalianIndication;\n(function (ItalianIndication) {\n ItalianIndication[\"Docg\"] = \"DOCG\";\n ItalianIndication[\"Doc\"] = \"DOC\";\n ItalianIndication[\"Igt\"] = \"IGT\";\n ItalianIndication[\"BevandaSpiritosaIg\"] = \"BEVANDA_SPIRITOSA_IG\";\n ItalianIndication[\"Pat\"] = \"PAT\";\n ItalianIndication[\"PresidioSlowFood\"] = \"PRESIDIO_SLOW_FOOD\";\n ItalianIndication[\"ArcaSlowFood\"] = \"ARCA_SLOW_FOOD\";\n})(ItalianIndication || (ItalianIndication = {}));\nexport var MagazineOrderBy;\n(function (MagazineOrderBy) {\n MagazineOrderBy[\"PublicationDate\"] = \"publicationDate\";\n MagazineOrderBy[\"IssueNumber\"] = \"issueNumber\";\n})(MagazineOrderBy || (MagazineOrderBy = {}));\nexport var MediaOrderBy;\n(function (MediaOrderBy) {\n MediaOrderBy[\"Caption\"] = \"caption\";\n MediaOrderBy[\"Timestamp\"] = \"timestamp\";\n})(MediaOrderBy || (MediaOrderBy = {}));\n/** Supported Media types */\nexport var MediaType;\n(function (MediaType) {\n MediaType[\"Logo\"] = \"LOGO\";\n MediaType[\"GoodImage\"] = \"GOOD_IMAGE\";\n MediaType[\"Icon\"] = \"ICON\";\n MediaType[\"PdfWeb\"] = \"PDF_WEB\";\n MediaType[\"PdfGeneric\"] = \"PDF_GENERIC\";\n MediaType[\"BannerFull\"] = \"BANNER_FULL\";\n MediaType[\"BannerHalf\"] = \"BANNER_HALF\";\n MediaType[\"BannerLeaderboard\"] = \"BANNER_LEADERBOARD\";\n MediaType[\"BannerPopup\"] = \"BANNER_POPUP\";\n MediaType[\"News\"] = \"NEWS\";\n MediaType[\"MagazineCover\"] = \"MAGAZINE_COVER\";\n MediaType[\"LogoPrint\"] = \"LOGO_PRINT\";\n MediaType[\"GoodPrintImage\"] = \"GOOD_PRINT_IMAGE\";\n MediaType[\"GalleryGeneric\"] = \"GALLERY_GENERIC\";\n MediaType[\"MailImage\"] = \"MAIL_IMAGE\";\n})(MediaType || (MediaType = {}));\n/** // TODO */\nexport var NewsletterAcceptedFlag;\n(function (NewsletterAcceptedFlag) {\n NewsletterAcceptedFlag[\"General\"] = \"GENERAL\";\n})(NewsletterAcceptedFlag || (NewsletterAcceptedFlag = {}));\n/** News's possible source */\nexport var NewsSource;\n(function (NewsSource) {\n NewsSource[\"Hub\"] = \"HUB\";\n NewsSource[\"WpIfn\"] = \"WP_IFN\";\n NewsSource[\"WpFoodweb\"] = \"WP_FOODWEB\";\n NewsSource[\"WpFoodserviceweb\"] = \"WP_FOODSERVICEWEB\";\n NewsSource[\"PaperIfn\"] = \"PAPER_IFN\";\n})(NewsSource || (NewsSource = {}));\n/** News's possible statues */\nexport var NewsStatus;\n(function (NewsStatus) {\n NewsStatus[\"Stub\"] = \"STUB\";\n NewsStatus[\"Draft\"] = \"DRAFT\";\n NewsStatus[\"WaitingPublication\"] = \"WAITING_PUBLICATION\";\n NewsStatus[\"Published\"] = \"PUBLISHED\";\n NewsStatus[\"Hidden\"] = \"HIDDEN\";\n NewsStatus[\"Deleted\"] = \"DELETED\";\n})(NewsStatus || (NewsStatus = {}));\nexport var ObjectHistoryAction;\n(function (ObjectHistoryAction) {\n ObjectHistoryAction[\"Create\"] = \"CREATE\";\n ObjectHistoryAction[\"Patch\"] = \"PATCH\";\n ObjectHistoryAction[\"SetStatus\"] = \"SET_STATUS\";\n ObjectHistoryAction[\"Delete\"] = \"DELETE\";\n ObjectHistoryAction[\"Subcreate\"] = \"SUBCREATE\";\n ObjectHistoryAction[\"Merge\"] = \"MERGE\";\n})(ObjectHistoryAction || (ObjectHistoryAction = {}));\nexport var ObjectHistoryCollection;\n(function (ObjectHistoryCollection) {\n ObjectHistoryCollection[\"Abbonamento\"] = \"Abbonamento\";\n ObjectHistoryCollection[\"AbbonamentoPeriodo\"] = \"AbbonamentoPeriodo\";\n ObjectHistoryCollection[\"AnswerSet\"] = \"AnswerSet\";\n ObjectHistoryCollection[\"AtecoCode\"] = \"AtecoCode\";\n ObjectHistoryCollection[\"Award\"] = \"Award\";\n ObjectHistoryCollection[\"AwardCategory\"] = \"AwardCategory\";\n ObjectHistoryCollection[\"AwardInvitedCompany\"] = \"AwardInvitedCompany\";\n ObjectHistoryCollection[\"AwardInvitedUser\"] = \"AwardInvitedUser\";\n ObjectHistoryCollection[\"AwardResult\"] = \"AwardResult\";\n ObjectHistoryCollection[\"Banner\"] = \"Banner\";\n ObjectHistoryCollection[\"BannerView\"] = \"BannerView\";\n ObjectHistoryCollection[\"Branch\"] = \"Branch\";\n ObjectHistoryCollection[\"Brand\"] = \"Brand\";\n ObjectHistoryCollection[\"CampaignMember\"] = \"CampaignMember\";\n ObjectHistoryCollection[\"Candidacy\"] = \"Candidacy\";\n ObjectHistoryCollection[\"CandidacyRating\"] = \"CandidacyRating\";\n ObjectHistoryCollection[\"Company\"] = \"Company\";\n ObjectHistoryCollection[\"CompanyBadge\"] = \"CompanyBadge\";\n ObjectHistoryCollection[\"CompanyCertification\"] = \"CompanyCertification\";\n ObjectHistoryCollection[\"CompanyGroup\"] = \"CompanyGroup\";\n ObjectHistoryCollection[\"CompanyLevel\"] = \"CompanyLevel\";\n ObjectHistoryCollection[\"CompanyYear\"] = \"CompanyYear\";\n ObjectHistoryCollection[\"Contact\"] = \"Contact\";\n ObjectHistoryCollection[\"Country\"] = \"Country\";\n ObjectHistoryCollection[\"Coupon\"] = \"Coupon\";\n ObjectHistoryCollection[\"DistributionChannel\"] = \"DistributionChannel\";\n ObjectHistoryCollection[\"EditorialSection\"] = \"EditorialSection\";\n ObjectHistoryCollection[\"EditorialTag\"] = \"EditorialTag\";\n ObjectHistoryCollection[\"EmailDomain\"] = \"EmailDomain\";\n ObjectHistoryCollection[\"EuCategory\"] = \"EuCategory\";\n ObjectHistoryCollection[\"Fair\"] = \"Fair\";\n ObjectHistoryCollection[\"FairParticipation\"] = \"FairParticipation\";\n ObjectHistoryCollection[\"FairVisit\"] = \"FairVisit\";\n ObjectHistoryCollection[\"FairVisitParticipation\"] = \"FairVisitParticipation\";\n ObjectHistoryCollection[\"FoodService\"] = \"FoodService\";\n ObjectHistoryCollection[\"FrequentSearch\"] = \"FrequentSearch\";\n ObjectHistoryCollection[\"GeoIndication\"] = \"GeoIndication\";\n ObjectHistoryCollection[\"Good\"] = \"Good\";\n ObjectHistoryCollection[\"GoodClass\"] = \"GoodClass\";\n ObjectHistoryCollection[\"GoodFeatureCertification\"] = \"GoodFeatureCertification\";\n ObjectHistoryCollection[\"GoodFormat\"] = \"GoodFormat\";\n ObjectHistoryCollection[\"HighlightedGood\"] = \"HighlightedGood\";\n ObjectHistoryCollection[\"HtmlTemplate\"] = \"HtmlTemplate\";\n ObjectHistoryCollection[\"Indirizzo\"] = \"Indirizzo\";\n ObjectHistoryCollection[\"Magazine\"] = \"Magazine\";\n ObjectHistoryCollection[\"MagazineCollection\"] = \"MagazineCollection\";\n ObjectHistoryCollection[\"MagazineContent\"] = \"MagazineContent\";\n ObjectHistoryCollection[\"ManagedByUser\"] = \"ManagedByUser\";\n ObjectHistoryCollection[\"Media\"] = \"Media\";\n ObjectHistoryCollection[\"News\"] = \"News\";\n ObjectHistoryCollection[\"NewsCitation\"] = \"NewsCitation\";\n ObjectHistoryCollection[\"NewsFormat\"] = \"NewsFormat\";\n ObjectHistoryCollection[\"Newsletter\"] = \"Newsletter\";\n ObjectHistoryCollection[\"NewsletterIssue\"] = \"NewsletterIssue\";\n ObjectHistoryCollection[\"NewsletterIssueHasNews\"] = \"NewsletterIssueHasNews\";\n ObjectHistoryCollection[\"ObjectHistory\"] = \"ObjectHistory\";\n ObjectHistoryCollection[\"Permalink\"] = \"Permalink\";\n ObjectHistoryCollection[\"PiList\"] = \"PiList\";\n ObjectHistoryCollection[\"PricebookEntry\"] = \"PricebookEntry\";\n ObjectHistoryCollection[\"Prospect\"] = \"Prospect\";\n ObjectHistoryCollection[\"QuestionSet\"] = \"QuestionSet\";\n ObjectHistoryCollection[\"Quote\"] = \"Quote\";\n ObjectHistoryCollection[\"QuoteLineItem\"] = \"QuoteLineItem\";\n ObjectHistoryCollection[\"Retailer\"] = \"Retailer\";\n ObjectHistoryCollection[\"SampleRequest\"] = \"SampleRequest\";\n ObjectHistoryCollection[\"Service\"] = \"Service\";\n ObjectHistoryCollection[\"StateProvince\"] = \"StateProvince\";\n ObjectHistoryCollection[\"Team\"] = \"Team\";\n ObjectHistoryCollection[\"ToS\"] = \"ToS\";\n ObjectHistoryCollection[\"Typeform\"] = \"Typeform\";\n ObjectHistoryCollection[\"User\"] = \"User\";\n ObjectHistoryCollection[\"UserAchievement\"] = \"UserAchievement\";\n ObjectHistoryCollection[\"UserNote\"] = \"UserNote\";\n ObjectHistoryCollection[\"UserObjectSubscription\"] = \"UserObjectSubscription\";\n ObjectHistoryCollection[\"Widget\"] = \"Widget\";\n})(ObjectHistoryCollection || (ObjectHistoryCollection = {}));\n/** Preservation types */\nexport var Preservation;\n(function (Preservation) {\n Preservation[\"Perishable\"] = \"PERISHABLE\";\n Preservation[\"Frozen\"] = \"FROZEN\";\n Preservation[\"ShelfStable\"] = \"SHELF_STABLE\";\n})(Preservation || (Preservation = {}));\nexport var PricebookEntryOrderBy;\n(function (PricebookEntryOrderBy) {\n PricebookEntryOrderBy[\"Name\"] = \"Name\";\n PricebookEntryOrderBy[\"UnitPrice\"] = \"UnitPrice\";\n PricebookEntryOrderBy[\"Product2Brand\"] = \"Product2Brand\";\n PricebookEntryOrderBy[\"Product2BrandArea\"] = \"Product2Brand_Area\";\n PricebookEntryOrderBy[\"Product2DataDiScadenza\"] = \"Product2Data_di_Scadenza\";\n PricebookEntryOrderBy[\"Product2DataInizioCompetenza\"] = \"Product2Data_Inizio_Competenza\";\n PricebookEntryOrderBy[\"Product2DataFineCompetenza\"] = \"Product2Data_Fine_Competenza\";\n})(PricebookEntryOrderBy || (PricebookEntryOrderBy = {}));\nexport var PricePositioning;\n(function (PricePositioning) {\n PricePositioning[\"Discount\"] = \"DISCOUNT\";\n PricePositioning[\"Mainstream\"] = \"MAINSTREAM\";\n PricePositioning[\"Premium\"] = \"PREMIUM\";\n PricePositioning[\"Luxury\"] = \"LUXURY\";\n})(PricePositioning || (PricePositioning = {}));\n/** SF picklist */\nexport var Product2_Brand__C_EnumFiltered;\n(function (Product2_Brand__C_EnumFiltered) {\n /** FOOD */\n Product2_Brand__C_EnumFiltered[\"Food\"] = \"FOOD\";\n /** FOODSERVICE */\n Product2_Brand__C_EnumFiltered[\"Foodservice\"] = \"FOODSERVICE\";\n /** DOLCESALATO */\n Product2_Brand__C_EnumFiltered[\"Dolcesalato\"] = \"DOLCESALATO\";\n /** ITALIANFOOD.NET */\n Product2_Brand__C_EnumFiltered[\"ItalianfoodNet\"] = \"ITALIANFOOD_NET\";\n /** FIOR FIORE IN CUCINA */\n Product2_Brand__C_EnumFiltered[\"FiorFioreInCucina\"] = \"FIOR_FIORE_IN_CUCINA\";\n /** PROGETTI */\n Product2_Brand__C_EnumFiltered[\"Progetti\"] = \"PROGETTI\";\n /** FOOD LABS */\n Product2_Brand__C_EnumFiltered[\"FoodLabs\"] = \"FOOD_LABS\";\n /** P&B */\n Product2_Brand__C_EnumFiltered[\"PB\"] = \"P_B\";\n /** BAR BUSINESS */\n Product2_Brand__C_EnumFiltered[\"BarBusiness\"] = \"BAR_BUSINESS\";\n /** FOOD EDITORE */\n Product2_Brand__C_EnumFiltered[\"FoodEditore\"] = \"FOOD_EDITORE\";\n})(Product2_Brand__C_EnumFiltered || (Product2_Brand__C_EnumFiltered = {}));\n/** SF picklist */\nexport var Product2_Brand_Area__C_Enum;\n(function (Product2_Brand_Area__C_Enum) {\n /** Rivista */\n Product2_Brand_Area__C_Enum[\"Rivista\"] = \"RIVISTA\";\n /** Digitale */\n Product2_Brand_Area__C_Enum[\"Digitale\"] = \"DIGITALE\";\n /** Digitale ITA */\n Product2_Brand_Area__C_Enum[\"DigitaleIta\"] = \"DIGITALE_ITA\";\n /** Digitale INT */\n Product2_Brand_Area__C_Enum[\"DigitaleInt\"] = \"DIGITALE_INT\";\n /** Abbonamenti */\n Product2_Brand_Area__C_Enum[\"Abbonamenti\"] = \"ABBONAMENTI\";\n /** Eventi */\n Product2_Brand_Area__C_Enum[\"Eventi\"] = \"EVENTI\";\n /** Content */\n Product2_Brand_Area__C_Enum[\"Content\"] = \"CONTENT\";\n /** Promo */\n Product2_Brand_Area__C_Enum[\"Promo\"] = \"PROMO\";\n /** Strategia e Progetti Integrati */\n Product2_Brand_Area__C_Enum[\"StrategiaEProgettiIntegrati\"] = \"STRATEGIA_E_PROGETTI_INTEGRATI\";\n /** Distribuzione Con Reso */\n Product2_Brand_Area__C_Enum[\"DistribuzioneConReso\"] = \"DISTRIBUZIONE_CON_RESO\";\n /** Distribuzione Senza Reso */\n Product2_Brand_Area__C_Enum[\"DistribuzioneSenzaReso\"] = \"DISTRIBUZIONE_SENZA_RESO\";\n /** Estero */\n Product2_Brand_Area__C_Enum[\"Estero\"] = \"ESTERO\";\n /** Servizi Editoriali */\n Product2_Brand_Area__C_Enum[\"ServiziEditoriali\"] = \"SERVIZI_EDITORIALI\";\n /** Produzione Editoriale Multicanale */\n Product2_Brand_Area__C_Enum[\"ProduzioneEditorialeMulticanale\"] = \"PRODUZIONE_EDITORIALE_MULTICANALE\";\n})(Product2_Brand_Area__C_Enum || (Product2_Brand_Area__C_Enum = {}));\n/** SF picklist */\nexport var Product2_Famiglia__C_Enum;\n(function (Product2_Famiglia__C_Enum) {\n /** Food */\n Product2_Famiglia__C_Enum[\"Food\"] = \"FOOD\";\n /** Out Of Home */\n Product2_Famiglia__C_Enum[\"OutOfHome\"] = \"OUT_OF_HOME\";\n /** Content Marketing and Promo */\n Product2_Famiglia__C_Enum[\"ContentMarketingAndPromo\"] = \"CONTENT_MARKETING_AND_PROMO\";\n /** Editoria */\n Product2_Famiglia__C_Enum[\"Editoria\"] = \"EDITORIA\";\n /** Italianfood.net */\n Product2_Famiglia__C_Enum[\"ItalianfoodNet\"] = \"ITALIANFOOD_NET\";\n})(Product2_Famiglia__C_Enum || (Product2_Famiglia__C_Enum = {}));\n/** SF picklist */\nexport var Product2_Tipologia__C_Enum;\n(function (Product2_Tipologia__C_Enum) {\n /** Periodico */\n Product2_Tipologia__C_Enum[\"Periodico\"] = \"PERIODICO\";\n /** Digitale */\n Product2_Tipologia__C_Enum[\"Digitale\"] = \"DIGITALE\";\n /** Speciale */\n Product2_Tipologia__C_Enum[\"Speciale\"] = \"SPECIALE\";\n /** Food Summit */\n Product2_Tipologia__C_Enum[\"FoodSummit\"] = \"FOOD_SUMMIT\";\n /** Premiato Prodotto Food */\n Product2_Tipologia__C_Enum[\"PremiatoProdottoFood\"] = \"PREMIATO_PRODOTTO_FOOD\";\n /** Altri Eventi */\n Product2_Tipologia__C_Enum[\"AltriEventi\"] = \"ALTRI_EVENTI\";\n /** Foto - Video */\n Product2_Tipologia__C_Enum[\"FotoVideo\"] = \"FOTO_VIDEO\";\n /** Pubblicazioni */\n Product2_Tipologia__C_Enum[\"Pubblicazioni\"] = \"PUBBLICAZIONI\";\n /** Post */\n Product2_Tipologia__C_Enum[\"Post\"] = \"POST\";\n /** Concorso a premi */\n Product2_Tipologia__C_Enum[\"ConcorsoAPremi\"] = \"CONCORSO_A_PREMI\";\n /** Materiale POP */\n Product2_Tipologia__C_Enum[\"MaterialePop\"] = \"MATERIALE_POP\";\n /** In Store Promotion */\n Product2_Tipologia__C_Enum[\"InStorePromotion\"] = \"IN_STORE_PROMOTION\";\n /** Gadget */\n Product2_Tipologia__C_Enum[\"Gadget\"] = \"GADGET\";\n /** Editoriale */\n Product2_Tipologia__C_Enum[\"Editoriale\"] = \"EDITORIALE\";\n /** Raccolta Pubblicitaria */\n Product2_Tipologia__C_Enum[\"RaccoltaPubblicitaria\"] = \"RACCOLTA_PUBBLICITARIA\";\n /** Progettuale */\n Product2_Tipologia__C_Enum[\"Progettuale\"] = \"PROGETTUALE\";\n /** Riviste */\n Product2_Tipologia__C_Enum[\"Riviste\"] = \"RIVISTE\";\n /** Showcase */\n Product2_Tipologia__C_Enum[\"Showcase\"] = \"SHOWCASE\";\n /** Canone */\n Product2_Tipologia__C_Enum[\"Canone\"] = \"CANONE\";\n /** Servizio Spot */\n Product2_Tipologia__C_Enum[\"ServizioSpot\"] = \"SERVIZIO_SPOT\";\n /** Fee */\n Product2_Tipologia__C_Enum[\"Fee\"] = \"FEE\";\n})(Product2_Tipologia__C_Enum || (Product2_Tipologia__C_Enum = {}));\n/** Possible requests */\nexport var QuestionSetRequest;\n(function (QuestionSetRequest) {\n QuestionSetRequest[\"Catalog\"] = \"CATALOG\";\n QuestionSetRequest[\"Price\"] = \"PRICE\";\n QuestionSetRequest[\"Resellers\"] = \"RESELLERS\";\n QuestionSetRequest[\"Contact\"] = \"CONTACT\";\n})(QuestionSetRequest || (QuestionSetRequest = {}));\n/** SF picklist */\nexport var Quote_BillingCountryCode_Enum;\n(function (Quote_BillingCountryCode_Enum) {\n /** Afghanistan */\n Quote_BillingCountryCode_Enum[\"Af\"] = \"AF\";\n /** Aland Islands */\n Quote_BillingCountryCode_Enum[\"Ax\"] = \"AX\";\n /** Albania */\n Quote_BillingCountryCode_Enum[\"Al\"] = \"AL\";\n /** Algeria */\n Quote_BillingCountryCode_Enum[\"Dz\"] = \"DZ\";\n /** Andorra */\n Quote_BillingCountryCode_Enum[\"Ad\"] = \"AD\";\n /** Angola */\n Quote_BillingCountryCode_Enum[\"Ao\"] = \"AO\";\n /** Anguilla */\n Quote_BillingCountryCode_Enum[\"Ai\"] = \"AI\";\n /** Antarctica */\n Quote_BillingCountryCode_Enum[\"Aq\"] = \"AQ\";\n /** Antigua and Barbuda */\n Quote_BillingCountryCode_Enum[\"Ag\"] = \"AG\";\n /** Argentina */\n Quote_BillingCountryCode_Enum[\"Ar\"] = \"AR\";\n /** Armenia */\n Quote_BillingCountryCode_Enum[\"Am\"] = \"AM\";\n /** Aruba */\n Quote_BillingCountryCode_Enum[\"Aw\"] = \"AW\";\n /** Australia */\n Quote_BillingCountryCode_Enum[\"Au\"] = \"AU\";\n /** Austria */\n Quote_BillingCountryCode_Enum[\"At\"] = \"AT\";\n /** Azerbaijan */\n Quote_BillingCountryCode_Enum[\"Az\"] = \"AZ\";\n /** Bahamas */\n Quote_BillingCountryCode_Enum[\"Bs\"] = \"BS\";\n /** Bahrain */\n Quote_BillingCountryCode_Enum[\"Bh\"] = \"BH\";\n /** Bangladesh */\n Quote_BillingCountryCode_Enum[\"Bd\"] = \"BD\";\n /** Barbados */\n Quote_BillingCountryCode_Enum[\"Bb\"] = \"BB\";\n /** Belarus */\n Quote_BillingCountryCode_Enum[\"By\"] = \"BY\";\n /** Belgium */\n Quote_BillingCountryCode_Enum[\"Be\"] = \"BE\";\n /** Belize */\n Quote_BillingCountryCode_Enum[\"Bz\"] = \"BZ\";\n /** Benin */\n Quote_BillingCountryCode_Enum[\"Bj\"] = \"BJ\";\n /** Bermuda */\n Quote_BillingCountryCode_Enum[\"Bm\"] = \"BM\";\n /** Bhutan */\n Quote_BillingCountryCode_Enum[\"Bt\"] = \"BT\";\n /** Bolivia, Plurinational State of */\n Quote_BillingCountryCode_Enum[\"Bo\"] = \"BO\";\n /** Bonaire, Sint Eustatius and Saba */\n Quote_BillingCountryCode_Enum[\"Bq\"] = \"BQ\";\n /** Bosnia Erzegovina */\n Quote_BillingCountryCode_Enum[\"Ba\"] = \"BA\";\n /** Botswana */\n Quote_BillingCountryCode_Enum[\"Bw\"] = \"BW\";\n /** Bouvet Island */\n Quote_BillingCountryCode_Enum[\"Bv\"] = \"BV\";\n /** Brazil */\n Quote_BillingCountryCode_Enum[\"Br\"] = \"BR\";\n /** British Indian Ocean Territory */\n Quote_BillingCountryCode_Enum[\"Io\"] = \"IO\";\n /** Brunei */\n Quote_BillingCountryCode_Enum[\"Bn\"] = \"BN\";\n /** Bulgaria */\n Quote_BillingCountryCode_Enum[\"Bg\"] = \"BG\";\n /** Burkina Faso */\n Quote_BillingCountryCode_Enum[\"Bf\"] = \"BF\";\n /** Burundi */\n Quote_BillingCountryCode_Enum[\"Bi\"] = \"BI\";\n /** Cambodia */\n Quote_BillingCountryCode_Enum[\"Kh\"] = \"KH\";\n /** Cameroon */\n Quote_BillingCountryCode_Enum[\"Cm\"] = \"CM\";\n /** Canada */\n Quote_BillingCountryCode_Enum[\"Ca\"] = \"CA\";\n /** Cape Verde */\n Quote_BillingCountryCode_Enum[\"Cv\"] = \"CV\";\n /** Cayman Islands */\n Quote_BillingCountryCode_Enum[\"Ky\"] = \"KY\";\n /** Central African Republic */\n Quote_BillingCountryCode_Enum[\"Cf\"] = \"CF\";\n /** Chad */\n Quote_BillingCountryCode_Enum[\"Td\"] = \"TD\";\n /** Chile */\n Quote_BillingCountryCode_Enum[\"Cl\"] = \"CL\";\n /** China */\n Quote_BillingCountryCode_Enum[\"Cn\"] = \"CN\";\n /** Christmas Island */\n Quote_BillingCountryCode_Enum[\"Cx\"] = \"CX\";\n /** Cocos (Keeling) Islands */\n Quote_BillingCountryCode_Enum[\"Cc\"] = \"CC\";\n /** Colombia */\n Quote_BillingCountryCode_Enum[\"Co\"] = \"CO\";\n /** Comoros */\n Quote_BillingCountryCode_Enum[\"Km\"] = \"KM\";\n /** Congo */\n Quote_BillingCountryCode_Enum[\"Cg\"] = \"CG\";\n /** Congo, the Democratic Republic of the */\n Quote_BillingCountryCode_Enum[\"Cd\"] = \"CD\";\n /** Cook Islands */\n Quote_BillingCountryCode_Enum[\"Ck\"] = \"CK\";\n /** Costa Rica */\n Quote_BillingCountryCode_Enum[\"Cr\"] = \"CR\";\n /** Cote d'Ivoire */\n Quote_BillingCountryCode_Enum[\"Ci\"] = \"CI\";\n /** Croatia */\n Quote_BillingCountryCode_Enum[\"Hr\"] = \"HR\";\n /** Cuba */\n Quote_BillingCountryCode_Enum[\"Cu\"] = \"CU\";\n /** Curaçao */\n Quote_BillingCountryCode_Enum[\"Cw\"] = \"CW\";\n /** Cyprus */\n Quote_BillingCountryCode_Enum[\"Cy\"] = \"CY\";\n /** Czech Republic */\n Quote_BillingCountryCode_Enum[\"Cz\"] = \"CZ\";\n /** Denmark */\n Quote_BillingCountryCode_Enum[\"Dk\"] = \"DK\";\n /** Djibouti */\n Quote_BillingCountryCode_Enum[\"Dj\"] = \"DJ\";\n /** Dominica */\n Quote_BillingCountryCode_Enum[\"Dm\"] = \"DM\";\n /** Dominican Republic */\n Quote_BillingCountryCode_Enum[\"Do\"] = \"DO\";\n /** Ecuador */\n Quote_BillingCountryCode_Enum[\"Ec\"] = \"EC\";\n /** Egypt */\n Quote_BillingCountryCode_Enum[\"Eg\"] = \"EG\";\n /** El Salvador */\n Quote_BillingCountryCode_Enum[\"Sv\"] = \"SV\";\n /** Equatorial Guinea */\n Quote_BillingCountryCode_Enum[\"Gq\"] = \"GQ\";\n /** Eritrea */\n Quote_BillingCountryCode_Enum[\"Er\"] = \"ER\";\n /** Estonia */\n Quote_BillingCountryCode_Enum[\"Ee\"] = \"EE\";\n /** Ethiopia */\n Quote_BillingCountryCode_Enum[\"Et\"] = \"ET\";\n /** Falkland Islands (Malvinas) */\n Quote_BillingCountryCode_Enum[\"Fk\"] = \"FK\";\n /** Faroe Islands */\n Quote_BillingCountryCode_Enum[\"Fo\"] = \"FO\";\n /** Fiji */\n Quote_BillingCountryCode_Enum[\"Fj\"] = \"FJ\";\n /** Finland */\n Quote_BillingCountryCode_Enum[\"Fi\"] = \"FI\";\n /** France */\n Quote_BillingCountryCode_Enum[\"Fr\"] = \"FR\";\n /** French Guiana */\n Quote_BillingCountryCode_Enum[\"Gf\"] = \"GF\";\n /** French Polynesia */\n Quote_BillingCountryCode_Enum[\"Pf\"] = \"PF\";\n /** French Southern Territories */\n Quote_BillingCountryCode_Enum[\"Tf\"] = \"TF\";\n /** Gabon */\n Quote_BillingCountryCode_Enum[\"Ga\"] = \"GA\";\n /** Gambia */\n Quote_BillingCountryCode_Enum[\"Gm\"] = \"GM\";\n /** Georgia */\n Quote_BillingCountryCode_Enum[\"Ge\"] = \"GE\";\n /** Germany */\n Quote_BillingCountryCode_Enum[\"De\"] = \"DE\";\n /** Ghana */\n Quote_BillingCountryCode_Enum[\"Gh\"] = \"GH\";\n /** Gibraltar */\n Quote_BillingCountryCode_Enum[\"Gi\"] = \"GI\";\n /** Greece */\n Quote_BillingCountryCode_Enum[\"Gr\"] = \"GR\";\n /** Greenland */\n Quote_BillingCountryCode_Enum[\"Gl\"] = \"GL\";\n /** Grenada */\n Quote_BillingCountryCode_Enum[\"Gd\"] = \"GD\";\n /** Guadeloupe */\n Quote_BillingCountryCode_Enum[\"Gp\"] = \"GP\";\n /** Guatemala */\n Quote_BillingCountryCode_Enum[\"Gt\"] = \"GT\";\n /** Guernsey */\n Quote_BillingCountryCode_Enum[\"Gg\"] = \"GG\";\n /** Guinea */\n Quote_BillingCountryCode_Enum[\"Gn\"] = \"GN\";\n /** Guinea-Bissau */\n Quote_BillingCountryCode_Enum[\"Gw\"] = \"GW\";\n /** Guyana */\n Quote_BillingCountryCode_Enum[\"Gy\"] = \"GY\";\n /** Haiti */\n Quote_BillingCountryCode_Enum[\"Ht\"] = \"HT\";\n /** Heard Island and McDonald Islands */\n Quote_BillingCountryCode_Enum[\"Hm\"] = \"HM\";\n /** Holy See (Vatican City State) */\n Quote_BillingCountryCode_Enum[\"Va\"] = \"VA\";\n /** Honduras */\n Quote_BillingCountryCode_Enum[\"Hn\"] = \"HN\";\n /** Hungary */\n Quote_BillingCountryCode_Enum[\"Hu\"] = \"HU\";\n /** Iceland */\n Quote_BillingCountryCode_Enum[\"Is\"] = \"IS\";\n /** India */\n Quote_BillingCountryCode_Enum[\"In\"] = \"IN\";\n /** Indonesia */\n Quote_BillingCountryCode_Enum[\"Id\"] = \"ID\";\n /** Iran */\n Quote_BillingCountryCode_Enum[\"Ir\"] = \"IR\";\n /** Iraq */\n Quote_BillingCountryCode_Enum[\"Iq\"] = \"IQ\";\n /** Ireland */\n Quote_BillingCountryCode_Enum[\"Ie\"] = \"IE\";\n /** Isle of Man */\n Quote_BillingCountryCode_Enum[\"Im\"] = \"IM\";\n /** Israel */\n Quote_BillingCountryCode_Enum[\"Il\"] = \"IL\";\n /** Italia */\n Quote_BillingCountryCode_Enum[\"It\"] = \"IT\";\n /** Jamaica */\n Quote_BillingCountryCode_Enum[\"Jm\"] = \"JM\";\n /** Japan */\n Quote_BillingCountryCode_Enum[\"Jp\"] = \"JP\";\n /** Jersey */\n Quote_BillingCountryCode_Enum[\"Je\"] = \"JE\";\n /** Jordan */\n Quote_BillingCountryCode_Enum[\"Jo\"] = \"JO\";\n /** Kazakhstan */\n Quote_BillingCountryCode_Enum[\"Kz\"] = \"KZ\";\n /** Kenya */\n Quote_BillingCountryCode_Enum[\"Ke\"] = \"KE\";\n /** Kiribati */\n Quote_BillingCountryCode_Enum[\"Ki\"] = \"KI\";\n /** Korea, Democratic People's Republic of */\n Quote_BillingCountryCode_Enum[\"Kp\"] = \"KP\";\n /** Kuwait */\n Quote_BillingCountryCode_Enum[\"Kw\"] = \"KW\";\n /** Kyrgyzstan */\n Quote_BillingCountryCode_Enum[\"Kg\"] = \"KG\";\n /** Lao People's Democratic Republic */\n Quote_BillingCountryCode_Enum[\"La\"] = \"LA\";\n /** Latvia */\n Quote_BillingCountryCode_Enum[\"Lv\"] = \"LV\";\n /** Lebanon */\n Quote_BillingCountryCode_Enum[\"Lb\"] = \"LB\";\n /** Lesotho */\n Quote_BillingCountryCode_Enum[\"Ls\"] = \"LS\";\n /** Liberia */\n Quote_BillingCountryCode_Enum[\"Lr\"] = \"LR\";\n /** Libya */\n Quote_BillingCountryCode_Enum[\"Ly\"] = \"LY\";\n /** Liechtenstein */\n Quote_BillingCountryCode_Enum[\"Li\"] = \"LI\";\n /** Lithuania */\n Quote_BillingCountryCode_Enum[\"Lt\"] = \"LT\";\n /** Luxembourg */\n Quote_BillingCountryCode_Enum[\"Lu\"] = \"LU\";\n /** Macao */\n Quote_BillingCountryCode_Enum[\"Mo\"] = \"MO\";\n /** Macedonia */\n Quote_BillingCountryCode_Enum[\"Mk\"] = \"MK\";\n /** Madagascar */\n Quote_BillingCountryCode_Enum[\"Mg\"] = \"MG\";\n /** Malawi */\n Quote_BillingCountryCode_Enum[\"Mw\"] = \"MW\";\n /** Malaysia */\n Quote_BillingCountryCode_Enum[\"My\"] = \"MY\";\n /** Maldives */\n Quote_BillingCountryCode_Enum[\"Mv\"] = \"MV\";\n /** Mali */\n Quote_BillingCountryCode_Enum[\"Ml\"] = \"ML\";\n /** Malta */\n Quote_BillingCountryCode_Enum[\"Mt\"] = \"MT\";\n /** Martinique */\n Quote_BillingCountryCode_Enum[\"Mq\"] = \"MQ\";\n /** Mauritania */\n Quote_BillingCountryCode_Enum[\"Mr\"] = \"MR\";\n /** Mauritius */\n Quote_BillingCountryCode_Enum[\"Mu\"] = \"MU\";\n /** Mayotte */\n Quote_BillingCountryCode_Enum[\"Yt\"] = \"YT\";\n /** Mexico */\n Quote_BillingCountryCode_Enum[\"Mx\"] = \"MX\";\n /** Moldova, Republic of */\n Quote_BillingCountryCode_Enum[\"Md\"] = \"MD\";\n /** Monaco */\n Quote_BillingCountryCode_Enum[\"Mc\"] = \"MC\";\n /** Mongolia */\n Quote_BillingCountryCode_Enum[\"Mn\"] = \"MN\";\n /** Montenegro */\n Quote_BillingCountryCode_Enum[\"Me\"] = \"ME\";\n /** Montserrat */\n Quote_BillingCountryCode_Enum[\"Ms\"] = \"MS\";\n /** Morocco */\n Quote_BillingCountryCode_Enum[\"Ma\"] = \"MA\";\n /** Mozambique */\n Quote_BillingCountryCode_Enum[\"Mz\"] = \"MZ\";\n /** Myanmar */\n Quote_BillingCountryCode_Enum[\"Mm\"] = \"MM\";\n /** Namibia */\n Quote_BillingCountryCode_Enum[\"Na\"] = \"NA\";\n /** Nauru */\n Quote_BillingCountryCode_Enum[\"Nr\"] = \"NR\";\n /** Nepal */\n Quote_BillingCountryCode_Enum[\"Np\"] = \"NP\";\n /** Netherlands */\n Quote_BillingCountryCode_Enum[\"Nl\"] = \"NL\";\n /** New Caledonia */\n Quote_BillingCountryCode_Enum[\"Nc\"] = \"NC\";\n /** New Zealand */\n Quote_BillingCountryCode_Enum[\"Nz\"] = \"NZ\";\n /** Nicaragua */\n Quote_BillingCountryCode_Enum[\"Ni\"] = \"NI\";\n /** Niger */\n Quote_BillingCountryCode_Enum[\"Ne\"] = \"NE\";\n /** Nigeria */\n Quote_BillingCountryCode_Enum[\"Ng\"] = \"NG\";\n /** Niue */\n Quote_BillingCountryCode_Enum[\"Nu\"] = \"NU\";\n /** Norfolk Island */\n Quote_BillingCountryCode_Enum[\"Nf\"] = \"NF\";\n /** Norway */\n Quote_BillingCountryCode_Enum[\"No\"] = \"NO\";\n /** Oman */\n Quote_BillingCountryCode_Enum[\"Om\"] = \"OM\";\n /** Pakistan */\n Quote_BillingCountryCode_Enum[\"Pk\"] = \"PK\";\n /** Palestine */\n Quote_BillingCountryCode_Enum[\"Ps\"] = \"PS\";\n /** Panama */\n Quote_BillingCountryCode_Enum[\"Pa\"] = \"PA\";\n /** Papua New Guinea */\n Quote_BillingCountryCode_Enum[\"Pg\"] = \"PG\";\n /** Paraguay */\n Quote_BillingCountryCode_Enum[\"Py\"] = \"PY\";\n /** Peru */\n Quote_BillingCountryCode_Enum[\"Pe\"] = \"PE\";\n /** Philippines */\n Quote_BillingCountryCode_Enum[\"Ph\"] = \"PH\";\n /** Pitcairn */\n Quote_BillingCountryCode_Enum[\"Pn\"] = \"PN\";\n /** Poland */\n Quote_BillingCountryCode_Enum[\"Pl\"] = \"PL\";\n /** Portugal */\n Quote_BillingCountryCode_Enum[\"Pt\"] = \"PT\";\n /** Qatar */\n Quote_BillingCountryCode_Enum[\"Qa\"] = \"QA\";\n /** Reunion */\n Quote_BillingCountryCode_Enum[\"Re\"] = \"RE\";\n /** Romania */\n Quote_BillingCountryCode_Enum[\"Ro\"] = \"RO\";\n /** Russian Federation */\n Quote_BillingCountryCode_Enum[\"Ru\"] = \"RU\";\n /** Rwanda */\n Quote_BillingCountryCode_Enum[\"Rw\"] = \"RW\";\n /** Saint Barthélemy */\n Quote_BillingCountryCode_Enum[\"Bl\"] = \"BL\";\n /** Saint Helena, Ascension and Tristan da Cunha */\n Quote_BillingCountryCode_Enum[\"Sh\"] = \"SH\";\n /** Saint Kitts and Nevis */\n Quote_BillingCountryCode_Enum[\"Kn\"] = \"KN\";\n /** Saint Lucia */\n Quote_BillingCountryCode_Enum[\"Lc\"] = \"LC\";\n /** Saint Martin (French part) */\n Quote_BillingCountryCode_Enum[\"Mf\"] = \"MF\";\n /** Saint Pierre and Miquelon */\n Quote_BillingCountryCode_Enum[\"Pm\"] = \"PM\";\n /** Saint Vincent and the Grenadines */\n Quote_BillingCountryCode_Enum[\"Vc\"] = \"VC\";\n /** Samoa */\n Quote_BillingCountryCode_Enum[\"Ws\"] = \"WS\";\n /** San Marino */\n Quote_BillingCountryCode_Enum[\"Sm\"] = \"SM\";\n /** Sao Tome and Principe */\n Quote_BillingCountryCode_Enum[\"St\"] = \"ST\";\n /** Saudi Arabia */\n Quote_BillingCountryCode_Enum[\"Sa\"] = \"SA\";\n /** Senegal */\n Quote_BillingCountryCode_Enum[\"Sn\"] = \"SN\";\n /** Serbia */\n Quote_BillingCountryCode_Enum[\"Rs\"] = \"RS\";\n /** Seychelles */\n Quote_BillingCountryCode_Enum[\"Sc\"] = \"SC\";\n /** Sierra Leone */\n Quote_BillingCountryCode_Enum[\"Sl\"] = \"SL\";\n /** Singapore */\n Quote_BillingCountryCode_Enum[\"Sg\"] = \"SG\";\n /** Sint Maarten (Dutch part) */\n Quote_BillingCountryCode_Enum[\"Sx\"] = \"SX\";\n /** Slovakia */\n Quote_BillingCountryCode_Enum[\"Sk\"] = \"SK\";\n /** Slovenia */\n Quote_BillingCountryCode_Enum[\"Si\"] = \"SI\";\n /** Solomon Islands */\n Quote_BillingCountryCode_Enum[\"Sb\"] = \"SB\";\n /** Somalia */\n Quote_BillingCountryCode_Enum[\"So\"] = \"SO\";\n /** South Africa */\n Quote_BillingCountryCode_Enum[\"Za\"] = \"ZA\";\n /** South Georgia and the South Sandwich Islands */\n Quote_BillingCountryCode_Enum[\"Gs\"] = \"GS\";\n /** South Korea */\n Quote_BillingCountryCode_Enum[\"Kr\"] = \"KR\";\n /** South Sudan */\n Quote_BillingCountryCode_Enum[\"Ss\"] = \"SS\";\n /** Spain */\n Quote_BillingCountryCode_Enum[\"Es\"] = \"ES\";\n /** Sri Lanka */\n Quote_BillingCountryCode_Enum[\"Lk\"] = \"LK\";\n /** Sudan */\n Quote_BillingCountryCode_Enum[\"Sd\"] = \"SD\";\n /** Suriname */\n Quote_BillingCountryCode_Enum[\"Sr\"] = \"SR\";\n /** Svalbard and Jan Mayen */\n Quote_BillingCountryCode_Enum[\"Sj\"] = \"SJ\";\n /** Swaziland */\n Quote_BillingCountryCode_Enum[\"Sz\"] = \"SZ\";\n /** Sweden */\n Quote_BillingCountryCode_Enum[\"Se\"] = \"SE\";\n /** Switzerland */\n Quote_BillingCountryCode_Enum[\"Ch\"] = \"CH\";\n /** Syria */\n Quote_BillingCountryCode_Enum[\"Sy\"] = \"SY\";\n /** Taiwan */\n Quote_BillingCountryCode_Enum[\"Tw\"] = \"TW\";\n /** Tajikistan */\n Quote_BillingCountryCode_Enum[\"Tj\"] = \"TJ\";\n /** Tanzania, United Republic of */\n Quote_BillingCountryCode_Enum[\"Tz\"] = \"TZ\";\n /** Thailand */\n Quote_BillingCountryCode_Enum[\"Th\"] = \"TH\";\n /** Timor-Leste */\n Quote_BillingCountryCode_Enum[\"Tl\"] = \"TL\";\n /** Togo */\n Quote_BillingCountryCode_Enum[\"Tg\"] = \"TG\";\n /** Tokelau */\n Quote_BillingCountryCode_Enum[\"Tk\"] = \"TK\";\n /** Tonga */\n Quote_BillingCountryCode_Enum[\"To\"] = \"TO\";\n /** Trinidad and Tobago */\n Quote_BillingCountryCode_Enum[\"Tt\"] = \"TT\";\n /** Tunisia */\n Quote_BillingCountryCode_Enum[\"Tn\"] = \"TN\";\n /** Turkey */\n Quote_BillingCountryCode_Enum[\"Tr\"] = \"TR\";\n /** Turkmenistan */\n Quote_BillingCountryCode_Enum[\"Tm\"] = \"TM\";\n /** Turks and Caicos Islands */\n Quote_BillingCountryCode_Enum[\"Tc\"] = \"TC\";\n /** Tuvalu */\n Quote_BillingCountryCode_Enum[\"Tv\"] = \"TV\";\n /** Uganda */\n Quote_BillingCountryCode_Enum[\"Ug\"] = \"UG\";\n /** Ukraine */\n Quote_BillingCountryCode_Enum[\"Ua\"] = \"UA\";\n /** United Arab Emirates */\n Quote_BillingCountryCode_Enum[\"Ae\"] = \"AE\";\n /** United Kingdom */\n Quote_BillingCountryCode_Enum[\"Gb\"] = \"GB\";\n /** United States */\n Quote_BillingCountryCode_Enum[\"Us\"] = \"US\";\n /** Uruguay */\n Quote_BillingCountryCode_Enum[\"Uy\"] = \"UY\";\n /** Uzbekistan */\n Quote_BillingCountryCode_Enum[\"Uz\"] = \"UZ\";\n /** Vanuatu */\n Quote_BillingCountryCode_Enum[\"Vu\"] = \"VU\";\n /** Venezuela */\n Quote_BillingCountryCode_Enum[\"Ve\"] = \"VE\";\n /** Vietnam */\n Quote_BillingCountryCode_Enum[\"Vn\"] = \"VN\";\n /** Virgin Islands, British */\n Quote_BillingCountryCode_Enum[\"Vg\"] = \"VG\";\n /** Wallis and Futuna */\n Quote_BillingCountryCode_Enum[\"Wf\"] = \"WF\";\n /** Western Sahara */\n Quote_BillingCountryCode_Enum[\"Eh\"] = \"EH\";\n /** Yemen */\n Quote_BillingCountryCode_Enum[\"Ye\"] = \"YE\";\n /** Zambia */\n Quote_BillingCountryCode_Enum[\"Zm\"] = \"ZM\";\n /** Zimbabwe */\n Quote_BillingCountryCode_Enum[\"Zw\"] = \"ZW\";\n})(Quote_BillingCountryCode_Enum || (Quote_BillingCountryCode_Enum = {}));\n/** SF picklist */\nexport var Quote_Condizioni_Di_Pagamento__C_Enum;\n(function (Quote_Condizioni_Di_Pagamento__C_Enum) {\n /** BONIFICO BANCARIO 30 GG DF. FM. */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"BonificoBancario_30GgDfFm\"] = \"BONIFICO_BANCARIO_30_GG_DF_FM\";\n /** BONIFICO BANCARIO 60 GG DF. FM. */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"BonificoBancario_60GgDfFm\"] = \"BONIFICO_BANCARIO_60_GG_DF_FM\";\n /** BONIFICO BANCARIO 90 GG DF. FM. */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"BonificoBancario_90GgDfFm\"] = \"BONIFICO_BANCARIO_90_GG_DF_FM\";\n /** RICEVUTA BANCARIA 30 GG DF.FM. */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"RicevutaBancaria_30GgDfFm\"] = \"RICEVUTA_BANCARIA_30_GG_DF_FM\";\n /** RICEVUTA BANCARIA 60 GG DF.FM. */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"RicevutaBancaria_60GgDfFm\"] = \"RICEVUTA_BANCARIA_60_GG_DF_FM\";\n /** RICEVUTA BANCARIA 90 GG DF.FM. */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"RicevutaBancaria_90GgDfFm\"] = \"RICEVUTA_BANCARIA_90_GG_DF_FM\";\n /** COMPENSAZIONE PARTITE */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"CompensazionePartite\"] = \"COMPENSAZIONE_PARTITE\";\n /** ASSEGNO BANCARIO */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"AssegnoBancario\"] = \"ASSEGNO_BANCARIO\";\n /** ADDEBITO CARTA DI CREDITO */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"AddebitoCartaDiCredito\"] = \"ADDEBITO_CARTA_DI_CREDITO\";\n /** ADDEBITO C/POSTALE */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"AddebitoCPostale\"] = \"ADDEBITO_C_POSTALE\";\n /** ADDEBITO DENARO CONTANTE */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"AddebitoDenaroContante\"] = \"ADDEBITO_DENARO_CONTANTE\";\n /** ADDEBITO BONIFICO BANCARIO */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"AddebitoBonificoBancario\"] = \"ADDEBITO_BONIFICO_BANCARIO\";\n /** BONIFICO BANCARIO */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"BonificoBancario\"] = \"BONIFICO_BANCARIO\";\n /** DENARO CONTANTE */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"DenaroContante\"] = \"DENARO_CONTANTE\";\n /** B.B. 50% ALLA CONSEGNA + B.B. 50% 60 GG DATA FATTURA FM */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"BB_50AllaConsegnaBB_50_60GgDataFatturaFm\"] = \"B_B_50_ALLA_CONSEGNA_B_B_50_60_GG_DATA_FATTURA_FM\";\n /** B.B. 50% ALLA CONSEGNA + B.B. 50% A 30 GG DATA FATTURA */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"BB_50AllaConsegnaBB_50A_30GgDataFattura\"] = \"B_B_50_ALLA_CONSEGNA_B_B_50_A_30_GG_DATA_FATTURA\";\n /** BONIFICO BANCARIO 120 GG DF.FM. */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"BonificoBancario_120GgDfFm\"] = \"BONIFICO_BANCARIO_120_GG_DF_FM\";\n /** BONIFICO BANCARIO 150 GG DF.FM. */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"BonificoBancario_150GgDfFm\"] = \"BONIFICO_BANCARIO_150_GG_DF_FM\";\n /** BONIFICO BANCARIO 180 GG.DF.FM */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"BonificoBancario_180GgDfFm\"] = \"BONIFICO_BANCARIO_180_GG_DF_FM\";\n /** BONIFICO BANCARIO 120 GG DATA FATTURA */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"BonificoBancario_120GgDataFattura\"] = \"BONIFICO_BANCARIO_120_GG_DATA_FATTURA\";\n /** BONIFICO BANCARIO 15 GG DATA FATTURA FINE MESE */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"BonificoBancario_15GgDataFatturaFineMese\"] = \"BONIFICO_BANCARIO_15_GG_DATA_FATTURA_FINE_MESE\";\n /** BONIFICO BANCARIO 30 GG DATA FATTURA */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"BonificoBancario_30GgDataFattura\"] = \"BONIFICO_BANCARIO_30_GG_DATA_FATTURA\";\n /** BONIFICO BANCARIO 30 GG DF.FM. + 15 MESE SUCCESSIVO */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"BonificoBancario_30GgDfFm_15MeseSuccessivo\"] = \"BONIFICO_BANCARIO_30_GG_DF_FM_15_MESE_SUCCESSIVO\";\n /** BONIFICO BANCARIO 30/60 GG DF FM */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"BonificoBancario_30_60GgDfFm\"] = \"BONIFICO_BANCARIO_30_60_GG_DF_FM\";\n /** BONIFICO BANCARIO 60 GG DATA FATTURA */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"BonificoBancario_60GgDataFattura\"] = \"BONIFICO_BANCARIO_60_GG_DATA_FATTURA\";\n /** BONIFICO BANCARIO 90 GG DATA FATTURA */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"BonificoBancario_90GgDataFattura\"] = \"BONIFICO_BANCARIO_90_GG_DATA_FATTURA\";\n /** BONIFICO BANCARIO 90/120 GG DF.FM. */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"BonificoBancario_90_120GgDfFm\"] = \"BONIFICO_BANCARIO_90_120_GG_DF_FM\";\n /** RICEVUTA BANCARIA 120 GG DF.FM. */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"RicevutaBancaria_120GgDfFm\"] = \"RICEVUTA_BANCARIA_120_GG_DF_FM\";\n /** RICEVUTA BANCARIA 150 GG.DF FM */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"RicevutaBancaria_150GgDfFm\"] = \"RICEVUTA_BANCARIA_150_GG_DF_FM\";\n /** RICEVUTA BANCARIA 30/60/90 GG DF.FM. */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"RicevutaBancaria_30_60_90GgDfFm\"] = \"RICEVUTA_BANCARIA_30_60_90_GG_DF_FM\";\n /** RICEVUTA BANCARIA 60/90 GG DF.FM. */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"RicevutaBancaria_60_90GgDfFm\"] = \"RICEVUTA_BANCARIA_60_90_GG_DF_FM\";\n /** RIMESSA DIRETTA RICEVIMENTO FATTURA */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"RimessaDirettaRicevimentoFattura\"] = \"RIMESSA_DIRETTA_RICEVIMENTO_FATTURA\";\n /** FATTURE INFRAGRUPPO */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"FattureInfragruppo\"] = \"FATTURE_INFRAGRUPPO\";\n /** CONFIRMING A 120 GG */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"ConfirmingA_120Gg\"] = \"CONFIRMING_A_120_GG\";\n /** BB 1/3 A VISTA, 1/3 A 90 A GG DF FM, 1/3 90 A 150 GG DF FM */\n Quote_Condizioni_Di_Pagamento__C_Enum[\"Bb_1_3AVista_1_3A_90AGgDfFm_1_3_90A_150GgDfFm\"] = \"BB_1_3_A_VISTA_1_3_A_90_A_GG_DF_FM_1_3_90_A_150_GG_DF_FM\";\n})(Quote_Condizioni_Di_Pagamento__C_Enum || (Quote_Condizioni_Di_Pagamento__C_Enum = {}));\n/** SF picklist */\nexport var Quote_Status_Enum;\n(function (Quote_Status_Enum) {\n /** Da approvare */\n Quote_Status_Enum[\"DaApprovare\"] = \"DA_APPROVARE\";\n /** Rifiutato */\n Quote_Status_Enum[\"Rifiutato\"] = \"RIFIUTATO\";\n /** Approvato */\n Quote_Status_Enum[\"Approvato\"] = \"APPROVATO\";\n})(Quote_Status_Enum || (Quote_Status_Enum = {}));\n/** Se chi compra lo fa da privato, libero professionista o azienda */\nexport var QuoteAccountType;\n(function (QuoteAccountType) {\n QuoteAccountType[\"Private\"] = \"PRIVATE\";\n QuoteAccountType[\"Freelance\"] = \"FREELANCE\";\n QuoteAccountType[\"Company\"] = \"COMPANY\";\n})(QuoteAccountType || (QuoteAccountType = {}));\nexport var RetailerOrderBy;\n(function (RetailerOrderBy) {\n RetailerOrderBy[\"Name\"] = \"name\";\n RetailerOrderBy[\"Type\"] = \"type\";\n})(RetailerOrderBy || (RetailerOrderBy = {}));\n/** Retailer possible types */\nexport var RetailerType;\n(function (RetailerType) {\n RetailerType[\"FoodServiceAltriGrossisti\"] = \"FOOD_SERVICE_ALTRI_GROSSISTI\";\n RetailerType[\"FoodServiceGrossistaBeverage\"] = \"FOOD_SERVICE_GROSSISTA_BEVERAGE\";\n RetailerType[\"FoodServiceGrossistaCaffET\"] = \"FOOD_SERVICE_GROSSISTA_CAFF_E_T\";\n RetailerType[\"FoodServiceGrossistaCarniESalumi\"] = \"FOOD_SERVICE_GROSSISTA_CARNI_E_SALUMI\";\n RetailerType[\"FoodServiceGrossistaDolciario\"] = \"FOOD_SERVICE_GROSSISTA_DOLCIARIO\";\n RetailerType[\"FoodServiceGrossistaGourmet\"] = \"FOOD_SERVICE_GROSSISTA_GOURMET\";\n RetailerType[\"FoodServiceGrossistaLatteEDerivati\"] = \"FOOD_SERVICE_GROSSISTA_LATTE_E_DERIVATI\";\n RetailerType[\"FoodServiceGrossistaOli\"] = \"FOOD_SERVICE_GROSSISTA_OLI\";\n RetailerType[\"FoodServiceGrossistaOrtofrutta\"] = \"FOOD_SERVICE_GROSSISTA_ORTOFRUTTA\";\n RetailerType[\"FoodServiceGrossistaPesce\"] = \"FOOD_SERVICE_GROSSISTA_PESCE\";\n RetailerType[\"FoodServiceGrossistaSurgelati\"] = \"FOOD_SERVICE_GROSSISTA_SURGELATI\";\n RetailerType[\"IstituzioneCulturale\"] = \"ISTITUZIONE_CULTURALE\";\n RetailerType[\"RetailCC\"] = \"RETAIL_C_C\";\n RetailerType[\"RmaBroker\"] = \"RMA_BROKER\";\n RetailerType[\"RmaCedec\"] = \"RMA_CEDEC\";\n RetailerType[\"RmaCentraleDAcquisto\"] = \"RMA_CENTRALE_D_ACQUISTO\";\n RetailerType[\"RmaConsorzio\"] = \"RMA_CONSORZIO\";\n RetailerType[\"RmaECommerce\"] = \"RMA_E_COMMERCE\";\n RetailerType[\"RmaGruppoInternazionale\"] = \"RMA_GRUPPO_INTERNAZIONALE\";\n RetailerType[\"RmaGruppoNazionale\"] = \"RMA_GRUPPO_NAZIONALE\";\n RetailerType[\"RmaGruppoRegionale\"] = \"RMA_GRUPPO_REGIONALE\";\n RetailerType[\"RmaImportatore\"] = \"RMA_IMPORTATORE\";\n RetailerType[\"RmaLandlord\"] = \"RMA_LANDLORD\";\n RetailerType[\"RmaWholesaler\"] = \"RMA_WHOLESALER\";\n RetailerType[\"RmsBroker\"] = \"RMS_BROKER\";\n RetailerType[\"RmsCedec\"] = \"RMS_CEDEC\";\n RetailerType[\"RmsCentraleDAcquisto\"] = \"RMS_CENTRALE_D_ACQUISTO\";\n RetailerType[\"RmsConsorzio\"] = \"RMS_CONSORZIO\";\n RetailerType[\"RmsECommerce\"] = \"RMS_E_COMMERCE\";\n RetailerType[\"RmsGruppoInternazionale\"] = \"RMS_GRUPPO_INTERNAZIONALE\";\n RetailerType[\"RmsGruppoNazionale\"] = \"RMS_GRUPPO_NAZIONALE\";\n RetailerType[\"RmsGruppoRegionale\"] = \"RMS_GRUPPO_REGIONALE\";\n RetailerType[\"RmsImportatore\"] = \"RMS_IMPORTATORE\";\n RetailerType[\"RmsLandlord\"] = \"RMS_LANDLORD\";\n RetailerType[\"RmsWholesaler\"] = \"RMS_WHOLESALER\";\n RetailerType[\"VendingDistrLocale\"] = \"VENDING_DISTR_LOCALE\";\n RetailerType[\"VendingDistributoreCentrale\"] = \"VENDING_DISTRIBUTORE_CENTRALE\";\n})(RetailerType || (RetailerType = {}));\n/** SampleRequest's possible statues */\nexport var SampleRequestStatus;\n(function (SampleRequestStatus) {\n SampleRequestStatus[\"Pending\"] = \"PENDING\";\n SampleRequestStatus[\"Accepted\"] = \"ACCEPTED\";\n SampleRequestStatus[\"Rejected\"] = \"REJECTED\";\n})(SampleRequestStatus || (SampleRequestStatus = {}));\nexport var ServiceOrderBy;\n(function (ServiceOrderBy) {\n ServiceOrderBy[\"Name\"] = \"name\";\n ServiceOrderBy[\"Type\"] = \"type\";\n})(ServiceOrderBy || (ServiceOrderBy = {}));\n/** Service possible types */\nexport var ServiceType;\n(function (ServiceType) {\n ServiceType[\"AttrezzatureFoodService\"] = \"ATTREZZATURE_FOOD_SERVICE\";\n ServiceType[\"AttrezzatureRetail\"] = \"ATTREZZATURE_RETAIL\";\n ServiceType[\"CentroMedia\"] = \"CENTRO_MEDIA\";\n ServiceType[\"ConsulenzeFormazioneHR\"] = \"CONSULENZE_FORMAZIONE_H_R\";\n ServiceType[\"Energia\"] = \"ENERGIA\";\n ServiceType[\"EntiDiCertificazione\"] = \"ENTI_DI_CERTIFICAZIONE\";\n ServiceType[\"Fiere\"] = \"FIERE\";\n ServiceType[\"IstituzioneCulturale\"] = \"ISTITUZIONE_CULTURALE\";\n ServiceType[\"MarketingPromoz\"] = \"MARKETING_PROMOZ\";\n ServiceType[\"OrganiStatali\"] = \"ORGANI_STATALI\";\n ServiceType[\"RealEstate\"] = \"REAL_ESTATE\";\n ServiceType[\"RicercheDiMercato\"] = \"RICERCHE_DI_MERCATO\";\n ServiceType[\"ScuoleEUniversit\"] = \"SCUOLE_E_UNIVERSIT\";\n ServiceType[\"ServiziFinanziari\"] = \"SERVIZI_FINANZIARI\";\n ServiceType[\"ServiziInformatici\"] = \"SERVIZI_INFORMATICI\";\n ServiceType[\"ServiziLegali\"] = \"SERVIZI_LEGALI\";\n ServiceType[\"ServiziLogistici\"] = \"SERVIZI_LOGISTICI\";\n ServiceType[\"Telecomunicazioni\"] = \"TELECOMUNICAZIONI\";\n ServiceType[\"UfficiStampaPR\"] = \"UFFICI_STAMPA_P_R\";\n})(ServiceType || (ServiceType = {}));\n/** Possible SocialTypes */\nexport var SocialType;\n(function (SocialType) {\n SocialType[\"Google\"] = \"GOOGLE\";\n SocialType[\"Linkedin\"] = \"LINKEDIN\";\n SocialType[\"Facebook\"] = \"FACEBOOK\";\n})(SocialType || (SocialType = {}));\nexport var StateProvinceOrderByEnum;\n(function (StateProvinceOrderByEnum) {\n StateProvinceOrderByEnum[\"Name\"] = \"name\";\n StateProvinceOrderByEnum[\"NameIta\"] = \"nameIta\";\n StateProvinceOrderByEnum[\"Region\"] = \"region\";\n StateProvinceOrderByEnum[\"RegionIta\"] = \"regionIta\";\n StateProvinceOrderByEnum[\"NielsenArea\"] = \"nielsenArea\";\n StateProvinceOrderByEnum[\"Country\"] = \"Country\";\n})(StateProvinceOrderByEnum || (StateProvinceOrderByEnum = {}));\nexport var TargetMedia;\n(function (TargetMedia) {\n TargetMedia[\"Website\"] = \"WEBSITE\";\n TargetMedia[\"Newsletter\"] = \"NEWSLETTER\";\n})(TargetMedia || (TargetMedia = {}));\nexport var TargetSite;\n(function (TargetSite) {\n TargetSite[\"Ifn\"] = \"IFN\";\n TargetSite[\"Hub\"] = \"HUB\";\n TargetSite[\"Vote\"] = \"VOTE\";\n TargetSite[\"Foodweb\"] = \"FOODWEB\";\n TargetSite[\"Foodserviceweb\"] = \"FOODSERVICEWEB\";\n TargetSite[\"Dolcesalato\"] = \"DOLCESALATO\";\n TargetSite[\"Newsletter\"] = \"NEWSLETTER\";\n})(TargetSite || (TargetSite = {}));\n/** Transformation levels */\nexport var TransformationLevel;\n(function (TransformationLevel) {\n TransformationLevel[\"Unprepared\"] = \"UNPREPARED\";\n TransformationLevel[\"Prepared\"] = \"PREPARED\";\n TransformationLevel[\"PreparedNotReadyToEat\"] = \"PREPARED_NOT_READY_TO_EAT\";\n TransformationLevel[\"PreparedReadyToEat\"] = \"PREPARED_READY_TO_EAT\";\n})(TransformationLevel || (TransformationLevel = {}));\n/** User note possible collections */\nexport var UserNoteCollection;\n(function (UserNoteCollection) {\n UserNoteCollection[\"Company\"] = \"Company\";\n UserNoteCollection[\"Good\"] = \"Good\";\n UserNoteCollection[\"Retailer\"] = \"Retailer\";\n UserNoteCollection[\"CompanyGroup\"] = \"CompanyGroup\";\n UserNoteCollection[\"Service\"] = \"Service\";\n UserNoteCollection[\"FoodService\"] = \"FoodService\";\n})(UserNoteCollection || (UserNoteCollection = {}));\n/** // TODO */\nexport var UserObjectSubscriptionFlag;\n(function (UserObjectSubscriptionFlag) {\n UserObjectSubscriptionFlag[\"Bookmark\"] = \"BOOKMARK\";\n UserObjectSubscriptionFlag[\"Follow\"] = \"FOLLOW\";\n})(UserObjectSubscriptionFlag || (UserObjectSubscriptionFlag = {}));\nexport var UserOrderBy;\n(function (UserOrderBy) {\n UserOrderBy[\"FirstName\"] = \"firstName\";\n UserOrderBy[\"LastName\"] = \"lastName\";\n UserOrderBy[\"Email\"] = \"email\";\n UserOrderBy[\"Status\"] = \"status\";\n UserOrderBy[\"Role\"] = \"role\";\n UserOrderBy[\"CreatedOn\"] = \"createdOn\";\n UserOrderBy[\"LastLogin\"] = \"lastLogin\";\n})(UserOrderBy || (UserOrderBy = {}));\n/** User possible roles */\nexport var UserRole;\n(function (UserRole) {\n UserRole[\"Anonymus\"] = \"ANONYMUS\";\n UserRole[\"Internal\"] = \"INTERNAL\";\n UserRole[\"Producer\"] = \"PRODUCER\";\n UserRole[\"Buyer\"] = \"BUYER\";\n UserRole[\"BuyerPlItalia\"] = \"BUYER_PL_ITALIA\";\n UserRole[\"Foodservice\"] = \"FOODSERVICE\";\n UserRole[\"Shopworker\"] = \"SHOPWORKER\";\n UserRole[\"Service\"] = \"SERVICE\";\n UserRole[\"Consumer\"] = \"CONSUMER\";\n})(UserRole || (UserRole = {}));\n/** User statuses */\nexport var UserStatus;\n(function (UserStatus) {\n UserStatus[\"NotVerified\"] = \"NOT_VERIFIED\";\n UserStatus[\"WaitingReview\"] = \"WAITING_REVIEW\";\n UserStatus[\"Active\"] = \"ACTIVE\";\n UserStatus[\"Disabled\"] = \"DISABLED\";\n UserStatus[\"Deleted\"] = \"DELETED\";\n})(UserStatus || (UserStatus = {}));\n/** User possible relations used for visibility */\nexport var VisibilityRelations;\n(function (VisibilityRelations) {\n VisibilityRelations[\"LinkedToFair\"] = \"LINKED_TO_FAIR\";\n VisibilityRelations[\"LinkedToAwardCandidacy\"] = \"LINKED_TO_AWARD_CANDIDACY\";\n VisibilityRelations[\"LinkedToAwardEvent\"] = \"LINKED_TO_AWARD_EVENT\";\n VisibilityRelations[\"LinkedToAwardVote\"] = \"LINKED_TO_AWARD_VOTE\";\n VisibilityRelations[\"LinkedToCompany\"] = \"LINKED_TO_COMPANY\";\n VisibilityRelations[\"LinkedToGeoIndication\"] = \"LINKED_TO_GEO_INDICATION\";\n VisibilityRelations[\"TargetForFair\"] = \"TARGET_FOR_FAIR\";\n VisibilityRelations[\"TargetForAwardCandidacy\"] = \"TARGET_FOR_AWARD_CANDIDACY\";\n VisibilityRelations[\"TargetForAwardEvent\"] = \"TARGET_FOR_AWARD_EVENT\";\n VisibilityRelations[\"TargetForAwardVote\"] = \"TARGET_FOR_AWARD_VOTE\";\n VisibilityRelations[\"TargetForCompany\"] = \"TARGET_FOR_COMPANY\";\n VisibilityRelations[\"TargetForGeoIndication\"] = \"TARGET_FOR_GEO_INDICATION\";\n})(VisibilityRelations || (VisibilityRelations = {}));\n/** User possible roles used for visibility */\nexport var VisibilityRole;\n(function (VisibilityRole) {\n VisibilityRole[\"AnonymusOnly\"] = \"ANONYMUS_ONLY\";\n VisibilityRole[\"UserOnly\"] = \"USER_ONLY\";\n VisibilityRole[\"ProducerOnly\"] = \"PRODUCER_ONLY\";\n VisibilityRole[\"BuyerOnly\"] = \"BUYER_ONLY\";\n})(VisibilityRole || (VisibilityRole = {}));\nexport var VisibilityType;\n(function (VisibilityType) {\n VisibilityType[\"Anonymus\"] = \"ANONYMUS\";\n VisibilityType[\"User\"] = \"USER\";\n VisibilityType[\"Pardot\"] = \"PARDOT\";\n VisibilityType[\"Typeform\"] = \"TYPEFORM\";\n VisibilityType[\"SfItem\"] = \"SF_ITEM\";\n VisibilityType[\"SfCampaign\"] = \"SF_CAMPAIGN\";\n VisibilityType[\"SfCampaignPresente\"] = \"SF_CAMPAIGN_PRESENTE\";\n})(VisibilityType || (VisibilityType = {}));\n/** // TODO */\nexport var WidgetLocation;\n(function (WidgetLocation) {\n WidgetLocation[\"Homepage\"] = \"HOMEPAGE\";\n WidgetLocation[\"Dashboard\"] = \"DASHBOARD\";\n WidgetLocation[\"EditorialSection\"] = \"EDITORIAL_SECTION\";\n WidgetLocation[\"FairDirectory\"] = \"FAIR_DIRECTORY\";\n WidgetLocation[\"SupplierDirectory\"] = \"SUPPLIER_DIRECTORY\";\n WidgetLocation[\"ProductDirectory\"] = \"PRODUCT_DIRECTORY\";\n})(WidgetLocation || (WidgetLocation = {}));\nexport var WidgetOrderBy;\n(function (WidgetOrderBy) {\n WidgetOrderBy[\"Name\"] = \"name\";\n WidgetOrderBy[\"StartDate\"] = \"startDate\";\n WidgetOrderBy[\"ExpirationDate\"] = \"expirationDate\";\n WidgetOrderBy[\"OrderPriority\"] = \"orderPriority\";\n})(WidgetOrderBy || (WidgetOrderBy = {}));\n/** // TODO */\nexport var WidgetStyleColor;\n(function (WidgetStyleColor) {\n WidgetStyleColor[\"Primary\"] = \"PRIMARY\";\n WidgetStyleColor[\"Secondary\"] = \"SECONDARY\";\n WidgetStyleColor[\"Alt\"] = \"ALT\";\n WidgetStyleColor[\"Alt2\"] = \"ALT2\";\n WidgetStyleColor[\"ByEditorialSection\"] = \"BY_EDITORIAL_SECTION\";\n WidgetStyleColor[\"Gradient1\"] = \"GRADIENT1\";\n WidgetStyleColor[\"Gradient2\"] = \"GRADIENT2\";\n})(WidgetStyleColor || (WidgetStyleColor = {}));\n/** // TODO */\nexport var WidgetStyleType;\n(function (WidgetStyleType) {\n WidgetStyleType[\"Bordered\"] = \"BORDERED\";\n WidgetStyleType[\"Unboxed\"] = \"UNBOXED\";\n WidgetStyleType[\"Magazine\"] = \"MAGAZINE\";\n WidgetStyleType[\"Big_4Small\"] = \"BIG_4SMALL\";\n WidgetStyleType[\"Carusel\"] = \"CARUSEL\";\n})(WidgetStyleType || (WidgetStyleType = {}));\n//# sourceMappingURL=server-types.js.map","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 \"@babel/runtime/helpers/esm/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}","/* 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","var core = module.exports = { version: '2.6.11' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","var MAX_SUGGESTIONS = 5;\n/**\n * Given [ A, B, C ] return ' Did you mean A, B, or C?'.\n */\n\n// eslint-disable-next-line no-redeclare\nexport default function didYouMean(firstArg, secondArg) {\n var _ref = typeof firstArg === 'string' ? [firstArg, secondArg] : [undefined, firstArg],\n subMessage = _ref[0],\n suggestions = _ref[1];\n\n var message = ' Did you mean ';\n\n if (subMessage) {\n message += subMessage + ' ';\n }\n\n switch (suggestions.length) {\n case 0:\n return '';\n\n case 1:\n return message + suggestions[0] + '?';\n\n case 2:\n return message + suggestions[0] + ' or ' + suggestions[1] + '?';\n }\n\n var selected = suggestions.slice(0, MAX_SUGGESTIONS);\n var lastItem = selected.pop();\n return message + selected.join(', ') + ', or ' + lastItem + '?';\n}\n","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport assertThisInitialized from \"@babel/runtime/helpers/esm/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}","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Event, Integration, StackFrame, WrappedFunction } from '@sentry/types';\n\nimport { isNodeEnv } from './node';\nimport { snipLine } from './string';\n\n/** Internal */\ninterface SentryGlobal {\n Sentry?: {\n Integrations?: Integration[];\n };\n SENTRY_ENVIRONMENT?: string;\n SENTRY_DSN?: string;\n SENTRY_RELEASE?: {\n id?: string;\n };\n __SENTRY__: {\n globalEventProcessors: any;\n hub: any;\n logger: any;\n };\n}\n\nconst fallbackGlobalObject = {};\n\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nexport function getGlobalObject(): T & SentryGlobal {\n return (isNodeEnv()\n ? global\n : typeof window !== 'undefined'\n ? window\n : typeof self !== 'undefined'\n ? self\n : fallbackGlobalObject) as T & SentryGlobal;\n}\n\n/**\n * Extended Window interface that allows for Crypto API usage in IE browsers\n */\ninterface MsCryptoWindow extends Window {\n msCrypto?: Crypto;\n}\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4(): string {\n const global = getGlobalObject() as MsCryptoWindow;\n const crypto = global.crypto || global.msCrypto;\n\n if (!(crypto === void 0) && crypto.getRandomValues) {\n // Use window.crypto API if available\n const arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n\n // set 4 in byte 7\n // eslint-disable-next-line no-bitwise\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n // eslint-disable-next-line no-bitwise\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n\n const pad = (num: number): string => {\n let v = num.toString(16);\n while (v.length < 4) {\n v = `0${v}`;\n }\n return v;\n };\n\n return (\n pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7])\n );\n }\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, c => {\n // eslint-disable-next-line no-bitwise\n const r = (Math.random() * 16) | 0;\n // eslint-disable-next-line no-bitwise\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nexport function parseUrl(\n url: string,\n): {\n host?: string;\n path?: string;\n protocol?: string;\n relative?: string;\n} {\n if (!url) {\n return {};\n }\n\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n const query = match[6] || '';\n const fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event: Event): string {\n if (event.message) {\n return event.message;\n }\n if (event.exception && event.exception.values && event.exception.values[0]) {\n const exception = event.exception.values[0];\n\n if (exception.type && exception.value) {\n return `${exception.type}: ${exception.value}`;\n }\n return exception.type || exception.value || event.event_id || '';\n }\n return event.event_id || '';\n}\n\n/** JSDoc */\ninterface ExtensibleConsole extends Console {\n [key: string]: any;\n}\n\n/** JSDoc */\nexport function consoleSandbox(callback: () => any): any {\n const global = getGlobalObject();\n const levels = ['debug', 'info', 'warn', 'error', 'log', 'assert'];\n\n if (!('console' in global)) {\n return callback();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const originalConsole = (global as any).console as ExtensibleConsole;\n const wrappedLevels: { [key: string]: any } = {};\n\n // Restore all wrapped console methods\n levels.forEach(level => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (level in (global as any).console && (originalConsole[level] as WrappedFunction).__sentry_original__) {\n wrappedLevels[level] = originalConsole[level] as WrappedFunction;\n originalConsole[level] = (originalConsole[level] as WrappedFunction).__sentry_original__;\n }\n });\n\n // Perform callback manipulations\n const result = callback();\n\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(level => {\n originalConsole[level] = wrappedLevels[level];\n });\n\n return result;\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event: Event, value?: string, type?: string): void {\n event.exception = event.exception || {};\n event.exception.values = event.exception.values || [];\n event.exception.values[0] = event.exception.values[0] || {};\n event.exception.values[0].value = event.exception.values[0].value || value || '';\n event.exception.values[0].type = event.exception.values[0].type || type || 'Error';\n}\n\n/**\n * Adds exception mechanism to a given event.\n * @param event The event to modify.\n * @param mechanism Mechanism of the mechanism.\n * @hidden\n */\nexport function addExceptionMechanism(\n event: Event,\n mechanism: {\n [key: string]: any;\n } = {},\n): void {\n // TODO: Use real type with `keyof Mechanism` thingy and maybe make it better?\n try {\n // @ts-ignore Type 'Mechanism | {}' is not assignable to type 'Mechanism | undefined'\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception!.values![0].mechanism = event.exception!.values![0].mechanism || {};\n Object.keys(mechanism).forEach(key => {\n // @ts-ignore Mechanism has no index signature\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception!.values![0].mechanism[key] = mechanism[key];\n });\n } catch (_oO) {\n // no-empty\n }\n}\n\n/**\n * A safe form of location.href\n */\nexport function getLocationHref(): string {\n try {\n return document.location.href;\n } catch (oO) {\n return '';\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\ninterface SemVer {\n major?: number;\n minor?: number;\n patch?: number;\n prerelease?: string;\n buildmetadata?: string;\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input: string): SemVer {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = parseInt(match[1], 10);\n const minor = parseInt(match[2], 10);\n const patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\nconst defaultRetryAfter = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param now current unix timestamp\n * @param header string representation of 'Retry-After' header\n */\nexport function parseRetryAfterHeader(now: number, header?: string | number | null): number {\n if (!header) {\n return defaultRetryAfter;\n }\n\n const headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n const headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return defaultRetryAfter;\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines: string[], frame: StackFrame, linesOfContext: number = 5): void {\n const lineno = frame.lineno || 0;\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line: string) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line: string) => snipLine(line, 0));\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nexport function stripUrlQueryAndFragment(urlPath: string): string {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Transition } from 'react-transition-group';\nimport { mapToCssModules, omit, pick, TransitionPropTypeKeys, TransitionTimeouts, tagPropType } from './utils';\n\nvar propTypes = _objectSpread(_objectSpread({}, Transition.propTypes), {}, {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n tag: tagPropType,\n baseClass: PropTypes.string,\n baseClassActive: PropTypes.string,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.func])\n});\n\nvar defaultProps = _objectSpread(_objectSpread({}, Transition.defaultProps), {}, {\n tag: 'div',\n baseClass: 'fade',\n baseClassActive: 'show',\n timeout: TransitionTimeouts.Fade,\n appear: true,\n enter: true,\n exit: true,\n in: true\n});\n\nfunction Fade(props) {\n var Tag = props.tag,\n baseClass = props.baseClass,\n baseClassActive = props.baseClassActive,\n className = props.className,\n cssModule = props.cssModule,\n children = props.children,\n innerRef = props.innerRef,\n otherProps = _objectWithoutPropertiesLoose(props, [\"tag\", \"baseClass\", \"baseClassActive\", \"className\", \"cssModule\", \"children\", \"innerRef\"]);\n\n var transitionProps = pick(otherProps, TransitionPropTypeKeys);\n var childProps = omit(otherProps, TransitionPropTypeKeys);\n return /*#__PURE__*/React.createElement(Transition, transitionProps, function (status) {\n var isActive = status === 'entered';\n var classes = mapToCssModules(classNames(className, baseClass, isActive && baseClassActive), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({\n className: classes\n }, childProps, {\n ref: innerRef\n }), children);\n });\n}\n\nFade.propTypes = propTypes;\nFade.defaultProps = defaultProps;\nexport default Fade;","import objectEntries from '../polyfills/objectEntries';\nexport default function toObjMap(obj) {\n /* eslint-enable no-redeclare */\n if (Object.getPrototypeOf(obj) === null) {\n return obj;\n }\n\n var map = Object.create(null);\n\n for (var _i2 = 0, _objectEntries2 = objectEntries(obj); _i2 < _objectEntries2.length; _i2++) {\n var _ref2 = _objectEntries2[_i2];\n var key = _ref2[0];\n var value = _ref2[1];\n map[key] = value;\n }\n\n return map;\n}\n","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","/**\n * Given an invalid input string and a list of valid options, returns a filtered\n * list of valid options sorted based on their similarity with the input.\n */\nexport default function suggestionList(input, options) {\n var optionsByDistance = Object.create(null);\n var inputThreshold = input.length / 2;\n\n for (var _i2 = 0; _i2 < options.length; _i2++) {\n var option = options[_i2];\n var distance = lexicalDistance(input, option);\n var threshold = Math.max(inputThreshold, option.length / 2, 1);\n\n if (distance <= threshold) {\n optionsByDistance[option] = distance;\n }\n }\n\n return Object.keys(optionsByDistance).sort(function (a, b) {\n return optionsByDistance[a] - optionsByDistance[b];\n });\n}\n/**\n * Computes the lexical distance between strings A and B.\n *\n * The \"distance\" between two strings is given by counting the minimum number\n * of edits needed to transform string A into string B. An edit can be an\n * insertion, deletion, or substitution of a single character, or a swap of two\n * adjacent characters.\n *\n * Includes a custom alteration from Damerau-Levenshtein to treat case changes\n * as a single edit which helps identify mis-cased values with an edit distance\n * of 1.\n *\n * This distance can be useful for detecting typos in input or sorting\n *\n * @param {string} a\n * @param {string} b\n * @return {int} distance in number of edits\n */\n\nfunction lexicalDistance(aStr, bStr) {\n if (aStr === bStr) {\n return 0;\n }\n\n var d = [];\n var a = aStr.toLowerCase();\n var b = bStr.toLowerCase();\n var aLength = a.length;\n var bLength = b.length; // Any case change counts as a single edit\n\n if (a === b) {\n return 1;\n }\n\n for (var i = 0; i <= aLength; i++) {\n d[i] = [i];\n }\n\n for (var j = 1; j <= bLength; j++) {\n d[0][j] = j;\n }\n\n for (var _i3 = 1; _i3 <= aLength; _i3++) {\n for (var _j = 1; _j <= bLength; _j++) {\n var cost = a[_i3 - 1] === b[_j - 1] ? 0 : 1;\n d[_i3][_j] = Math.min(d[_i3 - 1][_j] + 1, d[_i3][_j - 1] + 1, d[_i3 - 1][_j - 1] + cost);\n\n if (_i3 > 1 && _j > 1 && a[_i3 - 1] === b[_j - 2] && a[_i3 - 2] === b[_j - 1]) {\n d[_i3][_j] = Math.min(d[_i3][_j], d[_i3 - 2][_j - 2] + cost);\n }\n }\n }\n\n return d[aLength][bLength];\n}\n","/**\n * Returns true if a value is undefined, or NaN.\n */\nexport default function isInvalid(value) {\n return value === undefined || value !== value;\n}\n","/**\n * Copyright (c) 2016, Lee Byron\n * All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @ignore\n */\n\n/**\n * [Iterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#iterator)\n * is a *protocol* which describes a standard way to produce a sequence of\n * values, typically the values of the Iterable represented by this Iterator.\n *\n * While described by the [ES2015 version of JavaScript](http://www.ecma-international.org/ecma-262/6.0/#sec-iterator-interface)\n * it can be utilized by any version of JavaScript.\n *\n * @external Iterator\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#iterator|MDN Iteration protocols}\n */\n\n/**\n * [Iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#iterable)\n * is a *protocol* which when implemented allows a JavaScript object to define\n * their iteration behavior, such as what values are looped over in a\n * [`for...of`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of)\n * loop or `iterall`'s `forEach` function. Many [built-in types](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#Builtin_iterables)\n * implement the Iterable protocol, including `Array` and `Map`.\n *\n * While described by the [ES2015 version of JavaScript](http://www.ecma-international.org/ecma-262/6.0/#sec-iterable-interface)\n * it can be utilized by any version of JavaScript.\n *\n * @external Iterable\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#iterable|MDN Iteration protocols}\n */\n\n// In ES2015 environments, Symbol exists\nvar SYMBOL /*: any */ = typeof Symbol === 'function' ? Symbol : void 0\n\n// In ES2015 (or a polyfilled) environment, this will be Symbol.iterator\nvar SYMBOL_ITERATOR = SYMBOL && SYMBOL.iterator\n\n/**\n * A property name to be used as the name of an Iterable's method responsible\n * for producing an Iterator, referred to as `@@iterator`. Typically represents\n * the value `Symbol.iterator` but falls back to the string `\"@@iterator\"` when\n * `Symbol.iterator` is not defined.\n *\n * Use `$$iterator` for defining new Iterables instead of `Symbol.iterator`,\n * but do not use it for accessing existing Iterables, instead use\n * {@link getIterator} or {@link isIterable}.\n *\n * @example\n *\n * var $$iterator = require('iterall').$$iterator\n *\n * function Counter (to) {\n * this.to = to\n * }\n *\n * Counter.prototype[$$iterator] = function () {\n * return {\n * to: this.to,\n * num: 0,\n * next () {\n * if (this.num >= this.to) {\n * return { value: undefined, done: true }\n * }\n * return { value: this.num++, done: false }\n * }\n * }\n * }\n *\n * var counter = new Counter(3)\n * for (var number of counter) {\n * console.log(number) // 0 ... 1 ... 2\n * }\n *\n * @type {Symbol|string}\n */\n/*:: declare export var $$iterator: '@@iterator'; */\nexport var $$iterator = SYMBOL_ITERATOR || '@@iterator'\n\n/**\n * Returns true if the provided object implements the Iterator protocol via\n * either implementing a `Symbol.iterator` or `\"@@iterator\"` method.\n *\n * @example\n *\n * var isIterable = require('iterall').isIterable\n * isIterable([ 1, 2, 3 ]) // true\n * isIterable('ABC') // true\n * isIterable({ length: 1, 0: 'Alpha' }) // false\n * isIterable({ key: 'value' }) // false\n * isIterable(new Map()) // true\n *\n * @param obj\n * A value which might implement the Iterable protocol.\n * @return {boolean} true if Iterable.\n */\n/*:: declare export function isIterable(obj: any): boolean; */\nexport function isIterable(obj) {\n return !!getIteratorMethod(obj)\n}\n\n/**\n * Returns true if the provided object implements the Array-like protocol via\n * defining a positive-integer `length` property.\n *\n * @example\n *\n * var isArrayLike = require('iterall').isArrayLike\n * isArrayLike([ 1, 2, 3 ]) // true\n * isArrayLike('ABC') // true\n * isArrayLike({ length: 1, 0: 'Alpha' }) // true\n * isArrayLike({ key: 'value' }) // false\n * isArrayLike(new Map()) // false\n *\n * @param obj\n * A value which might implement the Array-like protocol.\n * @return {boolean} true if Array-like.\n */\n/*:: declare export function isArrayLike(obj: any): boolean; */\nexport function isArrayLike(obj) {\n var length = obj != null && obj.length\n return typeof length === 'number' && length >= 0 && length % 1 === 0\n}\n\n/**\n * Returns true if the provided object is an Object (i.e. not a string literal)\n * and is either Iterable or Array-like.\n *\n * This may be used in place of [Array.isArray()][isArray] to determine if an\n * object should be iterated-over. It always excludes string literals and\n * includes Arrays (regardless of if it is Iterable). It also includes other\n * Array-like objects such as NodeList, TypedArray, and Buffer.\n *\n * @example\n *\n * var isCollection = require('iterall').isCollection\n * isCollection([ 1, 2, 3 ]) // true\n * isCollection('ABC') // false\n * isCollection({ length: 1, 0: 'Alpha' }) // true\n * isCollection({ key: 'value' }) // false\n * isCollection(new Map()) // true\n *\n * @example\n *\n * var forEach = require('iterall').forEach\n * if (isCollection(obj)) {\n * forEach(obj, function (value) {\n * console.log(value)\n * })\n * }\n *\n * @param obj\n * An Object value which might implement the Iterable or Array-like protocols.\n * @return {boolean} true if Iterable or Array-like Object.\n */\n/*:: declare export function isCollection(obj: any): boolean; */\nexport function isCollection(obj) {\n return Object(obj) === obj && (isArrayLike(obj) || isIterable(obj))\n}\n\n/**\n * If the provided object implements the Iterator protocol, its Iterator object\n * is returned. Otherwise returns undefined.\n *\n * @example\n *\n * var getIterator = require('iterall').getIterator\n * var iterator = getIterator([ 1, 2, 3 ])\n * iterator.next() // { value: 1, done: false }\n * iterator.next() // { value: 2, done: false }\n * iterator.next() // { value: 3, done: false }\n * iterator.next() // { value: undefined, done: true }\n *\n * @template T the type of each iterated value\n * @param {Iterable} iterable\n * An Iterable object which is the source of an Iterator.\n * @return {Iterator} new Iterator instance.\n */\n/*:: declare export var getIterator:\n & (<+TValue>(iterable: Iterable) => Iterator)\n & ((iterable: mixed) => void | Iterator); */\nexport function getIterator(iterable) {\n var method = getIteratorMethod(iterable)\n if (method) {\n return method.call(iterable)\n }\n}\n\n/**\n * If the provided object implements the Iterator protocol, the method\n * responsible for producing its Iterator object is returned.\n *\n * This is used in rare cases for performance tuning. This method must be called\n * with obj as the contextual this-argument.\n *\n * @example\n *\n * var getIteratorMethod = require('iterall').getIteratorMethod\n * var myArray = [ 1, 2, 3 ]\n * var method = getIteratorMethod(myArray)\n * if (method) {\n * var iterator = method.call(myArray)\n * }\n *\n * @template T the type of each iterated value\n * @param {Iterable} iterable\n * An Iterable object which defines an `@@iterator` method.\n * @return {function(): Iterator} `@@iterator` method.\n */\n/*:: declare export var getIteratorMethod:\n & (<+TValue>(iterable: Iterable) => (() => Iterator))\n & ((iterable: mixed) => (void | (() => Iterator))); */\nexport function getIteratorMethod(iterable) {\n if (iterable != null) {\n var method =\n (SYMBOL_ITERATOR && iterable[SYMBOL_ITERATOR]) || iterable['@@iterator']\n if (typeof method === 'function') {\n return method\n }\n }\n}\n\n/**\n * Similar to {@link getIterator}, this method returns a new Iterator given an\n * Iterable. However it will also create an Iterator for a non-Iterable\n * Array-like collection, such as Array in a non-ES2015 environment.\n *\n * `createIterator` is complimentary to `forEach`, but allows a \"pull\"-based\n * iteration as opposed to `forEach`'s \"push\"-based iteration.\n *\n * `createIterator` produces an Iterator for Array-likes with the same behavior\n * as ArrayIteratorPrototype described in the ECMAScript specification, and\n * does *not* skip over \"holes\".\n *\n * @example\n *\n * var createIterator = require('iterall').createIterator\n *\n * var myArraylike = { length: 3, 0: 'Alpha', 1: 'Bravo', 2: 'Charlie' }\n * var iterator = createIterator(myArraylike)\n * iterator.next() // { value: 'Alpha', done: false }\n * iterator.next() // { value: 'Bravo', done: false }\n * iterator.next() // { value: 'Charlie', done: false }\n * iterator.next() // { value: undefined, done: true }\n *\n * @template T the type of each iterated value\n * @param {Iterable|{ length: number }} collection\n * An Iterable or Array-like object to produce an Iterator.\n * @return {Iterator} new Iterator instance.\n */\n/*:: declare export var createIterator:\n & (<+TValue>(collection: Iterable) => Iterator)\n & ((collection: {length: number}) => Iterator)\n & ((collection: mixed) => (void | Iterator)); */\nexport function createIterator(collection) {\n if (collection != null) {\n var iterator = getIterator(collection)\n if (iterator) {\n return iterator\n }\n if (isArrayLike(collection)) {\n return new ArrayLikeIterator(collection)\n }\n }\n}\n\n// When the object provided to `createIterator` is not Iterable but is\n// Array-like, this simple Iterator is created.\nfunction ArrayLikeIterator(obj) {\n this._o = obj\n this._i = 0\n}\n\n// Note: all Iterators are themselves Iterable.\nArrayLikeIterator.prototype[$$iterator] = function() {\n return this\n}\n\n// A simple state-machine determines the IteratorResult returned, yielding\n// each value in the Array-like object in order of their indicies.\nArrayLikeIterator.prototype.next = function() {\n if (this._o === void 0 || this._i >= this._o.length) {\n this._o = void 0\n return { value: void 0, done: true }\n }\n return { value: this._o[this._i++], done: false }\n}\n\n/**\n * Given an object which either implements the Iterable protocol or is\n * Array-like, iterate over it, calling the `callback` at each iteration.\n *\n * Use `forEach` where you would expect to use a `for ... of` loop in ES6.\n * However `forEach` adheres to the behavior of [Array#forEach][] described in\n * the ECMAScript specification, skipping over \"holes\" in Array-likes. It will\n * also delegate to a `forEach` method on `collection` if one is defined,\n * ensuring native performance for `Arrays`.\n *\n * Similar to [Array#forEach][], the `callback` function accepts three\n * arguments, and is provided with `thisArg` as the calling context.\n *\n * Note: providing an infinite Iterator to forEach will produce an error.\n *\n * [Array#forEach]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach\n *\n * @example\n *\n * var forEach = require('iterall').forEach\n *\n * forEach(myIterable, function (value, index, iterable) {\n * console.log(value, index, iterable === myIterable)\n * })\n *\n * @example\n *\n * // ES6:\n * for (let value of myIterable) {\n * console.log(value)\n * }\n *\n * // Any JavaScript environment:\n * forEach(myIterable, function (value) {\n * console.log(value)\n * })\n *\n * @template T the type of each iterated value\n * @param {Iterable|{ length: number }} collection\n * The Iterable or array to iterate over.\n * @param {function(T, number, object)} callback\n * Function to execute for each iteration, taking up to three arguments\n * @param [thisArg]\n * Optional. Value to use as `this` when executing `callback`.\n */\n/*:: declare export var forEach:\n & (<+TValue, TCollection: Iterable>(\n collection: TCollection,\n callbackFn: (value: TValue, index: number, collection: TCollection) => any,\n thisArg?: any\n ) => void)\n & ((\n collection: TCollection,\n callbackFn: (value: mixed, index: number, collection: TCollection) => any,\n thisArg?: any\n ) => void); */\nexport function forEach(collection, callback, thisArg) {\n if (collection != null) {\n if (typeof collection.forEach === 'function') {\n return collection.forEach(callback, thisArg)\n }\n var i = 0\n var iterator = getIterator(collection)\n if (iterator) {\n var step\n while (!(step = iterator.next()).done) {\n callback.call(thisArg, step.value, i++, collection)\n // Infinite Iterators could cause forEach to run forever.\n // After a very large number of iterations, produce an error.\n /* istanbul ignore if */\n if (i > 9999999) {\n throw new TypeError('Near-infinite iteration.')\n }\n }\n } else if (isArrayLike(collection)) {\n for (; i < collection.length; i++) {\n if (collection.hasOwnProperty(i)) {\n callback.call(thisArg, collection[i], i, collection)\n }\n }\n }\n }\n}\n\n/////////////////////////////////////////////////////\n// //\n// ASYNC ITERATORS //\n// //\n/////////////////////////////////////////////////////\n\n/**\n * [AsyncIterable](https://tc39.github.io/proposal-async-iteration/#sec-asynciterable-interface)\n * is a *protocol* which when implemented allows a JavaScript object to define\n * an asynchronous iteration behavior, such as what values are looped over in\n * a [`for-await-of`](https://tc39.github.io/proposal-async-iteration/#sec-for-in-and-for-of-statements)\n * loop or `iterall`'s {@link forAwaitEach} function.\n *\n * While described as a proposed addition to the [ES2017 version of JavaScript](https://tc39.github.io/proposal-async-iteration/)\n * it can be utilized by any version of JavaScript.\n *\n * @external AsyncIterable\n * @see {@link https://tc39.github.io/proposal-async-iteration/#sec-asynciterable-interface|Async Iteration Proposal}\n * @template T The type of each iterated value\n * @property {function (): AsyncIterator} Symbol.asyncIterator\n * A method which produces an AsyncIterator for this AsyncIterable.\n */\n\n/**\n * [AsyncIterator](https://tc39.github.io/proposal-async-iteration/#sec-asynciterator-interface)\n * is a *protocol* which describes a standard way to produce and consume an\n * asynchronous sequence of values, typically the values of the\n * {@link AsyncIterable} represented by this {@link AsyncIterator}.\n *\n * AsyncIterator is similar to Observable or Stream. Like an {@link Iterator} it\n * also as a `next()` method, however instead of an IteratorResult,\n * calling this method returns a {@link Promise} for a IteratorResult.\n *\n * While described as a proposed addition to the [ES2017 version of JavaScript](https://tc39.github.io/proposal-async-iteration/)\n * it can be utilized by any version of JavaScript.\n *\n * @external AsyncIterator\n * @see {@link https://tc39.github.io/proposal-async-iteration/#sec-asynciterator-interface|Async Iteration Proposal}\n */\n\n// In ES2017 (or a polyfilled) environment, this will be Symbol.asyncIterator\nvar SYMBOL_ASYNC_ITERATOR = SYMBOL && SYMBOL.asyncIterator\n\n/**\n * A property name to be used as the name of an AsyncIterable's method\n * responsible for producing an Iterator, referred to as `@@asyncIterator`.\n * Typically represents the value `Symbol.asyncIterator` but falls back to the\n * string `\"@@asyncIterator\"` when `Symbol.asyncIterator` is not defined.\n *\n * Use `$$asyncIterator` for defining new AsyncIterables instead of\n * `Symbol.asyncIterator`, but do not use it for accessing existing Iterables,\n * instead use {@link getAsyncIterator} or {@link isAsyncIterable}.\n *\n * @example\n *\n * var $$asyncIterator = require('iterall').$$asyncIterator\n *\n * function Chirper (to) {\n * this.to = to\n * }\n *\n * Chirper.prototype[$$asyncIterator] = function () {\n * return {\n * to: this.to,\n * num: 0,\n * next () {\n * return new Promise(resolve => {\n * if (this.num >= this.to) {\n * resolve({ value: undefined, done: true })\n * } else {\n * setTimeout(() => {\n * resolve({ value: this.num++, done: false })\n * }, 1000)\n * }\n * })\n * }\n * }\n * }\n *\n * var chirper = new Chirper(3)\n * for await (var number of chirper) {\n * console.log(number) // 0 ...wait... 1 ...wait... 2\n * }\n *\n * @type {Symbol|string}\n */\n/*:: declare export var $$asyncIterator: '@@asyncIterator'; */\nexport var $$asyncIterator = SYMBOL_ASYNC_ITERATOR || '@@asyncIterator'\n\n/**\n * Returns true if the provided object implements the AsyncIterator protocol via\n * either implementing a `Symbol.asyncIterator` or `\"@@asyncIterator\"` method.\n *\n * @example\n *\n * var isAsyncIterable = require('iterall').isAsyncIterable\n * isAsyncIterable(myStream) // true\n * isAsyncIterable('ABC') // false\n *\n * @param obj\n * A value which might implement the AsyncIterable protocol.\n * @return {boolean} true if AsyncIterable.\n */\n/*:: declare export function isAsyncIterable(obj: any): boolean; */\nexport function isAsyncIterable(obj) {\n return !!getAsyncIteratorMethod(obj)\n}\n\n/**\n * If the provided object implements the AsyncIterator protocol, its\n * AsyncIterator object is returned. Otherwise returns undefined.\n *\n * @example\n *\n * var getAsyncIterator = require('iterall').getAsyncIterator\n * var asyncIterator = getAsyncIterator(myStream)\n * asyncIterator.next().then(console.log) // { value: 1, done: false }\n * asyncIterator.next().then(console.log) // { value: 2, done: false }\n * asyncIterator.next().then(console.log) // { value: 3, done: false }\n * asyncIterator.next().then(console.log) // { value: undefined, done: true }\n *\n * @template T the type of each iterated value\n * @param {AsyncIterable} asyncIterable\n * An AsyncIterable object which is the source of an AsyncIterator.\n * @return {AsyncIterator} new AsyncIterator instance.\n */\n/*:: declare export var getAsyncIterator:\n & (<+TValue>(asyncIterable: AsyncIterable) => AsyncIterator)\n & ((asyncIterable: mixed) => (void | AsyncIterator)); */\nexport function getAsyncIterator(asyncIterable) {\n var method = getAsyncIteratorMethod(asyncIterable)\n if (method) {\n return method.call(asyncIterable)\n }\n}\n\n/**\n * If the provided object implements the AsyncIterator protocol, the method\n * responsible for producing its AsyncIterator object is returned.\n *\n * This is used in rare cases for performance tuning. This method must be called\n * with obj as the contextual this-argument.\n *\n * @example\n *\n * var getAsyncIteratorMethod = require('iterall').getAsyncIteratorMethod\n * var method = getAsyncIteratorMethod(myStream)\n * if (method) {\n * var asyncIterator = method.call(myStream)\n * }\n *\n * @template T the type of each iterated value\n * @param {AsyncIterable} asyncIterable\n * An AsyncIterable object which defines an `@@asyncIterator` method.\n * @return {function(): AsyncIterator} `@@asyncIterator` method.\n */\n/*:: declare export var getAsyncIteratorMethod:\n & (<+TValue>(asyncIterable: AsyncIterable) => (() => AsyncIterator))\n & ((asyncIterable: mixed) => (void | (() => AsyncIterator))); */\nexport function getAsyncIteratorMethod(asyncIterable) {\n if (asyncIterable != null) {\n var method =\n (SYMBOL_ASYNC_ITERATOR && asyncIterable[SYMBOL_ASYNC_ITERATOR]) ||\n asyncIterable['@@asyncIterator']\n if (typeof method === 'function') {\n return method\n }\n }\n}\n\n/**\n * Similar to {@link getAsyncIterator}, this method returns a new AsyncIterator\n * given an AsyncIterable. However it will also create an AsyncIterator for a\n * non-async Iterable as well as non-Iterable Array-like collection, such as\n * Array in a pre-ES2015 environment.\n *\n * `createAsyncIterator` is complimentary to `forAwaitEach`, but allows a\n * buffering \"pull\"-based iteration as opposed to `forAwaitEach`'s\n * \"push\"-based iteration.\n *\n * `createAsyncIterator` produces an AsyncIterator for non-async Iterables as\n * described in the ECMAScript proposal [Async-from-Sync Iterator Objects](https://tc39.github.io/proposal-async-iteration/#sec-async-from-sync-iterator-objects).\n *\n * > Note: Creating `AsyncIterator`s requires the existence of `Promise`.\n * > While `Promise` has been available in modern browsers for a number of\n * > years, legacy browsers (like IE 11) may require a polyfill.\n *\n * @example\n *\n * var createAsyncIterator = require('iterall').createAsyncIterator\n *\n * var myArraylike = { length: 3, 0: 'Alpha', 1: 'Bravo', 2: 'Charlie' }\n * var iterator = createAsyncIterator(myArraylike)\n * iterator.next().then(console.log) // { value: 'Alpha', done: false }\n * iterator.next().then(console.log) // { value: 'Bravo', done: false }\n * iterator.next().then(console.log) // { value: 'Charlie', done: false }\n * iterator.next().then(console.log) // { value: undefined, done: true }\n *\n * @template T the type of each iterated value\n * @param {AsyncIterable|Iterable|{ length: number }} source\n * An AsyncIterable, Iterable, or Array-like object to produce an Iterator.\n * @return {AsyncIterator} new AsyncIterator instance.\n */\n/*:: declare export var createAsyncIterator:\n & (<+TValue>(\n collection: Iterable | TValue> | AsyncIterable\n ) => AsyncIterator)\n & ((collection: {length: number}) => AsyncIterator)\n & ((collection: mixed) => (void | AsyncIterator)); */\nexport function createAsyncIterator(source) {\n if (source != null) {\n var asyncIterator = getAsyncIterator(source)\n if (asyncIterator) {\n return asyncIterator\n }\n var iterator = createIterator(source)\n if (iterator) {\n return new AsyncFromSyncIterator(iterator)\n }\n }\n}\n\n// When the object provided to `createAsyncIterator` is not AsyncIterable but is\n// sync Iterable, this simple wrapper is created.\nfunction AsyncFromSyncIterator(iterator) {\n this._i = iterator\n}\n\n// Note: all AsyncIterators are themselves AsyncIterable.\nAsyncFromSyncIterator.prototype[$$asyncIterator] = function() {\n return this\n}\n\n// A simple state-machine determines the IteratorResult returned, yielding\n// each value in the Array-like object in order of their indicies.\nAsyncFromSyncIterator.prototype.next = function(value) {\n return unwrapAsyncFromSync(this._i, 'next', value)\n}\n\nAsyncFromSyncIterator.prototype.return = function(value) {\n return this._i.return\n ? unwrapAsyncFromSync(this._i, 'return', value)\n : Promise.resolve({ value: value, done: true })\n}\n\nAsyncFromSyncIterator.prototype.throw = function(value) {\n return this._i.throw\n ? unwrapAsyncFromSync(this._i, 'throw', value)\n : Promise.reject(value)\n}\n\nfunction unwrapAsyncFromSync(iterator, fn, value) {\n var step\n return new Promise(function(resolve) {\n step = iterator[fn](value)\n resolve(step.value)\n }).then(function(value) {\n return { value: value, done: step.done }\n })\n}\n\n/**\n * Given an object which either implements the AsyncIterable protocol or is\n * Array-like, iterate over it, calling the `callback` at each iteration.\n *\n * Use `forAwaitEach` where you would expect to use a [for-await-of](https://tc39.github.io/proposal-async-iteration/#sec-for-in-and-for-of-statements) loop.\n *\n * Similar to [Array#forEach][], the `callback` function accepts three\n * arguments, and is provided with `thisArg` as the calling context.\n *\n * > Note: Using `forAwaitEach` requires the existence of `Promise`.\n * > While `Promise` has been available in modern browsers for a number of\n * > years, legacy browsers (like IE 11) may require a polyfill.\n *\n * @example\n *\n * var forAwaitEach = require('iterall').forAwaitEach\n *\n * forAwaitEach(myIterable, function (value, index, iterable) {\n * console.log(value, index, iterable === myIterable)\n * })\n *\n * @example\n *\n * // ES2017:\n * for await (let value of myAsyncIterable) {\n * console.log(await doSomethingAsync(value))\n * }\n * console.log('done')\n *\n * // Any JavaScript environment:\n * forAwaitEach(myAsyncIterable, function (value) {\n * return doSomethingAsync(value).then(console.log)\n * }).then(function () {\n * console.log('done')\n * })\n *\n * @template T the type of each iterated value\n * @param {AsyncIterable|Iterable | T>|{ length: number }} source\n * The AsyncIterable or array to iterate over.\n * @param {function(T, number, object)} callback\n * Function to execute for each iteration, taking up to three arguments\n * @param [thisArg]\n * Optional. Value to use as `this` when executing `callback`.\n */\n/*:: declare export var forAwaitEach:\n & (<+TValue, TCollection: Iterable | TValue> | AsyncIterable>(\n collection: TCollection,\n callbackFn: (value: TValue, index: number, collection: TCollection) => any,\n thisArg?: any\n ) => Promise)\n & ((\n collection: TCollection,\n callbackFn: (value: mixed, index: number, collection: TCollection) => any,\n thisArg?: any\n ) => Promise); */\nexport function forAwaitEach(source, callback, thisArg) {\n var asyncIterator = createAsyncIterator(source)\n if (asyncIterator) {\n var i = 0\n return new Promise(function(resolve, reject) {\n function next() {\n asyncIterator\n .next()\n .then(function(step) {\n if (!step.done) {\n Promise.resolve(callback.call(thisArg, step.value, i++, source))\n .then(next)\n .catch(reject)\n } else {\n resolve()\n }\n // Explicitly return null, silencing bluebird-style warnings.\n return null\n })\n .catch(reject)\n // Explicitly return null, silencing bluebird-style warnings.\n return null\n }\n next()\n })\n }\n}\n","/**\n * The `defineToStringTag()` function checks first to see if the runtime\n * supports the `Symbol` class and then if the `Symbol.toStringTag` constant\n * is defined as a `Symbol` instance. If both conditions are met, the\n * Symbol.toStringTag property is defined as a getter that returns the\n * supplied class constructor's name.\n *\n * @method defineToStringTag\n *\n * @param {Class} classObject a class such as Object, String, Number but\n * typically one of your own creation through the class keyword; `class A {}`,\n * for example.\n */\nexport default function defineToStringTag(classObject) {\n if (typeof Symbol === 'function' && Symbol.toStringTag) {\n Object.defineProperty(classObject.prototype, Symbol.toStringTag, {\n get: function get() {\n return this.constructor.name;\n }\n });\n }\n}\n","import nodejsCustomInspectSymbol from './nodejsCustomInspectSymbol';\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\n if (nodejsCustomInspectSymbol) {\n classObject.prototype[nodejsCustomInspectSymbol] = fn;\n }\n}\n","import { GraphQLError } from './GraphQLError';\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","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","function 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","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// 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","import find from '../polyfills/find';\nimport objectValues from '../polyfills/objectValues';\nimport inspect from '../jsutils/inspect';\nimport toObjMap from '../jsutils/toObjMap';\nimport devAssert from '../jsutils/devAssert';\nimport instanceOf from '../jsutils/instanceOf';\nimport isObjectLike from '../jsutils/isObjectLike';\nimport defineToStringTag from '../jsutils/defineToStringTag';\nimport { __Schema } from './introspection';\nimport { GraphQLDirective, isDirective, specifiedDirectives } from './directives';\nimport { isObjectType, isInterfaceType, isUnionType, isInputObjectType, getNamedType } from './definition';\n/**\n * Test if the given value is a GraphQL schema.\n */\n\n// eslint-disable-next-line no-redeclare\nexport function isSchema(schema) {\n return instanceOf(schema, GraphQLSchema);\n}\nexport function assertSchema(schema) {\n if (!isSchema(schema)) {\n throw new Error(\"Expected \".concat(inspect(schema), \" to be a GraphQL schema.\"));\n }\n\n return schema;\n}\n/**\n * Schema Definition\n *\n * A Schema is created by supplying the root types of each type of operation,\n * query and mutation (optional). A schema definition is then supplied to the\n * validator and executor.\n *\n * Example:\n *\n * const MyAppSchema = new GraphQLSchema({\n * query: MyAppQueryRootType,\n * mutation: MyAppMutationRootType,\n * })\n *\n * Note: When the schema is constructed, by default only the types that are\n * reachable by traversing the root types are included, other types must be\n * explicitly referenced.\n *\n * Example:\n *\n * const characterInterface = new GraphQLInterfaceType({\n * name: 'Character',\n * ...\n * });\n *\n * const humanType = new GraphQLObjectType({\n * name: 'Human',\n * interfaces: [characterInterface],\n * ...\n * });\n *\n * const droidType = new GraphQLObjectType({\n * name: 'Droid',\n * interfaces: [characterInterface],\n * ...\n * });\n *\n * const schema = new GraphQLSchema({\n * query: new GraphQLObjectType({\n * name: 'Query',\n * fields: {\n * hero: { type: characterInterface, ... },\n * }\n * }),\n * ...\n * // Since this schema references only the `Character` interface it's\n * // necessary to explicitly list the types that implement it if\n * // you want them to be included in the final schema.\n * types: [humanType, droidType],\n * })\n *\n * Note: If an array of `directives` are provided to GraphQLSchema, that will be\n * the exact list of directives represented and allowed. If `directives` is not\n * provided then a default set of the specified directives (e.g. @include and\n * @skip) will be used. If you wish to provide *additional* directives to these\n * specified directives, you must explicitly declare them. Example:\n *\n * const MyAppSchema = new GraphQLSchema({\n * ...\n * directives: specifiedDirectives.concat([ myCustomDirective ]),\n * })\n *\n */\n\nexport var GraphQLSchema =\n/*#__PURE__*/\nfunction () {\n // Used as a cache for validateSchema().\n // Referenced by validateSchema().\n function GraphQLSchema(config) {\n // If this schema was built from a source known to be valid, then it may be\n // marked with assumeValid to avoid an additional type system validation.\n if (config && config.assumeValid) {\n this.__validationErrors = [];\n } else {\n this.__validationErrors = undefined; // Otherwise check for common mistakes during construction to produce\n // clear and early error messages.\n\n isObjectLike(config) || devAssert(0, 'Must provide configuration object.');\n !config.types || Array.isArray(config.types) || devAssert(0, \"\\\"types\\\" must be Array if provided but got: \".concat(inspect(config.types), \".\"));\n !config.directives || Array.isArray(config.directives) || devAssert(0, '\"directives\" must be Array if provided but got: ' + \"\".concat(inspect(config.directives), \".\"));\n !config.allowedLegacyNames || Array.isArray(config.allowedLegacyNames) || devAssert(0, '\"allowedLegacyNames\" must be Array if provided but got: ' + \"\".concat(inspect(config.allowedLegacyNames), \".\"));\n }\n\n this.extensions = config.extensions && toObjMap(config.extensions);\n this.astNode = config.astNode;\n this.extensionASTNodes = config.extensionASTNodes;\n this.__allowedLegacyNames = config.allowedLegacyNames || [];\n this._queryType = config.query;\n this._mutationType = config.mutation;\n this._subscriptionType = config.subscription; // Provide specified directives (e.g. @include and @skip) by default.\n\n this._directives = config.directives || specifiedDirectives; // Build type map now to detect any errors within this schema.\n\n var initialTypes = [this._queryType, this._mutationType, this._subscriptionType, __Schema].concat(config.types); // Keep track of all types referenced within the schema.\n\n var typeMap = Object.create(null); // First by deeply visiting all initial types.\n\n typeMap = initialTypes.reduce(typeMapReducer, typeMap); // Then by deeply visiting all directive types.\n\n typeMap = this._directives.reduce(typeMapDirectiveReducer, typeMap); // Storing the resulting map for reference by the schema.\n\n this._typeMap = typeMap;\n this._possibleTypeMap = Object.create(null); // Keep track of all implementations by interface name.\n\n this._implementations = Object.create(null);\n\n for (var _i2 = 0, _objectValues2 = objectValues(this._typeMap); _i2 < _objectValues2.length; _i2++) {\n var type = _objectValues2[_i2];\n\n if (isObjectType(type)) {\n for (var _i4 = 0, _type$getInterfaces2 = type.getInterfaces(); _i4 < _type$getInterfaces2.length; _i4++) {\n var iface = _type$getInterfaces2[_i4];\n\n if (isInterfaceType(iface)) {\n var impls = this._implementations[iface.name];\n\n if (impls) {\n impls.push(type);\n } else {\n this._implementations[iface.name] = [type];\n }\n }\n }\n }\n }\n }\n\n var _proto = GraphQLSchema.prototype;\n\n _proto.getQueryType = function getQueryType() {\n return this._queryType;\n };\n\n _proto.getMutationType = function getMutationType() {\n return this._mutationType;\n };\n\n _proto.getSubscriptionType = function getSubscriptionType() {\n return this._subscriptionType;\n };\n\n _proto.getTypeMap = function getTypeMap() {\n return this._typeMap;\n };\n\n _proto.getType = function getType(name) {\n return this.getTypeMap()[name];\n };\n\n _proto.getPossibleTypes = function getPossibleTypes(abstractType) {\n if (isUnionType(abstractType)) {\n return abstractType.getTypes();\n }\n\n return this._implementations[abstractType.name] || [];\n };\n\n _proto.isPossibleType = function isPossibleType(abstractType, possibleType) {\n if (this._possibleTypeMap[abstractType.name] == null) {\n var map = Object.create(null);\n\n for (var _i6 = 0, _this$getPossibleType2 = this.getPossibleTypes(abstractType); _i6 < _this$getPossibleType2.length; _i6++) {\n var type = _this$getPossibleType2[_i6];\n map[type.name] = true;\n }\n\n this._possibleTypeMap[abstractType.name] = map;\n }\n\n return Boolean(this._possibleTypeMap[abstractType.name][possibleType.name]);\n };\n\n _proto.getDirectives = function getDirectives() {\n return this._directives;\n };\n\n _proto.getDirective = function getDirective(name) {\n return find(this.getDirectives(), function (directive) {\n return directive.name === name;\n });\n };\n\n _proto.toConfig = function toConfig() {\n return {\n query: this.getQueryType(),\n mutation: this.getMutationType(),\n subscription: this.getSubscriptionType(),\n types: objectValues(this.getTypeMap()),\n directives: this.getDirectives().slice(),\n extensions: this.extensions,\n astNode: this.astNode,\n extensionASTNodes: this.extensionASTNodes || [],\n assumeValid: this.__validationErrors !== undefined,\n allowedLegacyNames: this.__allowedLegacyNames\n };\n };\n\n return GraphQLSchema;\n}(); // Conditionally apply `[Symbol.toStringTag]` if `Symbol`s are supported\n\ndefineToStringTag(GraphQLSchema);\n\nfunction typeMapReducer(map, type) {\n if (!type) {\n return map;\n }\n\n var namedType = getNamedType(type);\n var seenType = map[namedType.name];\n\n if (seenType) {\n if (seenType !== namedType) {\n throw new Error(\"Schema must contain uniquely named types but contains multiple types named \\\"\".concat(namedType.name, \"\\\".\"));\n }\n\n return map;\n }\n\n map[namedType.name] = namedType;\n var reducedMap = map;\n\n if (isUnionType(namedType)) {\n reducedMap = namedType.getTypes().reduce(typeMapReducer, reducedMap);\n }\n\n if (isObjectType(namedType)) {\n reducedMap = namedType.getInterfaces().reduce(typeMapReducer, reducedMap);\n }\n\n if (isObjectType(namedType) || isInterfaceType(namedType)) {\n for (var _i8 = 0, _objectValues4 = objectValues(namedType.getFields()); _i8 < _objectValues4.length; _i8++) {\n var field = _objectValues4[_i8];\n var fieldArgTypes = field.args.map(function (arg) {\n return arg.type;\n });\n reducedMap = fieldArgTypes.reduce(typeMapReducer, reducedMap);\n reducedMap = typeMapReducer(reducedMap, field.type);\n }\n }\n\n if (isInputObjectType(namedType)) {\n for (var _i10 = 0, _objectValues6 = objectValues(namedType.getFields()); _i10 < _objectValues6.length; _i10++) {\n var _field = _objectValues6[_i10];\n reducedMap = typeMapReducer(reducedMap, _field.type);\n }\n }\n\n return reducedMap;\n}\n\nfunction typeMapDirectiveReducer(map, directive) {\n // Directives are not validated until validateSchema() is called.\n if (!isDirective(directive)) {\n return map;\n }\n\n return directive.args.reduce(function (_map, arg) {\n return typeMapReducer(_map, arg.type);\n }, map);\n}\n","/* eslint-disable no-redeclare */\n// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/5838\nvar objectEntries = Object.entries || function (obj) {\n return Object.keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n};\n\nexport default objectEntries;\n","import { Kind } from './kinds';\nexport function isDefinitionNode(node) {\n return isExecutableDefinitionNode(node) || isTypeSystemDefinitionNode(node) || isTypeSystemExtensionNode(node);\n}\nexport function isExecutableDefinitionNode(node) {\n return node.kind === Kind.OPERATION_DEFINITION || node.kind === Kind.FRAGMENT_DEFINITION;\n}\nexport function isSelectionNode(node) {\n return node.kind === Kind.FIELD || node.kind === Kind.FRAGMENT_SPREAD || node.kind === Kind.INLINE_FRAGMENT;\n}\nexport function isValueNode(node) {\n return node.kind === Kind.VARIABLE || node.kind === Kind.INT || node.kind === Kind.FLOAT || node.kind === Kind.STRING || node.kind === Kind.BOOLEAN || node.kind === Kind.NULL || node.kind === Kind.ENUM || node.kind === Kind.LIST || node.kind === Kind.OBJECT;\n}\nexport function isTypeNode(node) {\n return node.kind === Kind.NAMED_TYPE || node.kind === Kind.LIST_TYPE || node.kind === Kind.NON_NULL_TYPE;\n}\nexport function isTypeSystemDefinitionNode(node) {\n return node.kind === Kind.SCHEMA_DEFINITION || isTypeDefinitionNode(node) || node.kind === Kind.DIRECTIVE_DEFINITION;\n}\nexport function isTypeDefinitionNode(node) {\n return node.kind === Kind.SCALAR_TYPE_DEFINITION || node.kind === Kind.OBJECT_TYPE_DEFINITION || node.kind === Kind.INTERFACE_TYPE_DEFINITION || node.kind === Kind.UNION_TYPE_DEFINITION || node.kind === Kind.ENUM_TYPE_DEFINITION || node.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION;\n}\nexport function isTypeSystemExtensionNode(node) {\n return node.kind === Kind.SCHEMA_EXTENSION || isTypeExtensionNode(node);\n}\nexport function isTypeExtensionNode(node) {\n return node.kind === Kind.SCALAR_TYPE_EXTENSION || node.kind === Kind.OBJECT_TYPE_EXTENSION || node.kind === Kind.INTERFACE_TYPE_EXTENSION || node.kind === Kind.UNION_TYPE_EXTENSION || node.kind === Kind.ENUM_TYPE_EXTENSION || node.kind === Kind.INPUT_OBJECT_TYPE_EXTENSION;\n}\n","// Workaround to make older Flow versions happy\nvar flatMapMethod = Array.prototype.flatMap;\n/* eslint-disable no-redeclare */\n// $FlowFixMe\n\nvar flatMap = flatMapMethod ? function (list, fn) {\n return flatMapMethod.call(list, fn);\n} : function (list, fn) {\n var result = [];\n\n for (var _i2 = 0; _i2 < list.length; _i2++) {\n var _item = list[_i2];\n var value = fn(_item);\n\n if (Array.isArray(value)) {\n result = result.concat(value);\n } else {\n result.push(value);\n }\n }\n\n return result;\n};\nexport default flatMap;\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","/**\n * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\n */\n// See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production\n// See: https://webpack.js.org/guides/production/\nexport default process.env.NODE_ENV === 'production' ? // eslint-disable-next-line no-shadow\nfunction instanceOf(value, constructor) {\n return value instanceof constructor;\n} : // eslint-disable-next-line no-shadow\nfunction instanceOf(value, constructor) {\n if (value instanceof constructor) {\n return true;\n }\n\n if (value) {\n var valueClass = value.constructor;\n var className = constructor.name;\n\n if (className && valueClass && valueClass.name === className) {\n throw new Error(\"Cannot use \".concat(className, \" \\\"\").concat(value, \"\\\" from another module or realm.\\n\\nEnsure that there is only one instance of \\\"graphql\\\" in the node_modules\\ndirectory. If different versions of \\\"graphql\\\" are the dependencies of other\\nrelied on modules, use \\\"resolutions\\\" to ensure only one version is installed.\\n\\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\\n\\nDuplicate \\\"graphql\\\" modules cannot be used at the same time since different\\nversions may have different capabilities and behavior. The data from one\\nversion used in the function from another could produce confusing and\\nspurious results.\"));\n }\n }\n\n return false;\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","export default function _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\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","export default function warn(s) {\n console.warn('[react-ga]', s);\n}","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport warn from '../utils/console/warn';\nvar NEWTAB = '_blank';\nvar MIDDLECLICK = 1;\n\nvar OutboundLink =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(OutboundLink, _Component);\n\n function OutboundLink() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, OutboundLink);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(OutboundLink)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"handleClick\", function (event) {\n var _this$props = _this.props,\n target = _this$props.target,\n eventLabel = _this$props.eventLabel,\n to = _this$props.to,\n onClick = _this$props.onClick,\n trackerNames = _this$props.trackerNames;\n var eventMeta = {\n label: eventLabel\n };\n var sameTarget = target !== NEWTAB;\n var normalClick = !(event.ctrlKey || event.shiftKey || event.metaKey || event.button === MIDDLECLICK);\n\n if (sameTarget && normalClick) {\n event.preventDefault();\n OutboundLink.trackLink(eventMeta, function () {\n window.location.href = to;\n }, trackerNames);\n } else {\n OutboundLink.trackLink(eventMeta, function () {}, trackerNames);\n }\n\n if (onClick) {\n onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(OutboundLink, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n href = _this$props2.to,\n oldProps = _objectWithoutProperties(_this$props2, [\"to\"]);\n\n var props = _objectSpread({}, oldProps, {\n href: href,\n onClick: this.handleClick\n });\n\n if (this.props.target === NEWTAB) {\n props.rel = 'noopener noreferrer';\n }\n\n delete props.eventLabel;\n delete props.trackerNames;\n return React.createElement('a', props);\n }\n }]);\n\n return OutboundLink;\n}(Component);\n\n_defineProperty(OutboundLink, \"trackLink\", function () {\n warn('ga tracking not enabled');\n});\n\n_defineProperty(OutboundLink, \"propTypes\", {\n eventLabel: PropTypes.string.isRequired,\n target: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n trackerNames: PropTypes.arrayOf(PropTypes.string)\n});\n\n_defineProperty(OutboundLink, \"defaultProps\", {\n target: null,\n to: null,\n onClick: null,\n trackerNames: null\n});\n\nexport { OutboundLink as default };","// GA strings need to have leading/trailing whitespace trimmed, and not all\n// browsers have String.prototoype.trim().\nexport default function trim(s) {\n return s.replace(/^\\s+|\\s+$/g, '');\n}","/**\n * To Title Case 2.1 - http://individed.com/code/to-title-case/\n * Copyright 2008-2013 David Gouch. Licensed under the MIT License.\n * https://github.com/gouch/to-title-case\n */\nimport trim from './trim';\nvar smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\\.?|via)$/i;\nexport default function toTitleCase(string) {\n return trim(string).replace(/[A-Za-z0-9\\u00C0-\\u00FF]+[^\\s-]*/g, function (match, index, title) {\n if (index > 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== ':' && (title.charAt(index + match.length) !== '-' || title.charAt(index - 1) === '-') && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}","import mightBeEmail from './mightBeEmail';\nimport toTitleCase from './toTitleCase';\nimport warn from './console/warn';\nvar redacted = 'REDACTED (Potential Email Address)';\nexport default function format(s, titleCase) {\n if (mightBeEmail(s)) {\n warn('This arg looks like an email address, redacting.');\n return redacted;\n }\n\n if (titleCase) {\n return toTitleCase(s);\n }\n\n return s;\n}","// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nexport default function mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === 'string' && s.indexOf('@') !== -1;\n}","export default function log(s) {\n console.info('[react-ga]', s);\n}","export var gaCalls = [];\nexport default {\n calls: gaCalls,\n ga: function ga() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n gaCalls.push([].concat(args));\n },\n resetCalls: function resetCalls() {\n gaCalls.length = 0;\n }\n};","function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(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 _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\n/**\n * React Google Analytics Module\n *\n * @package react-ga\n * @author Adam Lofting \n * Atul Varma \n */\n\n/**\n * Utilities\n */\nimport format from './utils/format';\nimport removeLeadingSlash from './utils/removeLeadingSlash';\nimport trim from './utils/trim';\nimport loadGA from './utils/loadGA';\nimport warn from './utils/console/warn';\nimport log from './utils/console/log';\nimport TestModeAPI from './utils/testModeAPI';\n\nvar _isNotBrowser = typeof window === 'undefined' || typeof document === 'undefined';\n\nvar _debug = false;\nvar _titleCase = true;\nvar _testMode = false;\nvar _alwaysSendToDefaultTracker = true;\n\nvar internalGa = function internalGa() {\n var _window;\n\n if (_testMode) return TestModeAPI.ga.apply(TestModeAPI, arguments);\n if (_isNotBrowser) return false;\n if (!window.ga) return warn('ReactGA.initialize must be called first or GoogleAnalytics should be loaded manually');\n return (_window = window).ga.apply(_window, arguments);\n};\n\nfunction _format(s) {\n return format(s, _titleCase);\n}\n\nfunction _gaCommand(trackerNames) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var command = args[0];\n\n if (typeof internalGa === 'function') {\n if (typeof command !== 'string') {\n warn('ga command must be a string');\n return;\n }\n\n if (_alwaysSendToDefaultTracker || !Array.isArray(trackerNames)) internalGa.apply(void 0, args);\n\n if (Array.isArray(trackerNames)) {\n trackerNames.forEach(function (name) {\n internalGa.apply(void 0, _toConsumableArray([\"\".concat(name, \".\").concat(command)].concat(args.slice(1))));\n });\n }\n }\n}\n\nfunction _initialize(gaTrackingID, options) {\n if (!gaTrackingID) {\n warn('gaTrackingID is required in initialize()');\n return;\n }\n\n if (options) {\n if (options.debug && options.debug === true) {\n _debug = true;\n }\n\n if (options.titleCase === false) {\n _titleCase = false;\n }\n\n if (options.useExistingGa) {\n return;\n }\n }\n\n if (options && options.gaOptions) {\n internalGa('create', gaTrackingID, options.gaOptions);\n } else {\n internalGa('create', gaTrackingID, 'auto');\n }\n}\n\nexport function initialize(configsOrTrackingId, options) {\n if (options && options.testMode === true) {\n _testMode = true;\n } else {\n if (_isNotBrowser) {\n return false;\n }\n\n if (!options || options.standardImplementation !== true) loadGA(options);\n }\n\n _alwaysSendToDefaultTracker = options && typeof options.alwaysSendToDefaultTracker === 'boolean' ? options.alwaysSendToDefaultTracker : true;\n\n if (Array.isArray(configsOrTrackingId)) {\n configsOrTrackingId.forEach(function (config) {\n if (_typeof(config) !== 'object') {\n warn('All configs must be an object');\n return;\n }\n\n _initialize(config.trackingId, config);\n });\n } else {\n _initialize(configsOrTrackingId, options);\n }\n\n return true;\n}\n/**\n * ga:\n * Returns the original GA object.\n */\n\nexport function ga() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (args.length > 0) {\n internalGa.apply(void 0, args);\n\n if (_debug) {\n log('called ga(\\'arguments\\');');\n log(\"with arguments: \".concat(JSON.stringify(args)));\n }\n }\n\n return window.ga;\n}\n/**\n * set:\n * GA tracker set method\n * @param {Object} fieldsObject - a field/value pair or a group of field/value pairs on the tracker\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function set(fieldsObject, trackerNames) {\n if (!fieldsObject) {\n warn('`fieldsObject` is required in .set()');\n return;\n }\n\n if (_typeof(fieldsObject) !== 'object') {\n warn('Expected `fieldsObject` arg to be an Object');\n return;\n }\n\n if (Object.keys(fieldsObject).length === 0) {\n warn('empty `fieldsObject` given to .set()');\n }\n\n _gaCommand(trackerNames, 'set', fieldsObject);\n\n if (_debug) {\n log('called ga(\\'set\\', fieldsObject);');\n log(\"with fieldsObject: \".concat(JSON.stringify(fieldsObject)));\n }\n}\n/**\n * send:\n * Clone of the low level `ga.send` method\n * WARNING: No validations will be applied to this\n * @param {Object} fieldObject - field object for tracking different analytics\n * @param {Array} trackerNames - trackers to send the command to\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function send(fieldObject, trackerNames) {\n _gaCommand(trackerNames, 'send', fieldObject);\n\n if (_debug) {\n log('called ga(\\'send\\', fieldObject);');\n log(\"with fieldObject: \".concat(JSON.stringify(fieldObject)));\n log(\"with trackers: \".concat(JSON.stringify(trackerNames)));\n }\n}\n/**\n * pageview:\n * Basic GA pageview tracking\n * @param {String} path - the current page page e.g. '/about'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n * @param {String} title - (optional) the page title e. g. 'My Website'\n */\n\nexport function pageview(rawPath, trackerNames, title) {\n if (!rawPath) {\n warn('path is required in .pageview()');\n return;\n }\n\n var path = trim(rawPath);\n\n if (path === '') {\n warn('path cannot be an empty string in .pageview()');\n return;\n }\n\n var extraFields = {};\n\n if (title) {\n extraFields.title = title;\n }\n\n if (typeof ga === 'function') {\n _gaCommand(trackerNames, 'send', _objectSpread({\n hitType: 'pageview',\n page: path\n }, extraFields));\n\n if (_debug) {\n log('called ga(\\'send\\', \\'pageview\\', path);');\n var extraLog = '';\n\n if (title) {\n extraLog = \" and title: \".concat(title);\n }\n\n log(\"with path: \".concat(path).concat(extraLog));\n }\n }\n}\n/**\n * modalview:\n * a proxy to basic GA pageview tracking to consistently track\n * modal views that are an equivalent UX to a traditional pageview\n * @param {String} modalName e.g. 'add-or-edit-club'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function modalview(rawModalName, trackerNames) {\n if (!rawModalName) {\n warn('modalName is required in .modalview(modalName)');\n return;\n }\n\n var modalName = removeLeadingSlash(trim(rawModalName));\n\n if (modalName === '') {\n warn('modalName cannot be an empty string or a single / in .modalview()');\n return;\n }\n\n if (typeof ga === 'function') {\n var path = \"/modal/\".concat(modalName);\n\n _gaCommand(trackerNames, 'send', 'pageview', path);\n\n if (_debug) {\n log('called ga(\\'send\\', \\'pageview\\', path);');\n log(\"with path: \".concat(path));\n }\n }\n}\n/**\n * timing:\n * GA timing\n * @param args.category {String} required\n * @param args.variable {String} required\n * @param args.value {Int} required\n * @param args.label {String} required\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function timing() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref.category,\n variable = _ref.variable,\n value = _ref.value,\n label = _ref.label;\n\n var trackerNames = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n if (!category || !variable || !value || typeof value !== 'number') {\n warn('args.category, args.variable ' + 'AND args.value are required in timing() ' + 'AND args.value has to be a number');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'timing',\n timingCategory: _format(category),\n timingVar: _format(variable),\n timingValue: value\n };\n\n if (label) {\n fieldObject.timingLabel = _format(label);\n }\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * event:\n * GA event tracking\n * @param args.category {String} required\n * @param args.action {String} required\n * @param args.label {String} optional\n * @param args.value {Int} optional\n * @param args.nonInteraction {boolean} optional\n * @param args.transport {string} optional\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function event() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref2.category,\n action = _ref2.action,\n label = _ref2.label,\n value = _ref2.value,\n nonInteraction = _ref2.nonInteraction,\n transport = _ref2.transport,\n args = _objectWithoutProperties(_ref2, [\"category\", \"action\", \"label\", \"value\", \"nonInteraction\", \"transport\"]);\n\n var trackerNames = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!category || !action) {\n warn('args.category AND args.action are required in event()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: _format(category),\n eventAction: _format(action)\n }; // Optional Fields\n\n if (label) {\n fieldObject.eventLabel = _format(label);\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value !== 'number') {\n warn('Expected `args.value` arg to be a Number.');\n } else {\n fieldObject.eventValue = value;\n }\n }\n\n if (typeof nonInteraction !== 'undefined') {\n if (typeof nonInteraction !== 'boolean') {\n warn('`args.nonInteraction` must be a boolean.');\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n\n if (typeof transport !== 'undefined') {\n if (typeof transport !== 'string') {\n warn('`args.transport` must be a string.');\n } else {\n if (['beacon', 'xhr', 'image'].indexOf(transport) === -1) {\n warn('`args.transport` must be either one of these values: `beacon`, `xhr` or `image`');\n }\n\n fieldObject.transport = transport;\n }\n }\n\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'dimension'.length) === 'dimension';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n });\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'metric'.length) === 'metric';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n }); // Send to GA\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * exception:\n * GA exception tracking\n * @param args.description {String} optional\n * @param args.fatal {boolean} optional\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function exception(_ref3, trackerNames) {\n var description = _ref3.description,\n fatal = _ref3.fatal;\n\n if (typeof ga === 'function') {\n // Required Fields\n var fieldObject = {\n hitType: 'exception'\n }; // Optional Fields\n\n if (description) {\n fieldObject.exDescription = _format(description);\n }\n\n if (typeof fatal !== 'undefined') {\n if (typeof fatal !== 'boolean') {\n warn('`args.fatal` must be a boolean.');\n } else {\n fieldObject.exFatal = fatal;\n }\n } // Send to GA\n\n\n send(fieldObject, trackerNames);\n }\n}\nexport var plugin = {\n /**\n * require:\n * GA requires a plugin\n * @param name {String} e.g. 'ecommerce' or 'myplugin'\n * @param options {Object} optional e.g {path: '/log', debug: true}\n * @param trackerName {String} optional e.g 'trackerName'\n */\n require: function require(rawName, options, trackerName) {\n if (typeof ga === 'function') {\n // Required Fields\n if (!rawName) {\n warn('`name` is required in .require()');\n return;\n }\n\n var name = trim(rawName);\n\n if (name === '') {\n warn('`name` cannot be an empty string in .require()');\n return;\n }\n\n var requireString = trackerName ? \"\".concat(trackerName, \".require\") : 'require'; // Optional Fields\n\n if (options) {\n if (_typeof(options) !== 'object') {\n warn('Expected `options` arg to be an Object');\n return;\n }\n\n if (Object.keys(options).length === 0) {\n warn('Empty `options` given to .require()');\n }\n\n ga(requireString, name, options);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"', \").concat(JSON.stringify(options)));\n }\n } else {\n ga(requireString, name);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"');\"));\n }\n }\n }\n },\n\n /**\n * execute:\n * GA execute action for plugin\n * Takes variable number of arguments\n * @param pluginName {String} e.g. 'ecommerce' or 'myplugin'\n * @param action {String} e.g. 'addItem' or 'myCustomAction'\n * @param actionType {String} optional e.g. 'detail'\n * @param payload {Object} optional e.g { id: '1x5e', name : 'My product to track' }\n */\n execute: function execute(pluginName, action) {\n var payload;\n var actionType;\n\n if ((arguments.length <= 2 ? 0 : arguments.length - 2) === 1) {\n payload = arguments.length <= 2 ? undefined : arguments[2];\n } else {\n actionType = arguments.length <= 2 ? undefined : arguments[2];\n payload = arguments.length <= 3 ? undefined : arguments[3];\n }\n\n if (typeof ga === 'function') {\n if (typeof pluginName !== 'string') {\n warn('Expected `pluginName` arg to be a String.');\n } else if (typeof action !== 'string') {\n warn('Expected `action` arg to be a String.');\n } else {\n var command = \"\".concat(pluginName, \":\").concat(action);\n payload = payload || null;\n\n if (actionType && payload) {\n ga(command, actionType, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"actionType: \\\"\".concat(actionType, \"\\\" with payload: \").concat(JSON.stringify(payload)));\n }\n } else if (payload) {\n ga(command, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"with payload: \".concat(JSON.stringify(payload)));\n }\n } else {\n ga(command);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n }\n }\n }\n }\n }\n};\n/**\n * outboundLink:\n * GA outboundLink tracking\n * @param args.label {String} e.g. url, or 'Create an Account'\n * @param {function} hitCallback - Called after processing a hit.\n */\n\nexport function outboundLink(args, hitCallback, trackerNames) {\n if (typeof hitCallback !== 'function') {\n warn('hitCallback function is required');\n return;\n }\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!args || !args.label) {\n warn('args.label is required in outboundLink()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: 'Outbound',\n eventAction: 'Click',\n eventLabel: _format(args.label)\n };\n var safetyCallbackCalled = false;\n\n var safetyCallback = function safetyCallback() {\n // This prevents a delayed response from GA\n // causing hitCallback from being fired twice\n safetyCallbackCalled = true;\n hitCallback();\n }; // Using a timeout to ensure the execution of critical application code\n // in the case when the GA server might be down\n // or an ad blocker prevents sending the data\n // register safety net timeout:\n\n\n var t = setTimeout(safetyCallback, 250);\n\n var clearableCallbackForGA = function clearableCallbackForGA() {\n clearTimeout(t);\n\n if (!safetyCallbackCalled) {\n hitCallback();\n }\n };\n\n fieldObject.hitCallback = clearableCallbackForGA; // Send to GA\n\n send(fieldObject, trackerNames);\n } else {\n // if ga is not defined, return the callback so the application\n // continues to work as expected\n setTimeout(hitCallback, 0);\n }\n}\nexport var testModeAPI = TestModeAPI;\nexport default {\n initialize: initialize,\n ga: ga,\n set: set,\n send: send,\n pageview: pageview,\n modalview: modalview,\n timing: timing,\n event: event,\n exception: exception,\n plugin: plugin,\n outboundLink: outboundLink,\n testModeAPI: TestModeAPI\n};","export default function (options) {\n var gaAddress = 'https://www.google-analytics.com/analytics.js';\n\n if (options && options.gaAddress) {\n gaAddress = options.gaAddress;\n } else if (options && options.debug) {\n gaAddress = 'https://www.google-analytics.com/analytics_debug.js';\n } // https://developers.google.com/analytics/devguides/collection/analyticsjs/\n\n /* eslint-disable */\n\n\n (function (i, s, o, g, r, a, m) {\n i['GoogleAnalyticsObject'] = r;\n i[r] = i[r] || function () {\n (i[r].q = i[r].q || []).push(arguments);\n }, i[r].l = 1 * new Date();\n a = s.createElement(o), m = s.getElementsByTagName(o)[0];\n a.async = 1;\n a.src = g;\n m.parentNode.insertBefore(a, m);\n })(window, document, 'script', gaAddress, 'ga');\n /* eslint-enable */\n\n}","export default function removeLeadingSlash(string) {\n if (string.substring(0, 1) === '/') {\n return string.substring(1);\n }\n\n return string;\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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport UnboundOutboundLink from './components/OutboundLink';\nimport * as Defaults from './core';\nexport var initialize = Defaults.initialize;\nexport var ga = Defaults.ga;\nexport var set = Defaults.set;\nexport var send = Defaults.send;\nexport var pageview = Defaults.pageview;\nexport var modalview = Defaults.modalview;\nexport var timing = Defaults.timing;\nexport var event = Defaults.event;\nexport var exception = Defaults.exception;\nexport var plugin = Defaults.plugin;\nexport var outboundLink = Defaults.outboundLink;\nexport var testModeAPI = Defaults.testModeAPI;\nUnboundOutboundLink.origTrackLink = UnboundOutboundLink.trackLink;\nUnboundOutboundLink.trackLink = Defaults.outboundLink;\nexport var OutboundLink = UnboundOutboundLink;\nexport default _objectSpread({}, Defaults, {\n OutboundLink: OutboundLink\n});","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\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 */\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} // @internal\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\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","import toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}","/* eslint-disable no-redeclare */\n// $FlowFixMe\nvar find = Array.prototype.find ? function (list, predicate) {\n return Array.prototype.find.call(list, predicate);\n} : function (list, predicate) {\n for (var _i2 = 0; _i2 < list.length; _i2++) {\n var value = list[_i2];\n\n if (predicate(value)) {\n return value;\n }\n }\n};\nexport default find;\n","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import objectEntries from '../polyfills/objectEntries';\n\n/**\n * Creates an object map with the same keys as `map` and values generated by\n * running each value of `map` thru `fn`.\n */\nexport default function mapValue(map, fn) {\n var result = Object.create(null);\n\n for (var _i2 = 0, _objectEntries2 = objectEntries(map); _i2 < _objectEntries2.length; _i2++) {\n var _ref2 = _objectEntries2[_i2];\n var _key = _ref2[0];\n var _value = _ref2[1];\n result[_key] = fn(_value, _key);\n }\n\n return result;\n}\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var MILLISECONDS_IN_MINUTE = 60000;\n\nfunction getDateMillisecondsPart(date) {\n return date.getTime() % MILLISECONDS_IN_MINUTE;\n}\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\n\n\nexport default function getTimezoneOffsetInMilliseconds(dirtyDate) {\n var date = new Date(dirtyDate.getTime());\n var baseTimezoneOffset = Math.ceil(date.getTimezoneOffset());\n date.setSeconds(0, 0);\n var hasNegativeUTCOffset = baseTimezoneOffset > 0;\n var millisecondsPartOfTimezoneOffset = hasNegativeUTCOffset ? (MILLISECONDS_IN_MINUTE + getDateMillisecondsPart(date)) % MILLISECONDS_IN_MINUTE : getDateMillisecondsPart(date);\n return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset;\n}","import toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n }\n}","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ExtendedError, WrappedFunction } from '@sentry/types';\n\nimport { htmlTreeAsString } from './browser';\nimport { isElement, isError, isEvent, isInstanceOf, isPlainObject, isPrimitive, isSyntheticEvent } from './is';\nimport { Memo } from './memo';\nimport { getFunctionName } from './stacktrace';\nimport { truncate } from './string';\n\n/**\n * Wrap a given object method with a higher-order function\n *\n * @param source An object that contains a method to be wrapped.\n * @param name A name of method to be wrapped.\n * @param replacementFactory A function that should be used to wrap a given method, returning the wrapped method which\n * will be substituted in for `source[name]`.\n * @returns void\n */\nexport function fill(source: { [key: string]: any }, name: string, replacementFactory: (...args: any[]) => any): void {\n if (!(name in source)) {\n return;\n }\n\n const original = source[name] as () => any;\n const wrapped = replacementFactory(original) as WrappedFunction;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __sentry_original__: {\n enumerable: false,\n value: original,\n },\n });\n } catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nexport function urlEncode(object: { [key: string]: any }): string {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any object into an object literal with all its attributes\n * attached to it.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n */\nfunction getWalkSource(\n value: any,\n): {\n [key: string]: any;\n} {\n if (isError(value)) {\n const error = value as ExtendedError;\n const err: {\n [key: string]: any;\n stack: string | undefined;\n message: string;\n name: string;\n } = {\n message: error.message,\n name: error.name,\n stack: error.stack,\n };\n\n for (const i in error) {\n if (Object.prototype.hasOwnProperty.call(error, i)) {\n err[i] = error[i];\n }\n }\n\n return err;\n }\n\n if (isEvent(value)) {\n /**\n * Event-like interface that's usable in browser and node\n */\n interface SimpleEvent {\n [key: string]: unknown;\n type: string;\n target?: unknown;\n currentTarget?: unknown;\n }\n\n const event = value as SimpleEvent;\n\n const source: {\n [key: string]: any;\n } = {};\n\n source.type = event.type;\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n source.target = isElement(event.target)\n ? htmlTreeAsString(event.target)\n : Object.prototype.toString.call(event.target);\n } catch (_oO) {\n source.target = '';\n }\n\n try {\n source.currentTarget = isElement(event.currentTarget)\n ? htmlTreeAsString(event.currentTarget)\n : Object.prototype.toString.call(event.currentTarget);\n } catch (_oO) {\n source.currentTarget = '';\n }\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n source.detail = event.detail;\n }\n\n for (const i in event) {\n if (Object.prototype.hasOwnProperty.call(event, i)) {\n source[i] = event;\n }\n }\n\n return source;\n }\n\n return value as {\n [key: string]: any;\n };\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value: string): number {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\nfunction jsonSize(value: any): number {\n return utf8Length(JSON.stringify(value));\n}\n\n/** JSDoc */\nexport function normalizeToSize(\n object: { [key: string]: any },\n // Default Node.js REPL depth\n depth: number = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize: number = 100 * 1024,\n): T {\n const serialized = normalize(object, depth);\n\n if (jsonSize(serialized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return serialized as T;\n}\n\n/**\n * Transform any non-primitive, BigInt, or Symbol-type value into a string. Acts as a no-op on strings, numbers,\n * booleans, null, and undefined.\n *\n * @param value The value to stringify\n * @returns For non-primitive, BigInt, and Symbol-type values, a string denoting the value's type, type and value, or\n * type and `description` property, respectively. For non-BigInt, non-Symbol primitives, returns the original value,\n * unchanged.\n */\nfunction serializeValue(value: any): any {\n const type = Object.prototype.toString.call(value);\n\n // Node.js REPL notation\n if (typeof value === 'string') {\n return value;\n }\n if (type === '[object Object]') {\n return '[Object]';\n }\n if (type === '[object Array]') {\n return '[Array]';\n }\n\n const normalized = normalizeValue(value);\n return isPrimitive(normalized) ? normalized : type;\n}\n\n/**\n * normalizeValue()\n *\n * Takes unserializable input and make it serializable friendly\n *\n * - translates undefined/NaN values to \"[undefined]\"/\"[NaN]\" respectively,\n * - serializes Error objects\n * - filter global objects\n */\nfunction normalizeValue(value: T, key?: any): T | string {\n if (key === 'domain' && value && typeof value === 'object' && ((value as unknown) as { _events: any })._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n if (typeof (global as any) !== 'undefined' && (value as unknown) === global) {\n return '[Global]';\n }\n\n if (typeof (window as any) !== 'undefined' && (value as unknown) === window) {\n return '[Window]';\n }\n\n if (typeof (document as any) !== 'undefined' && (value as unknown) === document) {\n return '[Document]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n if (value === void 0) {\n return '[undefined]';\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n // symbols and bigints are considered primitives by TS, but aren't natively JSON-serilaizable\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n return value;\n}\n\n/**\n * Walks an object to perform a normalization on it\n *\n * @param key of object that's walked in current iteration\n * @param value object to be walked\n * @param depth Optional number indicating how deep should walking be performed\n * @param memo Optional Memo class handling decycling\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function walk(key: string, value: any, depth: number = +Infinity, memo: Memo = new Memo()): any {\n // If we reach the maximum depth, serialize whatever has left\n if (depth === 0) {\n return serializeValue(value);\n }\n\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // If value implements `toJSON` method, call it and return early\n if (value !== null && value !== undefined && typeof value.toJSON === 'function') {\n return value.toJSON();\n }\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n\n // If normalized value is a primitive, there are no branches left to walk, so we can just bail out, as theres no point in going down that branch any further\n const normalized = normalizeValue(value, key);\n if (isPrimitive(normalized)) {\n return normalized;\n }\n\n // Create source that we will use for next itterations, either objectified error object (Error type with extracted keys:value pairs) or the input itself\n const source = getWalkSource(value);\n\n // Create an accumulator that will act as a parent for all future itterations of that branch\n const acc = Array.isArray(value) ? [] : {};\n\n // If we already walked that branch, bail out, as it's circular reference\n if (memo.memoize(value)) {\n return '[Circular ~]';\n }\n\n // Walk all keys of the source\n for (const innerKey in source) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(source, innerKey)) {\n continue;\n }\n // Recursively walk through all the child nodes\n (acc as { [key: string]: any })[innerKey] = walk(innerKey, source[innerKey], depth - 1, memo);\n }\n\n // Once walked through all the branches, remove the parent from memo storage\n memo.unmemoize(value);\n\n // Return accumulated values\n return acc;\n}\n\n/**\n * normalize()\n *\n * - Creates a copy to prevent original input mutation\n * - Skip non-enumerablers\n * - Calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializeable values (undefined/NaN/Functions) to serializable format\n * - Translates known global objects/Classes to a string representations\n * - Takes care of Error objects serialization\n * - Optionally limit depth of final output\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function normalize(input: any, depth?: number): any {\n try {\n return JSON.parse(JSON.stringify(input, (key: string, value: any) => walk(key, value, depth)));\n } catch (_oO) {\n return '**non-serializable**';\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function extractExceptionKeysForMessage(exception: any, maxLength: number = 40): string {\n const keys = Object.keys(getWalkSource(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return the new object with removed keys that value was `undefined`.\n * Works recursively on objects and arrays.\n */\nexport function dropUndefinedKeys(val: T): T {\n if (isPlainObject(val)) {\n const obj = val as { [key: string]: any };\n const rv: { [key: string]: any } = {};\n for (const key of Object.keys(obj)) {\n if (typeof obj[key] !== 'undefined') {\n rv[key] = dropUndefinedKeys(obj[key]);\n }\n }\n return rv as T;\n }\n\n if (Array.isArray(val)) {\n return (val as any[]).map(dropUndefinedKeys) as any;\n }\n\n return val;\n}\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","import { serializeStyles } from '@emotion/serialize';\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nexport default css;\n","import inspect from '../jsutils/inspect';\nimport devAssert from '../jsutils/devAssert';\nimport defineToJSON from '../jsutils/defineToJSON';\nimport { syntaxError } from '../error/syntaxError';\nimport { Kind } from './kinds';\nimport { Source } from './source';\nimport { createLexer } from './lexer';\nimport { DirectiveLocation } from './directiveLocation';\nimport { TokenKind } from './tokenKind';\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 =\n/*#__PURE__*/\nfunction () {\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 = createLexer(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 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.experimentalFragmentVariables) {\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 if (token.value === 'true' || token.value === 'false') {\n this._lexer.advance();\n\n return {\n kind: Kind.BOOLEAN,\n value: token.value === 'true',\n loc: this.loc(token)\n };\n } else if (token.value === 'null') {\n this._lexer.advance();\n\n return {\n kind: Kind.NULL,\n loc: this.loc(token)\n };\n }\n\n this._lexer.advance();\n\n return {\n kind: Kind.ENUM,\n value: token.value,\n loc: this.loc(token)\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 : schema Directives[Const]? { OperationTypeDefinition+ }\n */\n ;\n\n _proto.parseSchemaDefinition = function parseSchemaDefinition() {\n var start = this._lexer.token;\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 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 types.push(this.parseNamedType());\n } while (this.expectOptionalToken(TokenKind.AMP) || // Legacy support for the SDL?\n this._options.allowLegacySDLImplementsInterfaces && this.peek(TokenKind.NAME));\n }\n\n return types;\n }\n /**\n * FieldsDefinition : { FieldDefinition+ }\n */\n ;\n\n _proto.parseFieldsDefinition = function parseFieldsDefinition() {\n // Legacy support for the SDL?\n if (this._options.allowLegacySDLEmptyFields && 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 directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n return {\n kind: Kind.INTERFACE_TYPE_DEFINITION,\n description: description,\n name: name,\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 Directives[Const]? FieldsDefinition\n * - extend interface Name Directives[Const]\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 directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n\n if (directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.INTERFACE_TYPE_EXTENSION,\n name: name,\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 if (!this._options.noLocation) {\n return new Loc(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(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 || 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\nfunction Loc(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\n\ndefineToJSON(Loc, function () {\n return {\n start: this.start,\n end: this.end\n };\n});\n/**\n * A helper function to describe a token as a string for debugging\n */\n\nfunction getTokenDesc(token) {\n var value = token.value;\n return value ? \"\".concat(token.kind, \" \\\"\").concat(value, \"\\\"\") : token.kind;\n}\n","'use strict';\nvar strictUriEncode = require('strict-uri-encode');\nvar objectAssign = require('object-assign');\nvar decodeComponent = require('decode-uri-component');\n\nfunction encoderForArrayFormat(opts) {\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (key, value, index) {\n\t\t\t\treturn value === null ? [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tindex,\n\t\t\t\t\t']'\n\t\t\t\t].join('') : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tencode(index, opts),\n\t\t\t\t\t']=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[]=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(opts) {\n\tvar result;\n\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t} else if (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t} else if (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input)).sort(function (a, b) {\n\t\t\treturn Number(a) - Number(b);\n\t\t}).map(function (key) {\n\t\t\treturn input[key];\n\t\t});\n\t}\n\n\treturn input;\n}\n\nfunction extract(str) {\n\tvar queryStart = str.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\treturn str.slice(queryStart + 1);\n}\n\nfunction parse(str, opts) {\n\topts = objectAssign({arrayFormat: 'none'}, opts);\n\n\tvar formatter = parserForArrayFormat(opts);\n\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^[?#&]/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeComponent(val);\n\n\t\tformatter(decodeComponent(key), val, ret);\n\t});\n\n\treturn Object.keys(ret).sort().reduce(function (result, key) {\n\t\tvar val = ret[key];\n\t\tif (Boolean(val) && typeof val === 'object' && !Array.isArray(val)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(val);\n\t\t} else {\n\t\t\tresult[key] = val;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none'\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\tif (opts.sort === false) {\n\t\topts.sort = function () {};\n\t}\n\n\tvar formatter = encoderForArrayFormat(opts);\n\n\treturn obj ? Object.keys(obj).sort(opts.sort).map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn encode(key, opts);\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresult.push(formatter(key, val2, result.length));\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n\nexports.parseUrl = function (str, opts) {\n\treturn {\n\t\turl: str.split('?')[0] || '',\n\t\tquery: parse(extract(str), opts)\n\t};\n};\n","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","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 { isObjectType, isListType, isNonNullType, isAbstractType } from '../type/definition';\n/**\n * Provided two types, return true if the types are equal (invariant).\n */\n\nexport function isEqualType(typeA, typeB) {\n // Equivalent types are equal.\n if (typeA === typeB) {\n return true;\n } // If either type is non-null, the other must also be non-null.\n\n\n if (isNonNullType(typeA) && isNonNullType(typeB)) {\n return isEqualType(typeA.ofType, typeB.ofType);\n } // If either type is a list, the other must also be a list.\n\n\n if (isListType(typeA) && isListType(typeB)) {\n return isEqualType(typeA.ofType, typeB.ofType);\n } // Otherwise the types are not equal.\n\n\n return false;\n}\n/**\n * Provided a type and a super type, return true if the first type is either\n * equal or a subset of the second super type (covariant).\n */\n\nexport function isTypeSubTypeOf(schema, maybeSubType, superType) {\n // Equivalent type is a valid subtype\n if (maybeSubType === superType) {\n return true;\n } // If superType is non-null, maybeSubType must also be non-null.\n\n\n if (isNonNullType(superType)) {\n if (isNonNullType(maybeSubType)) {\n return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType);\n }\n\n return false;\n }\n\n if (isNonNullType(maybeSubType)) {\n // If superType is nullable, maybeSubType may be non-null or nullable.\n return isTypeSubTypeOf(schema, maybeSubType.ofType, superType);\n } // If superType type is a list, maybeSubType type must also be a list.\n\n\n if (isListType(superType)) {\n if (isListType(maybeSubType)) {\n return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType);\n }\n\n return false;\n }\n\n if (isListType(maybeSubType)) {\n // If superType is not a list, maybeSubType must also be not a list.\n return false;\n } // If superType type is an abstract type, maybeSubType type may be a currently\n // possible object type.\n\n\n if (isAbstractType(superType) && isObjectType(maybeSubType) && schema.isPossibleType(superType, maybeSubType)) {\n return true;\n } // Otherwise, the child type is not a valid subtype of the parent type.\n\n\n return false;\n}\n/**\n * Provided two composite types, determine if they \"overlap\". Two composite\n * types overlap when the Sets of possible concrete types for each intersect.\n *\n * This is often used to determine if a fragment of a given type could possibly\n * be visited in a context of another type.\n *\n * This function is commutative.\n */\n\nexport function doTypesOverlap(schema, typeA, typeB) {\n // Equivalent types overlap\n if (typeA === typeB) {\n return true;\n }\n\n if (isAbstractType(typeA)) {\n if (isAbstractType(typeB)) {\n // If both types are abstract, then determine if there is any intersection\n // between possible concrete types of each.\n return schema.getPossibleTypes(typeA).some(function (type) {\n return schema.isPossibleType(typeB, type);\n });\n } // Determine if the latter type is a possible concrete type of the former.\n\n\n return schema.isPossibleType(typeA, typeB);\n }\n\n if (isAbstractType(typeB)) {\n // Determine if the former type is a possible concrete type of the latter.\n return schema.isPossibleType(typeB, typeA);\n } // Otherwise the types do not overlap.\n\n\n return false;\n}\n","/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === \"function\") {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Does a shallow equality check of two objects by comparing the reference\n * equality of each value.\n */\n\nexport var shallowEqual = function shallowEqual(objA, objB) {\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n\n if (bKeys.length !== aKeys.length) {\n return false;\n }\n\n for (var i = 0; i < bKeys.length; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key]) {\n return false;\n }\n }\n\n return true;\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === \"function\") {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};","'use strict';\n\nvar objectAssign = require('object-assign');\n\n// compare and isBuffer taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) {\n return -1;\n }\n if (y < x) {\n return 1;\n }\n return 0;\n}\nfunction isBuffer(b) {\n if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {\n return global.Buffer.isBuffer(b);\n }\n return !!(b != null && b._isBuffer);\n}\n\n// based on node assert, original notice:\n// NB: The URL to the CommonJS spec is kept just for tradition.\n// node-assert has evolved a lot since then, both in API and behavior.\n\n// http://wiki.commonjs.org/wiki/Unit_Testing/1.0\n//\n// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!\n//\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar util = require('util/');\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar pSlice = Array.prototype.slice;\nvar functionsHaveNames = (function () {\n return function foo() {}.name === 'foo';\n}());\nfunction pToString (obj) {\n return Object.prototype.toString.call(obj);\n}\nfunction isView(arrbuf) {\n if (isBuffer(arrbuf)) {\n return false;\n }\n if (typeof global.ArrayBuffer !== 'function') {\n return false;\n }\n if (typeof ArrayBuffer.isView === 'function') {\n return ArrayBuffer.isView(arrbuf);\n }\n if (!arrbuf) {\n return false;\n }\n if (arrbuf instanceof DataView) {\n return true;\n }\n if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {\n return true;\n }\n return false;\n}\n// 1. The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\n\n// 2. The AssertionError is defined in assert.\n// new assert.AssertionError({ message: message,\n// actual: actual,\n// expected: expected })\n\nvar regex = /\\s*function\\s+([^\\(\\s]*)\\s*/;\n// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js\nfunction getName(func) {\n if (!util.isFunction(func)) {\n return;\n }\n if (functionsHaveNames) {\n return func.name;\n }\n var str = func.toString();\n var match = str.match(regex);\n return match && match[1];\n}\nassert.AssertionError = function AssertionError(options) {\n this.name = 'AssertionError';\n this.actual = options.actual;\n this.expected = options.expected;\n this.operator = options.operator;\n if (options.message) {\n this.message = options.message;\n this.generatedMessage = false;\n } else {\n this.message = getMessage(this);\n this.generatedMessage = true;\n }\n var stackStartFunction = options.stackStartFunction || fail;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, stackStartFunction);\n } else {\n // non v8 browsers so we can have a stacktrace\n var err = new Error();\n if (err.stack) {\n var out = err.stack;\n\n // try to strip useless frames\n var fn_name = getName(stackStartFunction);\n var idx = out.indexOf('\\n' + fn_name);\n if (idx >= 0) {\n // once we have located the function frame\n // we need to strip out everything before it (and its line)\n var next_line = out.indexOf('\\n', idx + 1);\n out = out.substring(next_line + 1);\n }\n\n this.stack = out;\n }\n }\n};\n\n// assert.AssertionError instanceof Error\nutil.inherits(assert.AssertionError, Error);\n\nfunction truncate(s, n) {\n if (typeof s === 'string') {\n return s.length < n ? s : s.slice(0, n);\n } else {\n return s;\n }\n}\nfunction inspect(something) {\n if (functionsHaveNames || !util.isFunction(something)) {\n return util.inspect(something);\n }\n var rawname = getName(something);\n var name = rawname ? ': ' + rawname : '';\n return '[Function' + name + ']';\n}\nfunction getMessage(self) {\n return truncate(inspect(self.actual), 128) + ' ' +\n self.operator + ' ' +\n truncate(inspect(self.expected), 128);\n}\n\n// At present only the three keys mentioned above are used and\n// understood by the spec. Implementations or sub modules can pass\n// other keys to the AssertionError's constructor - they will be\n// ignored.\n\n// 3. All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction fail(actual, expected, message, operator, stackStartFunction) {\n throw new assert.AssertionError({\n message: message,\n actual: actual,\n expected: expected,\n operator: operator,\n stackStartFunction: stackStartFunction\n });\n}\n\n// EXTENSION! allows for well behaved errors defined elsewhere.\nassert.fail = fail;\n\n// 4. Pure assertion tests whether a value is truthy, as determined\n// by !!guard.\n// assert.ok(guard, message_opt);\n// This statement is equivalent to assert.equal(true, !!guard,\n// message_opt);. To test strictly for the value true, use\n// assert.strictEqual(true, guard, message_opt);.\n\nfunction ok(value, message) {\n if (!value) fail(value, true, message, '==', assert.ok);\n}\nassert.ok = ok;\n\n// 5. The equality assertion tests shallow, coercive equality with\n// ==.\n// assert.equal(actual, expected, message_opt);\n\nassert.equal = function equal(actual, expected, message) {\n if (actual != expected) fail(actual, expected, message, '==', assert.equal);\n};\n\n// 6. The non-equality assertion tests for whether two objects are not equal\n// with != assert.notEqual(actual, expected, message_opt);\n\nassert.notEqual = function notEqual(actual, expected, message) {\n if (actual == expected) {\n fail(actual, expected, message, '!=', assert.notEqual);\n }\n};\n\n// 7. The equivalence assertion tests a deep equality relation.\n// assert.deepEqual(actual, expected, message_opt);\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'deepEqual', assert.deepEqual);\n }\n};\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);\n }\n};\n\nfunction _deepEqual(actual, expected, strict, memos) {\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n } else if (isBuffer(actual) && isBuffer(expected)) {\n return compare(actual, expected) === 0;\n\n // 7.2. If the expected value is a Date object, the actual value is\n // equivalent if it is also a Date object that refers to the same time.\n } else if (util.isDate(actual) && util.isDate(expected)) {\n return actual.getTime() === expected.getTime();\n\n // 7.3 If the expected value is a RegExp object, the actual value is\n // equivalent if it is also a RegExp object with the same source and\n // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n } else if (util.isRegExp(actual) && util.isRegExp(expected)) {\n return actual.source === expected.source &&\n actual.global === expected.global &&\n actual.multiline === expected.multiline &&\n actual.lastIndex === expected.lastIndex &&\n actual.ignoreCase === expected.ignoreCase;\n\n // 7.4. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if ((actual === null || typeof actual !== 'object') &&\n (expected === null || typeof expected !== 'object')) {\n return strict ? actual === expected : actual == expected;\n\n // If both values are instances of typed arrays, wrap their underlying\n // ArrayBuffers in a Buffer each to increase performance\n // This optimization requires the arrays to have the same type as checked by\n // Object.prototype.toString (aka pToString). Never perform binary\n // comparisons for Float*Arrays, though, since e.g. +0 === -0 but their\n // bit patterns are not identical.\n } else if (isView(actual) && isView(expected) &&\n pToString(actual) === pToString(expected) &&\n !(actual instanceof Float32Array ||\n actual instanceof Float64Array)) {\n return compare(new Uint8Array(actual.buffer),\n new Uint8Array(expected.buffer)) === 0;\n\n // 7.5 For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else if (isBuffer(actual) !== isBuffer(expected)) {\n return false;\n } else {\n memos = memos || {actual: [], expected: []};\n\n var actualIndex = memos.actual.indexOf(actual);\n if (actualIndex !== -1) {\n if (actualIndex === memos.expected.indexOf(expected)) {\n return true;\n }\n }\n\n memos.actual.push(actual);\n memos.expected.push(expected);\n\n return objEquiv(actual, expected, strict, memos);\n }\n}\n\nfunction isArguments(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n}\n\nfunction objEquiv(a, b, strict, actualVisitedObjects) {\n if (a === null || a === undefined || b === null || b === undefined)\n return false;\n // if one is a primitive, the other must be same\n if (util.isPrimitive(a) || util.isPrimitive(b))\n return a === b;\n if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))\n return false;\n var aIsArgs = isArguments(a);\n var bIsArgs = isArguments(b);\n if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))\n return false;\n if (aIsArgs) {\n a = pSlice.call(a);\n b = pSlice.call(b);\n return _deepEqual(a, b, strict);\n }\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n var key, i;\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length !== kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] !== kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))\n return false;\n }\n return true;\n}\n\n// 8. The non-equivalence assertion tests for any deep inequality.\n// assert.notDeepEqual(actual, expected, message_opt);\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);\n }\n};\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\nfunction notDeepStrictEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);\n }\n}\n\n\n// 9. The strict equality assertion tests strict equality, as determined by ===.\n// assert.strictEqual(actual, expected, message_opt);\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (actual !== expected) {\n fail(actual, expected, message, '===', assert.strictEqual);\n }\n};\n\n// 10. The strict non-equality assertion tests for strict inequality, as\n// determined by !==. assert.notStrictEqual(actual, expected, message_opt);\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (actual === expected) {\n fail(actual, expected, message, '!==', assert.notStrictEqual);\n }\n};\n\nfunction expectedException(actual, expected) {\n if (!actual || !expected) {\n return false;\n }\n\n if (Object.prototype.toString.call(expected) == '[object RegExp]') {\n return expected.test(actual);\n }\n\n try {\n if (actual instanceof expected) {\n return true;\n }\n } catch (e) {\n // Ignore. The instanceof check doesn't work for arrow functions.\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction _tryBlock(block) {\n var error;\n try {\n block();\n } catch (e) {\n error = e;\n }\n return error;\n}\n\nfunction _throws(shouldThrow, block, expected, message) {\n var actual;\n\n if (typeof block !== 'function') {\n throw new TypeError('\"block\" argument must be a function');\n }\n\n if (typeof expected === 'string') {\n message = expected;\n expected = null;\n }\n\n actual = _tryBlock(block);\n\n message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +\n (message ? ' ' + message : '.');\n\n if (shouldThrow && !actual) {\n fail(actual, expected, 'Missing expected exception' + message);\n }\n\n var userProvidedMessage = typeof message === 'string';\n var isUnwantedException = !shouldThrow && util.isError(actual);\n var isUnexpectedException = !shouldThrow && actual && !expected;\n\n if ((isUnwantedException &&\n userProvidedMessage &&\n expectedException(actual, expected)) ||\n isUnexpectedException) {\n fail(actual, expected, 'Got unwanted exception' + message);\n }\n\n if ((shouldThrow && actual && expected &&\n !expectedException(actual, expected)) || (!shouldThrow && actual)) {\n throw actual;\n }\n}\n\n// 11. Expected to throw an error:\n// assert.throws(block, Error_opt, message_opt);\n\nassert.throws = function(block, /*optional*/error, /*optional*/message) {\n _throws(true, block, error, message);\n};\n\n// EXTENSION! This is annoying to write outside this module.\nassert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {\n _throws(false, block, error, message);\n};\n\nassert.ifError = function(err) { if (err) throw err; };\n\n// Expose a strict only variant of assert\nfunction strict(value, message) {\n if (!value) fail(value, true, message, '==', strict);\n}\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n if (hasOwn.call(obj, key)) keys.push(key);\n }\n return keys;\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","import React from 'react';\n/**\n * DropdownContext\n * {\n * toggle: PropTypes.func.isRequired,\n * isOpen: PropTypes.bool.isRequired,\n * direction: PropTypes.oneOf(['up', 'down', 'left', 'right']).isRequired,\n * inNavbar: PropTypes.bool.isRequired,\n * disabled: PropTypes.bool\n * }\n */\n\nexport var DropdownContext = /*#__PURE__*/React.createContext({});","import find from '../polyfills/find';\nimport { Kind } from '../language/kinds';\nimport { isObjectType, isInterfaceType, isEnumType, isInputObjectType, isListType, isCompositeType, isInputType, isOutputType, getNullableType, getNamedType } from '../type/definition';\nimport { SchemaMetaFieldDef, TypeMetaFieldDef, TypeNameMetaFieldDef } from '../type/introspection';\nimport { typeFromAST } from './typeFromAST';\n/**\n * TypeInfo is a utility class which, given a GraphQL schema, can keep track\n * of the current field and type definitions at any point in a GraphQL document\n * AST during a recursive descent by calling `enter(node)` and `leave(node)`.\n */\n\nexport var TypeInfo =\n/*#__PURE__*/\nfunction () {\n function TypeInfo(schema, // NOTE: this experimental optional second parameter is only needed in order\n // to support non-spec-compliant codebases. You should never need to use it.\n // It may disappear in the future.\n getFieldDefFn, // Initial type may be provided in rare cases to facilitate traversals\n // beginning somewhere other than documents.\n initialType) {\n this._schema = schema;\n this._typeStack = [];\n this._parentTypeStack = [];\n this._inputTypeStack = [];\n this._fieldDefStack = [];\n this._defaultValueStack = [];\n this._directive = null;\n this._argument = null;\n this._enumValue = null;\n this._getFieldDef = getFieldDefFn || getFieldDef;\n\n if (initialType) {\n if (isInputType(initialType)) {\n this._inputTypeStack.push(initialType);\n }\n\n if (isCompositeType(initialType)) {\n this._parentTypeStack.push(initialType);\n }\n\n if (isOutputType(initialType)) {\n this._typeStack.push(initialType);\n }\n }\n }\n\n var _proto = TypeInfo.prototype;\n\n _proto.getType = function getType() {\n if (this._typeStack.length > 0) {\n return this._typeStack[this._typeStack.length - 1];\n }\n };\n\n _proto.getParentType = function getParentType() {\n if (this._parentTypeStack.length > 0) {\n return this._parentTypeStack[this._parentTypeStack.length - 1];\n }\n };\n\n _proto.getInputType = function getInputType() {\n if (this._inputTypeStack.length > 0) {\n return this._inputTypeStack[this._inputTypeStack.length - 1];\n }\n };\n\n _proto.getParentInputType = function getParentInputType() {\n if (this._inputTypeStack.length > 1) {\n return this._inputTypeStack[this._inputTypeStack.length - 2];\n }\n };\n\n _proto.getFieldDef = function getFieldDef() {\n if (this._fieldDefStack.length > 0) {\n return this._fieldDefStack[this._fieldDefStack.length - 1];\n }\n };\n\n _proto.getDefaultValue = function getDefaultValue() {\n if (this._defaultValueStack.length > 0) {\n return this._defaultValueStack[this._defaultValueStack.length - 1];\n }\n };\n\n _proto.getDirective = function getDirective() {\n return this._directive;\n };\n\n _proto.getArgument = function getArgument() {\n return this._argument;\n };\n\n _proto.getEnumValue = function getEnumValue() {\n return this._enumValue;\n };\n\n _proto.enter = function enter(node) {\n var schema = this._schema; // Note: many of the types below are explicitly typed as \"mixed\" to drop\n // any assumptions of a valid schema to ensure runtime types are properly\n // checked before continuing since TypeInfo is used as part of validation\n // which occurs before guarantees of schema and document validity.\n\n switch (node.kind) {\n case Kind.SELECTION_SET:\n {\n var namedType = getNamedType(this.getType());\n\n this._parentTypeStack.push(isCompositeType(namedType) ? namedType : undefined);\n\n break;\n }\n\n case Kind.FIELD:\n {\n var parentType = this.getParentType();\n var fieldDef;\n var fieldType;\n\n if (parentType) {\n fieldDef = this._getFieldDef(schema, parentType, node);\n\n if (fieldDef) {\n fieldType = fieldDef.type;\n }\n }\n\n this._fieldDefStack.push(fieldDef);\n\n this._typeStack.push(isOutputType(fieldType) ? fieldType : undefined);\n\n break;\n }\n\n case Kind.DIRECTIVE:\n this._directive = schema.getDirective(node.name.value);\n break;\n\n case Kind.OPERATION_DEFINITION:\n {\n var type;\n\n if (node.operation === 'query') {\n type = schema.getQueryType();\n } else if (node.operation === 'mutation') {\n type = schema.getMutationType();\n } else if (node.operation === 'subscription') {\n type = schema.getSubscriptionType();\n }\n\n this._typeStack.push(isObjectType(type) ? type : undefined);\n\n break;\n }\n\n case Kind.INLINE_FRAGMENT:\n case Kind.FRAGMENT_DEFINITION:\n {\n var typeConditionAST = node.typeCondition;\n var outputType = typeConditionAST ? typeFromAST(schema, typeConditionAST) : getNamedType(this.getType());\n\n this._typeStack.push(isOutputType(outputType) ? outputType : undefined);\n\n break;\n }\n\n case Kind.VARIABLE_DEFINITION:\n {\n var inputType = typeFromAST(schema, node.type);\n\n this._inputTypeStack.push(isInputType(inputType) ? inputType : undefined);\n\n break;\n }\n\n case Kind.ARGUMENT:\n {\n var argDef;\n var argType;\n var fieldOrDirective = this.getDirective() || this.getFieldDef();\n\n if (fieldOrDirective) {\n argDef = find(fieldOrDirective.args, function (arg) {\n return arg.name === node.name.value;\n });\n\n if (argDef) {\n argType = argDef.type;\n }\n }\n\n this._argument = argDef;\n\n this._defaultValueStack.push(argDef ? argDef.defaultValue : undefined);\n\n this._inputTypeStack.push(isInputType(argType) ? argType : undefined);\n\n break;\n }\n\n case Kind.LIST:\n {\n var listType = getNullableType(this.getInputType());\n var itemType = isListType(listType) ? listType.ofType : listType; // List positions never have a default value.\n\n this._defaultValueStack.push(undefined);\n\n this._inputTypeStack.push(isInputType(itemType) ? itemType : undefined);\n\n break;\n }\n\n case Kind.OBJECT_FIELD:\n {\n var objectType = getNamedType(this.getInputType());\n var inputFieldType;\n var inputField;\n\n if (isInputObjectType(objectType)) {\n inputField = objectType.getFields()[node.name.value];\n\n if (inputField) {\n inputFieldType = inputField.type;\n }\n }\n\n this._defaultValueStack.push(inputField ? inputField.defaultValue : undefined);\n\n this._inputTypeStack.push(isInputType(inputFieldType) ? inputFieldType : undefined);\n\n break;\n }\n\n case Kind.ENUM:\n {\n var enumType = getNamedType(this.getInputType());\n var enumValue;\n\n if (isEnumType(enumType)) {\n enumValue = enumType.getValue(node.value);\n }\n\n this._enumValue = enumValue;\n break;\n }\n }\n };\n\n _proto.leave = function leave(node) {\n switch (node.kind) {\n case Kind.SELECTION_SET:\n this._parentTypeStack.pop();\n\n break;\n\n case Kind.FIELD:\n this._fieldDefStack.pop();\n\n this._typeStack.pop();\n\n break;\n\n case Kind.DIRECTIVE:\n this._directive = null;\n break;\n\n case Kind.OPERATION_DEFINITION:\n case Kind.INLINE_FRAGMENT:\n case Kind.FRAGMENT_DEFINITION:\n this._typeStack.pop();\n\n break;\n\n case Kind.VARIABLE_DEFINITION:\n this._inputTypeStack.pop();\n\n break;\n\n case Kind.ARGUMENT:\n this._argument = null;\n\n this._defaultValueStack.pop();\n\n this._inputTypeStack.pop();\n\n break;\n\n case Kind.LIST:\n case Kind.OBJECT_FIELD:\n this._defaultValueStack.pop();\n\n this._inputTypeStack.pop();\n\n break;\n\n case Kind.ENUM:\n this._enumValue = null;\n break;\n }\n };\n\n return TypeInfo;\n}();\n/**\n * Not exactly the same as the executor's definition of getFieldDef, in this\n * statically evaluated environment we do not always have an Object type,\n * and need to handle Interface and Union types.\n */\n\nfunction getFieldDef(schema, parentType, fieldNode) {\n var name = fieldNode.name.value;\n\n if (name === SchemaMetaFieldDef.name && schema.getQueryType() === parentType) {\n return SchemaMetaFieldDef;\n }\n\n if (name === TypeMetaFieldDef.name && schema.getQueryType() === parentType) {\n return TypeMetaFieldDef;\n }\n\n if (name === TypeNameMetaFieldDef.name && isCompositeType(parentType)) {\n return TypeNameMetaFieldDef;\n }\n\n if (isObjectType(parentType) || isInterfaceType(parentType)) {\n return parentType.getFields()[name];\n }\n}\n","function areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (newInputs[i] !== lastInputs[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nexport default memoizeOne;\n","import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport React, { Component, PureComponent } from 'react';\nimport memoizeOne from 'memoize-one';\nimport { jsx } from '@emotion/core';\nimport { findDOMNode } from 'react-dom';\nimport { c as clearIndicatorCSS, a as containerCSS, b as css, d as dropdownIndicatorCSS, g as groupCSS, e as groupHeadingCSS, i as indicatorsContainerCSS, f as indicatorSeparatorCSS, h as inputCSS, l as loadingIndicatorCSS, j as loadingMessageCSS, m as menuCSS, k as menuListCSS, n as menuPortalCSS, o as multiValueCSS, p as multiValueLabelCSS, q as multiValueRemoveCSS, r as noOptionsMessageCSS, s as optionCSS, t as placeholderCSS, u as css$1, v as valueContainerCSS, w as isTouchCapable, x as isMobileDevice, y as defaultComponents, z as isDocumentElement, A as exportedEqual, B as cleanValue, C as scrollIntoView, D as classNames, E as noop, M as MenuPlacer } from './index-4b37608a.browser.esm.js';\nimport _css from '@emotion/css';\n\nvar diacritics = [{\n base: 'A',\n letters: \"A\\u24B6\\uFF21\\xC0\\xC1\\xC2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\xC3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\xC4\\u01DE\\u1EA2\\xC5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F\"\n}, {\n base: 'AA',\n letters: \"\\uA732\"\n}, {\n base: 'AE',\n letters: \"\\xC6\\u01FC\\u01E2\"\n}, {\n base: 'AO',\n letters: \"\\uA734\"\n}, {\n base: 'AU',\n letters: \"\\uA736\"\n}, {\n base: 'AV',\n letters: \"\\uA738\\uA73A\"\n}, {\n base: 'AY',\n letters: \"\\uA73C\"\n}, {\n base: 'B',\n letters: \"B\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181\"\n}, {\n base: 'C',\n letters: \"C\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\xC7\\u1E08\\u0187\\u023B\\uA73E\"\n}, {\n base: 'D',\n letters: \"D\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779\"\n}, {\n base: 'DZ',\n letters: \"\\u01F1\\u01C4\"\n}, {\n base: 'Dz',\n letters: \"\\u01F2\\u01C5\"\n}, {\n base: 'E',\n letters: \"E\\u24BA\\uFF25\\xC8\\xC9\\xCA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\xCB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E\"\n}, {\n base: 'F',\n letters: \"F\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B\"\n}, {\n base: 'G',\n letters: \"G\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E\"\n}, {\n base: 'H',\n letters: \"H\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D\"\n}, {\n base: 'I',\n letters: \"I\\u24BE\\uFF29\\xCC\\xCD\\xCE\\u0128\\u012A\\u012C\\u0130\\xCF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197\"\n}, {\n base: 'J',\n letters: \"J\\u24BF\\uFF2A\\u0134\\u0248\"\n}, {\n base: 'K',\n letters: \"K\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2\"\n}, {\n base: 'L',\n letters: \"L\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780\"\n}, {\n base: 'LJ',\n letters: \"\\u01C7\"\n}, {\n base: 'Lj',\n letters: \"\\u01C8\"\n}, {\n base: 'M',\n letters: \"M\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C\"\n}, {\n base: 'N',\n letters: \"N\\u24C3\\uFF2E\\u01F8\\u0143\\xD1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4\"\n}, {\n base: 'NJ',\n letters: \"\\u01CA\"\n}, {\n base: 'Nj',\n letters: \"\\u01CB\"\n}, {\n base: 'O',\n letters: \"O\\u24C4\\uFF2F\\xD2\\xD3\\xD4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\xD5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\xD6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\xD8\\u01FE\\u0186\\u019F\\uA74A\\uA74C\"\n}, {\n base: 'OI',\n letters: \"\\u01A2\"\n}, {\n base: 'OO',\n letters: \"\\uA74E\"\n}, {\n base: 'OU',\n letters: \"\\u0222\"\n}, {\n base: 'P',\n letters: \"P\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754\"\n}, {\n base: 'Q',\n letters: \"Q\\u24C6\\uFF31\\uA756\\uA758\\u024A\"\n}, {\n base: 'R',\n letters: \"R\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782\"\n}, {\n base: 'S',\n letters: \"S\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784\"\n}, {\n base: 'T',\n letters: \"T\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786\"\n}, {\n base: 'TZ',\n letters: \"\\uA728\"\n}, {\n base: 'U',\n letters: \"U\\u24CA\\uFF35\\xD9\\xDA\\xDB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\xDC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244\"\n}, {\n base: 'V',\n letters: \"V\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245\"\n}, {\n base: 'VY',\n letters: \"\\uA760\"\n}, {\n base: 'W',\n letters: \"W\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72\"\n}, {\n base: 'X',\n letters: \"X\\u24CD\\uFF38\\u1E8A\\u1E8C\"\n}, {\n base: 'Y',\n letters: \"Y\\u24CE\\uFF39\\u1EF2\\xDD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE\"\n}, {\n base: 'Z',\n letters: \"Z\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762\"\n}, {\n base: 'a',\n letters: \"a\\u24D0\\uFF41\\u1E9A\\xE0\\xE1\\xE2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\xE3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\xE4\\u01DF\\u1EA3\\xE5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250\"\n}, {\n base: 'aa',\n letters: \"\\uA733\"\n}, {\n base: 'ae',\n letters: \"\\xE6\\u01FD\\u01E3\"\n}, {\n base: 'ao',\n letters: \"\\uA735\"\n}, {\n base: 'au',\n letters: \"\\uA737\"\n}, {\n base: 'av',\n letters: \"\\uA739\\uA73B\"\n}, {\n base: 'ay',\n letters: \"\\uA73D\"\n}, {\n base: 'b',\n letters: \"b\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253\"\n}, {\n base: 'c',\n letters: \"c\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\xE7\\u1E09\\u0188\\u023C\\uA73F\\u2184\"\n}, {\n base: 'd',\n letters: \"d\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A\"\n}, {\n base: 'dz',\n letters: \"\\u01F3\\u01C6\"\n}, {\n base: 'e',\n letters: \"e\\u24D4\\uFF45\\xE8\\xE9\\xEA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\xEB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD\"\n}, {\n base: 'f',\n letters: \"f\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C\"\n}, {\n base: 'g',\n letters: \"g\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F\"\n}, {\n base: 'h',\n letters: \"h\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265\"\n}, {\n base: 'hv',\n letters: \"\\u0195\"\n}, {\n base: 'i',\n letters: \"i\\u24D8\\uFF49\\xEC\\xED\\xEE\\u0129\\u012B\\u012D\\xEF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131\"\n}, {\n base: 'j',\n letters: \"j\\u24D9\\uFF4A\\u0135\\u01F0\\u0249\"\n}, {\n base: 'k',\n letters: \"k\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3\"\n}, {\n base: 'l',\n letters: \"l\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747\"\n}, {\n base: 'lj',\n letters: \"\\u01C9\"\n}, {\n base: 'm',\n letters: \"m\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F\"\n}, {\n base: 'n',\n letters: \"n\\u24DD\\uFF4E\\u01F9\\u0144\\xF1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5\"\n}, {\n base: 'nj',\n letters: \"\\u01CC\"\n}, {\n base: 'o',\n letters: \"o\\u24DE\\uFF4F\\xF2\\xF3\\xF4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\xF5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\xF6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\xF8\\u01FF\\u0254\\uA74B\\uA74D\\u0275\"\n}, {\n base: 'oi',\n letters: \"\\u01A3\"\n}, {\n base: 'ou',\n letters: \"\\u0223\"\n}, {\n base: 'oo',\n letters: \"\\uA74F\"\n}, {\n base: 'p',\n letters: \"p\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755\"\n}, {\n base: 'q',\n letters: \"q\\u24E0\\uFF51\\u024B\\uA757\\uA759\"\n}, {\n base: 'r',\n letters: \"r\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783\"\n}, {\n base: 's',\n letters: \"s\\u24E2\\uFF53\\xDF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B\"\n}, {\n base: 't',\n letters: \"t\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787\"\n}, {\n base: 'tz',\n letters: \"\\uA729\"\n}, {\n base: 'u',\n letters: \"u\\u24E4\\uFF55\\xF9\\xFA\\xFB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\xFC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289\"\n}, {\n base: 'v',\n letters: \"v\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C\"\n}, {\n base: 'vy',\n letters: \"\\uA761\"\n}, {\n base: 'w',\n letters: \"w\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73\"\n}, {\n base: 'x',\n letters: \"x\\u24E7\\uFF58\\u1E8B\\u1E8D\"\n}, {\n base: 'y',\n letters: \"y\\u24E8\\uFF59\\u1EF3\\xFD\\u0177\\u1EF9\\u0233\\u1E8F\\xFF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF\"\n}, {\n base: 'z',\n letters: \"z\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763\"\n}];\nvar anyDiacritic = new RegExp('[' + diacritics.map(function (d) {\n return d.letters;\n}).join('') + ']', 'g');\nvar diacriticToBase = {};\n\nfor (var i = 0; i < diacritics.length; i++) {\n var diacritic = diacritics[i];\n\n for (var j = 0; j < diacritic.letters.length; j++) {\n diacriticToBase[diacritic.letters[j]] = diacritic.base;\n }\n}\n\nvar stripDiacritics = function stripDiacritics(str) {\n return str.replace(anyDiacritic, function (match) {\n return diacriticToBase[match];\n });\n};\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar trimString = function trimString(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n};\n\nvar defaultStringify = function defaultStringify(option) {\n return \"\".concat(option.label, \" \").concat(option.value);\n};\n\nvar createFilter = function createFilter(config) {\n return function (option, rawInput) {\n var _ignoreCase$ignoreAcc = _objectSpread({\n ignoreCase: true,\n ignoreAccents: true,\n stringify: defaultStringify,\n trim: true,\n matchFrom: 'any'\n }, config),\n ignoreCase = _ignoreCase$ignoreAcc.ignoreCase,\n ignoreAccents = _ignoreCase$ignoreAcc.ignoreAccents,\n stringify = _ignoreCase$ignoreAcc.stringify,\n trim = _ignoreCase$ignoreAcc.trim,\n matchFrom = _ignoreCase$ignoreAcc.matchFrom;\n\n var input = trim ? trimString(rawInput) : rawInput;\n var candidate = trim ? trimString(stringify(option)) : stringify(option);\n\n if (ignoreCase) {\n input = input.toLowerCase();\n candidate = candidate.toLowerCase();\n }\n\n if (ignoreAccents) {\n input = stripDiacritics(input);\n candidate = stripDiacritics(candidate);\n }\n\n return matchFrom === 'start' ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1;\n };\n};\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\nvar _ref = process.env.NODE_ENV === \"production\" ? {\n name: \"1laao21-a11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap;\"\n} : {\n name: \"1laao21-a11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkExMXlUZXh0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFNIiwiZmlsZSI6IkExMXlUZXh0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQGZsb3dcbi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgdHlwZSBFbGVtZW50Q29uZmlnIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vY29yZSc7XG5cbi8vIEFzc2lzdGl2ZSB0ZXh0IHRvIGRlc2NyaWJlIHZpc3VhbCBlbGVtZW50cy4gSGlkZGVuIGZvciBzaWdodGVkIHVzZXJzLlxuY29uc3QgQTExeVRleHQgPSAocHJvcHM6IEVsZW1lbnRDb25maWc8J3NwYW4nPikgPT4gKFxuICAgIDxzcGFuXG4gICAgICBjc3M9e3tcbiAgICAgICAgbGFiZWw6ICdhMTF5VGV4dCcsXG4gICAgICAgIHpJbmRleDogOTk5OSxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICBjbGlwOiAncmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpJyxcbiAgICAgICAgaGVpZ2h0OiAxLFxuICAgICAgICB3aWR0aDogMSxcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgd2hpdGVTcGFjZTogJ25vd3JhcCcsXG4gICAgICB9fVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBBMTF5VGV4dDtcbiJdfQ== */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__\n};\n\nvar A11yText = function A11yText(props) {\n return jsx(\"span\", _extends({\n css: _ref\n }, props));\n};\n\nfunction DummyInput(_ref) {\n var inProp = _ref.in,\n out = _ref.out,\n onExited = _ref.onExited,\n appear = _ref.appear,\n enter = _ref.enter,\n exit = _ref.exit,\n innerRef = _ref.innerRef,\n emotion = _ref.emotion,\n props = _objectWithoutProperties(_ref, [\"in\", \"out\", \"onExited\", \"appear\", \"enter\", \"exit\", \"innerRef\", \"emotion\"]);\n\n return jsx(\"input\", _extends({\n ref: innerRef\n }, props, {\n css: /*#__PURE__*/_css({\n label: 'dummyInput',\n // get rid of any default styles\n background: 0,\n border: 0,\n fontSize: 'inherit',\n outline: 0,\n padding: 0,\n // important! without `width` browsers won't allow focus\n width: 1,\n // remove cursor on desktop\n color: 'transparent',\n // remove cursor on mobile whilst maintaining \"scroll into view\" behaviour\n left: -100,\n opacity: 0,\n position: 'relative',\n transform: 'scale(0)'\n }, process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR1bW15SW5wdXQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUJNIiwiZmlsZSI6IkR1bW15SW5wdXQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyBqc3ggfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRHVtbXlJbnB1dCh7XG4gIGluOiBpblByb3AsXG4gIG91dCxcbiAgb25FeGl0ZWQsXG4gIGFwcGVhcixcbiAgZW50ZXIsXG4gIGV4aXQsXG4gIGlubmVyUmVmLFxuICBlbW90aW9uLFxuICAuLi5wcm9wc1xufTogYW55KSB7XG4gIHJldHVybiAoXG4gICAgPGlucHV0XG4gICAgICByZWY9e2lubmVyUmVmfVxuICAgICAgey4uLnByb3BzfVxuICAgICAgY3NzPXt7XG4gICAgICAgIGxhYmVsOiAnZHVtbXlJbnB1dCcsXG4gICAgICAgIC8vIGdldCByaWQgb2YgYW55IGRlZmF1bHQgc3R5bGVzXG4gICAgICAgIGJhY2tncm91bmQ6IDAsXG4gICAgICAgIGJvcmRlcjogMCxcbiAgICAgICAgZm9udFNpemU6ICdpbmhlcml0JyxcbiAgICAgICAgb3V0bGluZTogMCxcbiAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgLy8gaW1wb3J0YW50ISB3aXRob3V0IGB3aWR0aGAgYnJvd3NlcnMgd29uJ3QgYWxsb3cgZm9jdXNcbiAgICAgICAgd2lkdGg6IDEsXG5cbiAgICAgICAgLy8gcmVtb3ZlIGN1cnNvciBvbiBkZXNrdG9wXG4gICAgICAgIGNvbG9yOiAndHJhbnNwYXJlbnQnLFxuXG4gICAgICAgIC8vIHJlbW92ZSBjdXJzb3Igb24gbW9iaWxlIHdoaWxzdCBtYWludGFpbmluZyBcInNjcm9sbCBpbnRvIHZpZXdcIiBiZWhhdmlvdXJcbiAgICAgICAgbGVmdDogLTEwMCxcbiAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKDApJyxcbiAgICAgIH19XG4gICAgLz5cbiAgKTtcbn1cbiJdfQ== */\")\n }));\n}\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _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\nvar NodeResolver = /*#__PURE__*/function (_Component) {\n _inherits(NodeResolver, _Component);\n\n var _super = _createSuper(NodeResolver);\n\n function NodeResolver() {\n _classCallCheck(this, NodeResolver);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(NodeResolver, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.props.innerRef(findDOMNode(this));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.props.innerRef(null);\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n\n return NodeResolver;\n}(Component);\n\nvar STYLE_KEYS = ['boxSizing', 'height', 'overflow', 'paddingRight', 'position'];\nvar LOCK_STYLES = {\n boxSizing: 'border-box',\n // account for possible declaration `width: 100%;` on body\n overflow: 'hidden',\n position: 'relative',\n height: '100%'\n};\n\nfunction preventTouchMove(e) {\n e.preventDefault();\n}\nfunction allowTouchMove(e) {\n e.stopPropagation();\n}\nfunction preventInertiaScroll() {\n var top = this.scrollTop;\n var totalScroll = this.scrollHeight;\n var currentScroll = top + this.offsetHeight;\n\n if (top === 0) {\n this.scrollTop = 1;\n } else if (currentScroll === totalScroll) {\n this.scrollTop = top - 1;\n }\n} // `ontouchstart` check works on most browsers\n// `maxTouchPoints` works on IE10/11 and Surface\n\nfunction isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints;\n}\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { 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; } }\nvar canUseDOM = !!( window.document && window.document.createElement);\nvar activeScrollLocks = 0;\n\nvar ScrollLock = /*#__PURE__*/function (_Component) {\n _inherits(ScrollLock, _Component);\n\n var _super = _createSuper$1(ScrollLock);\n\n function ScrollLock() {\n var _this;\n\n _classCallCheck(this, ScrollLock);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.originalStyles = {};\n _this.listenerOptions = {\n capture: false,\n passive: false\n };\n return _this;\n }\n\n _createClass(ScrollLock, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n if (!canUseDOM) return;\n var _this$props = this.props,\n accountForScrollbars = _this$props.accountForScrollbars,\n touchScrollTarget = _this$props.touchScrollTarget;\n var target = document.body;\n var targetStyle = target && target.style;\n\n if (accountForScrollbars) {\n // store any styles already applied to the body\n STYLE_KEYS.forEach(function (key) {\n var val = targetStyle && targetStyle[key];\n _this2.originalStyles[key] = val;\n });\n } // apply the lock styles and padding if this is the first scroll lock\n\n\n if (accountForScrollbars && activeScrollLocks < 1) {\n var currentPadding = parseInt(this.originalStyles.paddingRight, 10) || 0;\n var clientWidth = document.body ? document.body.clientWidth : 0;\n var adjustedPadding = window.innerWidth - clientWidth + currentPadding || 0;\n Object.keys(LOCK_STYLES).forEach(function (key) {\n var val = LOCK_STYLES[key];\n\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n\n if (targetStyle) {\n targetStyle.paddingRight = \"\".concat(adjustedPadding, \"px\");\n }\n } // account for touch devices\n\n\n if (target && isTouchDevice()) {\n // Mobile Safari ignores { overflow: hidden } declaration on the body.\n target.addEventListener('touchmove', preventTouchMove, this.listenerOptions); // Allow scroll on provided target\n\n if (touchScrollTarget) {\n touchScrollTarget.addEventListener('touchstart', preventInertiaScroll, this.listenerOptions);\n touchScrollTarget.addEventListener('touchmove', allowTouchMove, this.listenerOptions);\n }\n } // increment active scroll locks\n\n\n activeScrollLocks += 1;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var _this3 = this;\n\n if (!canUseDOM) return;\n var _this$props2 = this.props,\n accountForScrollbars = _this$props2.accountForScrollbars,\n touchScrollTarget = _this$props2.touchScrollTarget;\n var target = document.body;\n var targetStyle = target && target.style; // safely decrement active scroll locks\n\n activeScrollLocks = Math.max(activeScrollLocks - 1, 0); // reapply original body styles, if any\n\n if (accountForScrollbars && activeScrollLocks < 1) {\n STYLE_KEYS.forEach(function (key) {\n var val = _this3.originalStyles[key];\n\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n } // remove touch listeners\n\n\n if (target && isTouchDevice()) {\n target.removeEventListener('touchmove', preventTouchMove, this.listenerOptions);\n\n if (touchScrollTarget) {\n touchScrollTarget.removeEventListener('touchstart', preventInertiaScroll, this.listenerOptions);\n touchScrollTarget.removeEventListener('touchmove', allowTouchMove, this.listenerOptions);\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return ScrollLock;\n}(Component);\n\nScrollLock.defaultProps = {\n accountForScrollbars: true\n};\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__$1() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { 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\nvar _ref$1 = process.env.NODE_ENV === \"production\" ? {\n name: \"1dsbpcp\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0;\"\n} : {\n name: \"1dsbpcp\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNjcm9sbEJsb2NrLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZEVSIsImZpbGUiOiJTY3JvbGxCbG9jay5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBmbG93XG4vKiogQGpzeCBqc3ggKi9cbmltcG9ydCB7IFB1cmVDb21wb25lbnQsIHR5cGUgRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ0BlbW90aW9uL2NvcmUnO1xuaW1wb3J0IE5vZGVSZXNvbHZlciBmcm9tICcuL05vZGVSZXNvbHZlcic7XG5pbXBvcnQgU2Nyb2xsTG9jayBmcm9tICcuL1Njcm9sbExvY2svaW5kZXgnO1xuXG50eXBlIFByb3BzID0ge1xuICBjaGlsZHJlbjogRWxlbWVudDwqPixcbiAgaXNFbmFibGVkOiBib29sZWFuLFxufTtcbnR5cGUgU3RhdGUgPSB7XG4gIHRvdWNoU2Nyb2xsVGFyZ2V0OiBIVE1MRWxlbWVudCB8IG51bGwsXG59O1xuXG4vLyBOT1RFOlxuLy8gV2Ugc2hvdWxkbid0IG5lZWQgdGhpcyBhZnRlciB1cGRhdGluZyB0byBSZWFjdCB2MTYuMy4wLCB3aGljaCBpbnRyb2R1Y2VzOlxuLy8gLSBjcmVhdGVSZWYoKSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjcmVhY3RjcmVhdGVyZWZcbi8vIC0gZm9yd2FyZFJlZigpIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNyZWFjdGZvcndhcmRyZWZcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2Nyb2xsQmxvY2sgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PFByb3BzLCBTdGF0ZT4ge1xuICBzdGF0ZSA9IHsgdG91Y2hTY3JvbGxUYXJnZXQ6IG51bGwgfTtcblxuICAvLyBtdXN0IGJlIGluIHN0YXRlIHRvIHRyaWdnZXIgYSByZS1yZW5kZXIsIG9ubHkgcnVucyBvbmNlIHBlciBpbnN0YW5jZVxuICBnZXRTY3JvbGxUYXJnZXQgPSAocmVmOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgIGlmIChyZWYgPT09IHRoaXMuc3RhdGUudG91Y2hTY3JvbGxUYXJnZXQpIHJldHVybjtcbiAgICB0aGlzLnNldFN0YXRlKHsgdG91Y2hTY3JvbGxUYXJnZXQ6IHJlZiB9KTtcbiAgfTtcblxuICAvLyB0aGlzIHdpbGwgY2xvc2UgdGhlIG1lbnUgd2hlbiBhIHVzZXIgY2xpY2tzIG91dHNpZGVcbiAgYmx1clNlbGVjdElucHV0ID0gKCkgPT4ge1xuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB7XG4gICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4sIGlzRW5hYmxlZCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHRvdWNoU2Nyb2xsVGFyZ2V0IH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgLy8gYmFpbCBlYXJseSBpZiBub3QgZW5hYmxlZFxuICAgIGlmICghaXNFbmFibGVkKSByZXR1cm4gY2hpbGRyZW47XG5cbiAgICAvKlxuICAgICAqIERpdlxuICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAqIGJsb2NrcyBzY3JvbGxpbmcgb24gbm9uLWJvZHkgZWxlbWVudHMgYmVoaW5kIHRoZSBtZW51XG5cbiAgICAgKiBOb2RlUmVzb2x2ZXJcbiAgICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgKiB3ZSBuZWVkIGEgcmVmZXJlbmNlIHRvIHRoZSBzY3JvbGxhYmxlIGVsZW1lbnQgdG8gXCJ1bmxvY2tcIiBzY3JvbGwgb25cbiAgICAgKiBtb2JpbGUgZGV2aWNlc1xuXG4gICAgICogU2Nyb2xsTG9ja1xuICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAqIGFjdHVhbGx5IGRvZXMgdGhlIHNjcm9sbCBsb2NraW5nXG4gICAgICovXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBvbkNsaWNrPXt0aGlzLmJsdXJTZWxlY3RJbnB1dH1cbiAgICAgICAgICBjc3M9e3sgcG9zaXRpb246ICdmaXhlZCcsIGxlZnQ6IDAsIGJvdHRvbTogMCwgcmlnaHQ6IDAsIHRvcDogMCB9fVxuICAgICAgICAvPlxuICAgICAgICA8Tm9kZVJlc29sdmVyIGlubmVyUmVmPXt0aGlzLmdldFNjcm9sbFRhcmdldH0+e2NoaWxkcmVufTwvTm9kZVJlc29sdmVyPlxuICAgICAgICB7dG91Y2hTY3JvbGxUYXJnZXQgPyAoXG4gICAgICAgICAgPFNjcm9sbExvY2sgdG91Y2hTY3JvbGxUYXJnZXQ9e3RvdWNoU2Nyb2xsVGFyZ2V0fSAvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cbiJdfQ== */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1\n};\n\n// NOTE:\n// We shouldn't need this after updating to React v16.3.0, which introduces:\n// - createRef() https://reactjs.org/docs/react-api.html#reactcreateref\n// - forwardRef() https://reactjs.org/docs/react-api.html#reactforwardref\nvar ScrollBlock = /*#__PURE__*/function (_PureComponent) {\n _inherits(ScrollBlock, _PureComponent);\n\n var _super = _createSuper$2(ScrollBlock);\n\n function ScrollBlock() {\n var _this;\n\n _classCallCheck(this, ScrollBlock);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n touchScrollTarget: null\n };\n\n _this.getScrollTarget = function (ref) {\n if (ref === _this.state.touchScrollTarget) return;\n\n _this.setState({\n touchScrollTarget: ref\n });\n };\n\n _this.blurSelectInput = function () {\n if (document.activeElement) {\n document.activeElement.blur();\n }\n };\n\n return _this;\n }\n\n _createClass(ScrollBlock, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n children = _this$props.children,\n isEnabled = _this$props.isEnabled;\n var touchScrollTarget = this.state.touchScrollTarget; // bail early if not enabled\n\n if (!isEnabled) return children;\n /*\n * Div\n * ------------------------------\n * blocks scrolling on non-body elements behind the menu\n * NodeResolver\n * ------------------------------\n * we need a reference to the scrollable element to \"unlock\" scroll on\n * mobile devices\n * ScrollLock\n * ------------------------------\n * actually does the scroll locking\n */\n\n return jsx(\"div\", null, jsx(\"div\", {\n onClick: this.blurSelectInput,\n css: _ref$1\n }), jsx(NodeResolver, {\n innerRef: this.getScrollTarget\n }, children), touchScrollTarget ? jsx(ScrollLock, {\n touchScrollTarget: touchScrollTarget\n }) : null);\n }\n }]);\n\n return ScrollBlock;\n}(PureComponent);\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$3() { 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\nvar ScrollCaptor = /*#__PURE__*/function (_Component) {\n _inherits(ScrollCaptor, _Component);\n\n var _super = _createSuper$3(ScrollCaptor);\n\n function ScrollCaptor() {\n var _this;\n\n _classCallCheck(this, ScrollCaptor);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.isBottom = false;\n _this.isTop = false;\n _this.scrollTarget = void 0;\n _this.touchStart = void 0;\n\n _this.cancelScroll = function (event) {\n event.preventDefault();\n event.stopPropagation();\n };\n\n _this.handleEventDelta = function (event, delta) {\n var _this$props = _this.props,\n onBottomArrive = _this$props.onBottomArrive,\n onBottomLeave = _this$props.onBottomLeave,\n onTopArrive = _this$props.onTopArrive,\n onTopLeave = _this$props.onTopLeave;\n var _this$scrollTarget = _this.scrollTarget,\n scrollTop = _this$scrollTarget.scrollTop,\n scrollHeight = _this$scrollTarget.scrollHeight,\n clientHeight = _this$scrollTarget.clientHeight;\n var target = _this.scrollTarget;\n var isDeltaPositive = delta > 0;\n var availableScroll = scrollHeight - clientHeight - scrollTop;\n var shouldCancelScroll = false; // reset bottom/top flags\n\n if (availableScroll > delta && _this.isBottom) {\n if (onBottomLeave) onBottomLeave(event);\n _this.isBottom = false;\n }\n\n if (isDeltaPositive && _this.isTop) {\n if (onTopLeave) onTopLeave(event);\n _this.isTop = false;\n } // bottom limit\n\n\n if (isDeltaPositive && delta > availableScroll) {\n if (onBottomArrive && !_this.isBottom) {\n onBottomArrive(event);\n }\n\n target.scrollTop = scrollHeight;\n shouldCancelScroll = true;\n _this.isBottom = true; // top limit\n } else if (!isDeltaPositive && -delta > scrollTop) {\n if (onTopArrive && !_this.isTop) {\n onTopArrive(event);\n }\n\n target.scrollTop = 0;\n shouldCancelScroll = true;\n _this.isTop = true;\n } // cancel scroll\n\n\n if (shouldCancelScroll) {\n _this.cancelScroll(event);\n }\n };\n\n _this.onWheel = function (event) {\n _this.handleEventDelta(event, event.deltaY);\n };\n\n _this.onTouchStart = function (event) {\n // set touch start so we can calculate touchmove delta\n _this.touchStart = event.changedTouches[0].clientY;\n };\n\n _this.onTouchMove = function (event) {\n var deltaY = _this.touchStart - event.changedTouches[0].clientY;\n\n _this.handleEventDelta(event, deltaY);\n };\n\n _this.getScrollTarget = function (ref) {\n _this.scrollTarget = ref;\n };\n\n return _this;\n }\n\n _createClass(ScrollCaptor, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startListening(this.scrollTarget);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.stopListening(this.scrollTarget);\n }\n }, {\n key: \"startListening\",\n value: function startListening(el) {\n // bail early if no element is available to attach to\n if (!el) return; // all the if statements are to appease Flow 😢\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('wheel', this.onWheel, false);\n }\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('touchstart', this.onTouchStart, false);\n }\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('touchmove', this.onTouchMove, false);\n }\n }\n }, {\n key: \"stopListening\",\n value: function stopListening(el) {\n // all the if statements are to appease Flow 😢\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('wheel', this.onWheel, false);\n }\n\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchstart', this.onTouchStart, false);\n }\n\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchmove', this.onTouchMove, false);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(NodeResolver, {\n innerRef: this.getScrollTarget\n }, this.props.children);\n }\n }]);\n\n return ScrollCaptor;\n}(Component);\n\nfunction ScrollCaptorSwitch(_ref) {\n var _ref$isEnabled = _ref.isEnabled,\n isEnabled = _ref$isEnabled === void 0 ? true : _ref$isEnabled,\n props = _objectWithoutProperties(_ref, [\"isEnabled\"]);\n\n return isEnabled ? /*#__PURE__*/React.createElement(ScrollCaptor, props) : props.children;\n}\n\nvar instructionsAriaMessage = function instructionsAriaMessage(event) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var isSearchable = context.isSearchable,\n isMulti = context.isMulti,\n label = context.label,\n isDisabled = context.isDisabled;\n\n switch (event) {\n case 'menu':\n return \"Use Up and Down to choose options\".concat(isDisabled ? '' : ', press Enter to select the currently focused option', \", press Escape to exit the menu, press Tab to select the option and exit the menu.\");\n\n case 'input':\n return \"\".concat(label ? label : 'Select', \" is focused \").concat(isSearchable ? ',type to refine list' : '', \", press Down to open the menu, \").concat(isMulti ? ' press left to focus selected values' : '');\n\n case 'value':\n return 'Use left and right to toggle between focused values, press Backspace to remove the currently focused value';\n }\n};\nvar valueEventAriaMessage = function valueEventAriaMessage(event, context) {\n var value = context.value,\n isDisabled = context.isDisabled;\n if (!value) return;\n\n switch (event) {\n case 'deselect-option':\n case 'pop-value':\n case 'remove-value':\n return \"option \".concat(value, \", deselected.\");\n\n case 'select-option':\n return isDisabled ? \"option \".concat(value, \" is disabled. Select another option.\") : \"option \".concat(value, \", selected.\");\n }\n};\nvar valueFocusAriaMessage = function valueFocusAriaMessage(_ref) {\n var focusedValue = _ref.focusedValue,\n getOptionLabel = _ref.getOptionLabel,\n selectValue = _ref.selectValue;\n return \"value \".concat(getOptionLabel(focusedValue), \" focused, \").concat(selectValue.indexOf(focusedValue) + 1, \" of \").concat(selectValue.length, \".\");\n};\nvar optionFocusAriaMessage = function optionFocusAriaMessage(_ref2) {\n var focusedOption = _ref2.focusedOption,\n getOptionLabel = _ref2.getOptionLabel,\n options = _ref2.options;\n return \"option \".concat(getOptionLabel(focusedOption), \" focused\").concat(focusedOption.isDisabled ? ' disabled' : '', \", \").concat(options.indexOf(focusedOption) + 1, \" of \").concat(options.length, \".\");\n};\nvar resultsAriaMessage = function resultsAriaMessage(_ref3) {\n var inputValue = _ref3.inputValue,\n screenReaderMessage = _ref3.screenReaderMessage;\n return \"\".concat(screenReaderMessage).concat(inputValue ? ' for search term ' + inputValue : '', \".\");\n};\n\nvar formatGroupLabel = function formatGroupLabel(group) {\n return group.label;\n};\nvar getOptionLabel = function getOptionLabel(option) {\n return option.label;\n};\nvar getOptionValue = function getOptionValue(option) {\n return option.value;\n};\nvar isOptionDisabled = function isOptionDisabled(option) {\n return !!option.isDisabled;\n};\n\nfunction ownKeys$1(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$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar defaultStyles = {\n clearIndicator: clearIndicatorCSS,\n container: containerCSS,\n control: css,\n dropdownIndicator: dropdownIndicatorCSS,\n group: groupCSS,\n groupHeading: groupHeadingCSS,\n indicatorsContainer: indicatorsContainerCSS,\n indicatorSeparator: indicatorSeparatorCSS,\n input: inputCSS,\n loadingIndicator: loadingIndicatorCSS,\n loadingMessage: loadingMessageCSS,\n menu: menuCSS,\n menuList: menuListCSS,\n menuPortal: menuPortalCSS,\n multiValue: multiValueCSS,\n multiValueLabel: multiValueLabelCSS,\n multiValueRemove: multiValueRemoveCSS,\n noOptionsMessage: noOptionsMessageCSS,\n option: optionCSS,\n placeholder: placeholderCSS,\n singleValue: css$1,\n valueContainer: valueContainerCSS\n}; // Merge Utility\n// Allows consumers to extend a base Select with additional styles\n\nfunction mergeStyles(source) {\n var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // initialize with source styles\n var styles = _objectSpread$1({}, source); // massage in target styles\n\n\n Object.keys(target).forEach(function (key) {\n if (source[key]) {\n styles[key] = function (rsCss, props) {\n return target[key](source[key](rsCss, props), props);\n };\n } else {\n styles[key] = target[key];\n }\n });\n return styles;\n}\n\nvar colors = {\n primary: '#2684FF',\n primary75: '#4C9AFF',\n primary50: '#B2D4FF',\n primary25: '#DEEBFF',\n danger: '#DE350B',\n dangerLight: '#FFBDAD',\n neutral0: 'hsl(0, 0%, 100%)',\n neutral5: 'hsl(0, 0%, 95%)',\n neutral10: 'hsl(0, 0%, 90%)',\n neutral20: 'hsl(0, 0%, 80%)',\n neutral30: 'hsl(0, 0%, 70%)',\n neutral40: 'hsl(0, 0%, 60%)',\n neutral50: 'hsl(0, 0%, 50%)',\n neutral60: 'hsl(0, 0%, 40%)',\n neutral70: 'hsl(0, 0%, 30%)',\n neutral80: 'hsl(0, 0%, 20%)',\n neutral90: 'hsl(0, 0%, 10%)'\n};\nvar borderRadius = 4; // Used to calculate consistent margin/padding on elements\n\nvar baseUnit = 4; // The minimum height of the control\n\nvar controlHeight = 38; // The amount of space between the control and menu */\n\nvar menuGutter = baseUnit * 2;\nvar spacing = {\n baseUnit: baseUnit,\n controlHeight: controlHeight,\n menuGutter: menuGutter\n};\nvar defaultTheme = {\n borderRadius: borderRadius,\n colors: colors,\n spacing: spacing\n};\n\nfunction ownKeys$2(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$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$4(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$4(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$4() { 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; } }\nvar defaultProps = {\n backspaceRemovesValue: true,\n blurInputOnSelect: isTouchCapable(),\n captureMenuScroll: !isTouchCapable(),\n closeMenuOnSelect: true,\n closeMenuOnScroll: false,\n components: {},\n controlShouldRenderValue: true,\n escapeClearsValue: false,\n filterOption: createFilter(),\n formatGroupLabel: formatGroupLabel,\n getOptionLabel: getOptionLabel,\n getOptionValue: getOptionValue,\n isDisabled: false,\n isLoading: false,\n isMulti: false,\n isRtl: false,\n isSearchable: true,\n isOptionDisabled: isOptionDisabled,\n loadingMessage: function loadingMessage() {\n return 'Loading...';\n },\n maxMenuHeight: 300,\n minMenuHeight: 140,\n menuIsOpen: false,\n menuPlacement: 'bottom',\n menuPosition: 'absolute',\n menuShouldBlockScroll: false,\n menuShouldScrollIntoView: !isMobileDevice(),\n noOptionsMessage: function noOptionsMessage() {\n return 'No options';\n },\n openMenuOnFocus: false,\n openMenuOnClick: true,\n options: [],\n pageSize: 5,\n placeholder: 'Select...',\n screenReaderStatus: function screenReaderStatus(_ref) {\n var count = _ref.count;\n return \"\".concat(count, \" result\").concat(count !== 1 ? 's' : '', \" available\");\n },\n styles: {},\n tabIndex: '0',\n tabSelectsValue: true\n};\nvar instanceId = 1;\n\nvar Select = /*#__PURE__*/function (_Component) {\n _inherits(Select, _Component);\n\n var _super = _createSuper$4(Select);\n\n // Misc. Instance Properties\n // ------------------------------\n // TODO\n // Refs\n // ------------------------------\n // Lifecycle\n // ------------------------------\n function Select(_props) {\n var _this;\n\n _classCallCheck(this, Select);\n\n _this = _super.call(this, _props);\n _this.state = {\n ariaLiveSelection: '',\n ariaLiveContext: '',\n focusedOption: null,\n focusedValue: null,\n inputIsHidden: false,\n isFocused: false,\n menuOptions: {\n render: [],\n focusable: []\n },\n selectValue: []\n };\n _this.blockOptionHover = false;\n _this.isComposing = false;\n _this.clearFocusValueOnUpdate = false;\n _this.commonProps = void 0;\n _this.components = void 0;\n _this.hasGroups = false;\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n _this.inputIsHiddenAfterUpdate = void 0;\n _this.instancePrefix = '';\n _this.openAfterFocus = false;\n _this.scrollToFocusedOptionOnUpdate = false;\n _this.userIsDragging = void 0;\n _this.controlRef = null;\n\n _this.getControlRef = function (ref) {\n _this.controlRef = ref;\n };\n\n _this.focusedOptionRef = null;\n\n _this.getFocusedOptionRef = function (ref) {\n _this.focusedOptionRef = ref;\n };\n\n _this.menuListRef = null;\n\n _this.getMenuListRef = function (ref) {\n _this.menuListRef = ref;\n };\n\n _this.inputRef = null;\n\n _this.getInputRef = function (ref) {\n _this.inputRef = ref;\n };\n\n _this.cacheComponents = function (components) {\n _this.components = defaultComponents({\n components: components\n });\n };\n\n _this.focus = _this.focusInput;\n _this.blur = _this.blurInput;\n\n _this.onChange = function (newValue, actionMeta) {\n var _this$props = _this.props,\n onChange = _this$props.onChange,\n name = _this$props.name;\n onChange(newValue, _objectSpread$2(_objectSpread$2({}, actionMeta), {}, {\n name: name\n }));\n };\n\n _this.setValue = function (newValue) {\n var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'set-value';\n var option = arguments.length > 2 ? arguments[2] : undefined;\n var _this$props2 = _this.props,\n closeMenuOnSelect = _this$props2.closeMenuOnSelect,\n isMulti = _this$props2.isMulti;\n\n _this.onInputChange('', {\n action: 'set-value'\n });\n\n if (closeMenuOnSelect) {\n _this.inputIsHiddenAfterUpdate = !isMulti;\n\n _this.onMenuClose();\n } // when the select value should change, we should reset focusedValue\n\n\n _this.clearFocusValueOnUpdate = true;\n\n _this.onChange(newValue, {\n action: action,\n option: option\n });\n };\n\n _this.selectOption = function (newValue) {\n var _this$props3 = _this.props,\n blurInputOnSelect = _this$props3.blurInputOnSelect,\n isMulti = _this$props3.isMulti;\n var selectValue = _this.state.selectValue;\n\n if (isMulti) {\n if (_this.isOptionSelected(newValue, selectValue)) {\n var candidate = _this.getOptionValue(newValue);\n\n _this.setValue(selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n }), 'deselect-option', newValue);\n\n _this.announceAriaLiveSelection({\n event: 'deselect-option',\n context: {\n value: _this.getOptionLabel(newValue)\n }\n });\n } else {\n if (!_this.isOptionDisabled(newValue, selectValue)) {\n _this.setValue([].concat(_toConsumableArray(selectValue), [newValue]), 'select-option', newValue);\n\n _this.announceAriaLiveSelection({\n event: 'select-option',\n context: {\n value: _this.getOptionLabel(newValue)\n }\n });\n } else {\n // announce that option is disabled\n _this.announceAriaLiveSelection({\n event: 'select-option',\n context: {\n value: _this.getOptionLabel(newValue),\n isDisabled: true\n }\n });\n }\n }\n } else {\n if (!_this.isOptionDisabled(newValue, selectValue)) {\n _this.setValue(newValue, 'select-option');\n\n _this.announceAriaLiveSelection({\n event: 'select-option',\n context: {\n value: _this.getOptionLabel(newValue)\n }\n });\n } else {\n // announce that option is disabled\n _this.announceAriaLiveSelection({\n event: 'select-option',\n context: {\n value: _this.getOptionLabel(newValue),\n isDisabled: true\n }\n });\n }\n }\n\n if (blurInputOnSelect) {\n _this.blurInput();\n }\n };\n\n _this.removeValue = function (removedValue) {\n var selectValue = _this.state.selectValue;\n\n var candidate = _this.getOptionValue(removedValue);\n\n var newValue = selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n });\n\n _this.onChange(newValue.length ? newValue : null, {\n action: 'remove-value',\n removedValue: removedValue\n });\n\n _this.announceAriaLiveSelection({\n event: 'remove-value',\n context: {\n value: removedValue ? _this.getOptionLabel(removedValue) : ''\n }\n });\n\n _this.focusInput();\n };\n\n _this.clearValue = function () {\n var isMulti = _this.props.isMulti;\n\n _this.onChange(isMulti ? [] : null, {\n action: 'clear'\n });\n };\n\n _this.popValue = function () {\n var selectValue = _this.state.selectValue;\n var lastSelectedValue = selectValue[selectValue.length - 1];\n var newValue = selectValue.slice(0, selectValue.length - 1);\n\n _this.announceAriaLiveSelection({\n event: 'pop-value',\n context: {\n value: lastSelectedValue ? _this.getOptionLabel(lastSelectedValue) : ''\n }\n });\n\n _this.onChange(newValue.length ? newValue : null, {\n action: 'pop-value',\n removedValue: lastSelectedValue\n });\n };\n\n _this.getOptionLabel = function (data) {\n return _this.props.getOptionLabel(data);\n };\n\n _this.getOptionValue = function (data) {\n return _this.props.getOptionValue(data);\n };\n\n _this.getStyles = function (key, props) {\n var base = defaultStyles[key](props);\n base.boxSizing = 'border-box';\n var custom = _this.props.styles[key];\n return custom ? custom(base, props) : base;\n };\n\n _this.getElementId = function (element) {\n return \"\".concat(_this.instancePrefix, \"-\").concat(element);\n };\n\n _this.getActiveDescendentId = function () {\n var menuIsOpen = _this.props.menuIsOpen;\n var _this$state = _this.state,\n menuOptions = _this$state.menuOptions,\n focusedOption = _this$state.focusedOption;\n if (!focusedOption || !menuIsOpen) return undefined;\n var index = menuOptions.focusable.indexOf(focusedOption);\n var option = menuOptions.render[index];\n return option && option.key;\n };\n\n _this.announceAriaLiveSelection = function (_ref2) {\n var event = _ref2.event,\n context = _ref2.context;\n\n _this.setState({\n ariaLiveSelection: valueEventAriaMessage(event, context)\n });\n };\n\n _this.announceAriaLiveContext = function (_ref3) {\n var event = _ref3.event,\n context = _ref3.context;\n\n _this.setState({\n ariaLiveContext: instructionsAriaMessage(event, _objectSpread$2(_objectSpread$2({}, context), {}, {\n label: _this.props['aria-label']\n }))\n });\n };\n\n _this.onMenuMouseDown = function (event) {\n if (event.button !== 0) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n _this.focusInput();\n };\n\n _this.onMenuMouseMove = function (event) {\n _this.blockOptionHover = false;\n };\n\n _this.onControlMouseDown = function (event) {\n var openMenuOnClick = _this.props.openMenuOnClick;\n\n if (!_this.state.isFocused) {\n if (openMenuOnClick) {\n _this.openAfterFocus = true;\n }\n\n _this.focusInput();\n } else if (!_this.props.menuIsOpen) {\n if (openMenuOnClick) {\n _this.openMenu('first');\n }\n } else {\n if ( // $FlowFixMe\n event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n _this.onMenuClose();\n }\n }\n\n if ( // $FlowFixMe\n event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n event.preventDefault();\n }\n };\n\n _this.onDropdownIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n\n if (_this.props.isDisabled) return;\n var _this$props4 = _this.props,\n isMulti = _this$props4.isMulti,\n menuIsOpen = _this$props4.menuIsOpen;\n\n _this.focusInput();\n\n if (menuIsOpen) {\n _this.inputIsHiddenAfterUpdate = !isMulti;\n\n _this.onMenuClose();\n } else {\n _this.openMenu('first');\n }\n\n event.preventDefault();\n event.stopPropagation();\n };\n\n _this.onClearIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n\n _this.clearValue();\n\n event.stopPropagation();\n _this.openAfterFocus = false;\n\n if (event.type === 'touchend') {\n _this.focusInput();\n } else {\n setTimeout(function () {\n return _this.focusInput();\n });\n }\n };\n\n _this.onScroll = function (event) {\n if (typeof _this.props.closeMenuOnScroll === 'boolean') {\n if (event.target instanceof HTMLElement && isDocumentElement(event.target)) {\n _this.props.onMenuClose();\n }\n } else if (typeof _this.props.closeMenuOnScroll === 'function') {\n if (_this.props.closeMenuOnScroll(event)) {\n _this.props.onMenuClose();\n }\n }\n };\n\n _this.onCompositionStart = function () {\n _this.isComposing = true;\n };\n\n _this.onCompositionEnd = function () {\n _this.isComposing = false;\n };\n\n _this.onTouchStart = function (_ref4) {\n var touches = _ref4.touches;\n var touch = touches && touches.item(0);\n\n if (!touch) {\n return;\n }\n\n _this.initialTouchX = touch.clientX;\n _this.initialTouchY = touch.clientY;\n _this.userIsDragging = false;\n };\n\n _this.onTouchMove = function (_ref5) {\n var touches = _ref5.touches;\n var touch = touches && touches.item(0);\n\n if (!touch) {\n return;\n }\n\n var deltaX = Math.abs(touch.clientX - _this.initialTouchX);\n var deltaY = Math.abs(touch.clientY - _this.initialTouchY);\n var moveThreshold = 5;\n _this.userIsDragging = deltaX > moveThreshold || deltaY > moveThreshold;\n };\n\n _this.onTouchEnd = function (event) {\n if (_this.userIsDragging) return; // close the menu if the user taps outside\n // we're checking on event.target here instead of event.currentTarget, because we want to assert information\n // on events on child elements, not the document (which we've attached this handler to).\n\n if (_this.controlRef && !_this.controlRef.contains(event.target) && _this.menuListRef && !_this.menuListRef.contains(event.target)) {\n _this.blurInput();\n } // reset move vars\n\n\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n };\n\n _this.onControlTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onControlMouseDown(event);\n };\n\n _this.onClearIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onClearIndicatorMouseDown(event);\n };\n\n _this.onDropdownIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onDropdownIndicatorMouseDown(event);\n };\n\n _this.handleInputChange = function (event) {\n var inputValue = event.currentTarget.value;\n _this.inputIsHiddenAfterUpdate = false;\n\n _this.onInputChange(inputValue, {\n action: 'input-change'\n });\n\n if (!_this.props.menuIsOpen) {\n _this.onMenuOpen();\n }\n };\n\n _this.onInputFocus = function (event) {\n var _this$props5 = _this.props,\n isSearchable = _this$props5.isSearchable,\n isMulti = _this$props5.isMulti;\n\n if (_this.props.onFocus) {\n _this.props.onFocus(event);\n }\n\n _this.inputIsHiddenAfterUpdate = false;\n\n _this.announceAriaLiveContext({\n event: 'input',\n context: {\n isSearchable: isSearchable,\n isMulti: isMulti\n }\n });\n\n _this.setState({\n isFocused: true\n });\n\n if (_this.openAfterFocus || _this.props.openMenuOnFocus) {\n _this.openMenu('first');\n }\n\n _this.openAfterFocus = false;\n };\n\n _this.onInputBlur = function (event) {\n if (_this.menuListRef && _this.menuListRef.contains(document.activeElement)) {\n _this.inputRef.focus();\n\n return;\n }\n\n if (_this.props.onBlur) {\n _this.props.onBlur(event);\n }\n\n _this.onInputChange('', {\n action: 'input-blur'\n });\n\n _this.onMenuClose();\n\n _this.setState({\n focusedValue: null,\n isFocused: false\n });\n };\n\n _this.onOptionHover = function (focusedOption) {\n if (_this.blockOptionHover || _this.state.focusedOption === focusedOption) {\n return;\n }\n\n _this.setState({\n focusedOption: focusedOption\n });\n };\n\n _this.shouldHideSelectedOptions = function () {\n var _this$props6 = _this.props,\n hideSelectedOptions = _this$props6.hideSelectedOptions,\n isMulti = _this$props6.isMulti;\n if (hideSelectedOptions === undefined) return isMulti;\n return hideSelectedOptions;\n };\n\n _this.onKeyDown = function (event) {\n var _this$props7 = _this.props,\n isMulti = _this$props7.isMulti,\n backspaceRemovesValue = _this$props7.backspaceRemovesValue,\n escapeClearsValue = _this$props7.escapeClearsValue,\n inputValue = _this$props7.inputValue,\n isClearable = _this$props7.isClearable,\n isDisabled = _this$props7.isDisabled,\n menuIsOpen = _this$props7.menuIsOpen,\n onKeyDown = _this$props7.onKeyDown,\n tabSelectsValue = _this$props7.tabSelectsValue,\n openMenuOnFocus = _this$props7.openMenuOnFocus;\n var _this$state2 = _this.state,\n focusedOption = _this$state2.focusedOption,\n focusedValue = _this$state2.focusedValue,\n selectValue = _this$state2.selectValue;\n if (isDisabled) return;\n\n if (typeof onKeyDown === 'function') {\n onKeyDown(event);\n\n if (event.defaultPrevented) {\n return;\n }\n } // Block option hover events when the user has just pressed a key\n\n\n _this.blockOptionHover = true;\n\n switch (event.key) {\n case 'ArrowLeft':\n if (!isMulti || inputValue) return;\n\n _this.focusValue('previous');\n\n break;\n\n case 'ArrowRight':\n if (!isMulti || inputValue) return;\n\n _this.focusValue('next');\n\n break;\n\n case 'Delete':\n case 'Backspace':\n if (inputValue) return;\n\n if (focusedValue) {\n _this.removeValue(focusedValue);\n } else {\n if (!backspaceRemovesValue) return;\n\n if (isMulti) {\n _this.popValue();\n } else if (isClearable) {\n _this.clearValue();\n }\n }\n\n break;\n\n case 'Tab':\n if (_this.isComposing) return;\n\n if (event.shiftKey || !menuIsOpen || !tabSelectsValue || !focusedOption || // don't capture the event if the menu opens on focus and the focused\n // option is already selected; it breaks the flow of navigation\n openMenuOnFocus && _this.isOptionSelected(focusedOption, selectValue)) {\n return;\n }\n\n _this.selectOption(focusedOption);\n\n break;\n\n case 'Enter':\n if (event.keyCode === 229) {\n // ignore the keydown event from an Input Method Editor(IME)\n // ref. https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\n break;\n }\n\n if (menuIsOpen) {\n if (!focusedOption) return;\n if (_this.isComposing) return;\n\n _this.selectOption(focusedOption);\n\n break;\n }\n\n return;\n\n case 'Escape':\n if (menuIsOpen) {\n _this.inputIsHiddenAfterUpdate = false;\n\n _this.onInputChange('', {\n action: 'menu-close'\n });\n\n _this.onMenuClose();\n } else if (isClearable && escapeClearsValue) {\n _this.clearValue();\n }\n\n break;\n\n case ' ':\n // space\n if (inputValue) {\n return;\n }\n\n if (!menuIsOpen) {\n _this.openMenu('first');\n\n break;\n }\n\n if (!focusedOption) return;\n\n _this.selectOption(focusedOption);\n\n break;\n\n case 'ArrowUp':\n if (menuIsOpen) {\n _this.focusOption('up');\n } else {\n _this.openMenu('last');\n }\n\n break;\n\n case 'ArrowDown':\n if (menuIsOpen) {\n _this.focusOption('down');\n } else {\n _this.openMenu('first');\n }\n\n break;\n\n case 'PageUp':\n if (!menuIsOpen) return;\n\n _this.focusOption('pageup');\n\n break;\n\n case 'PageDown':\n if (!menuIsOpen) return;\n\n _this.focusOption('pagedown');\n\n break;\n\n case 'Home':\n if (!menuIsOpen) return;\n\n _this.focusOption('first');\n\n break;\n\n case 'End':\n if (!menuIsOpen) return;\n\n _this.focusOption('last');\n\n break;\n\n default:\n return;\n }\n\n event.preventDefault();\n };\n\n _this.buildMenuOptions = function (props, selectValue) {\n var _props$inputValue = props.inputValue,\n inputValue = _props$inputValue === void 0 ? '' : _props$inputValue,\n options = props.options;\n\n var toOption = function toOption(option, id) {\n var isDisabled = _this.isOptionDisabled(option, selectValue);\n\n var isSelected = _this.isOptionSelected(option, selectValue);\n\n var label = _this.getOptionLabel(option);\n\n var value = _this.getOptionValue(option);\n\n if (_this.shouldHideSelectedOptions() && isSelected || !_this.filterOption({\n label: label,\n value: value,\n data: option\n }, inputValue)) {\n return;\n }\n\n var onHover = isDisabled ? undefined : function () {\n return _this.onOptionHover(option);\n };\n var onSelect = isDisabled ? undefined : function () {\n return _this.selectOption(option);\n };\n var optionId = \"\".concat(_this.getElementId('option'), \"-\").concat(id);\n return {\n innerProps: {\n id: optionId,\n onClick: onSelect,\n onMouseMove: onHover,\n onMouseOver: onHover,\n tabIndex: -1\n },\n data: option,\n isDisabled: isDisabled,\n isSelected: isSelected,\n key: optionId,\n label: label,\n type: 'option',\n value: value\n };\n };\n\n return options.reduce(function (acc, item, itemIndex) {\n if (item.options) {\n // TODO needs a tidier implementation\n if (!_this.hasGroups) _this.hasGroups = true;\n var items = item.options;\n var children = items.map(function (child, i) {\n var option = toOption(child, \"\".concat(itemIndex, \"-\").concat(i));\n if (option) acc.focusable.push(child);\n return option;\n }).filter(Boolean);\n\n if (children.length) {\n var groupId = \"\".concat(_this.getElementId('group'), \"-\").concat(itemIndex);\n acc.render.push({\n type: 'group',\n key: groupId,\n data: item,\n options: children\n });\n }\n } else {\n var option = toOption(item, \"\".concat(itemIndex));\n\n if (option) {\n acc.render.push(option);\n acc.focusable.push(item);\n }\n }\n\n return acc;\n }, {\n render: [],\n focusable: []\n });\n };\n\n var _value = _props.value;\n _this.cacheComponents = memoizeOne(_this.cacheComponents, exportedEqual).bind(_assertThisInitialized(_this));\n\n _this.cacheComponents(_props.components);\n\n _this.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);\n\n var _selectValue = cleanValue(_value);\n\n _this.buildMenuOptions = memoizeOne(_this.buildMenuOptions, function (newArgs, lastArgs) {\n var _ref6 = newArgs,\n _ref7 = _slicedToArray(_ref6, 2),\n newProps = _ref7[0],\n newSelectValue = _ref7[1];\n\n var _ref8 = lastArgs,\n _ref9 = _slicedToArray(_ref8, 2),\n lastProps = _ref9[0],\n lastSelectValue = _ref9[1];\n\n return exportedEqual(newSelectValue, lastSelectValue) && exportedEqual(newProps.inputValue, lastProps.inputValue) && exportedEqual(newProps.options, lastProps.options);\n }).bind(_assertThisInitialized(_this));\n\n var _menuOptions = _props.menuIsOpen ? _this.buildMenuOptions(_props, _selectValue) : {\n render: [],\n focusable: []\n };\n\n _this.state.menuOptions = _menuOptions;\n _this.state.selectValue = _selectValue;\n return _this;\n }\n\n _createClass(Select, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startListeningComposition();\n this.startListeningToTouch();\n\n if (this.props.closeMenuOnScroll && document && document.addEventListener) {\n // Listen to all scroll events, and filter them out inside of 'onScroll'\n document.addEventListener('scroll', this.onScroll, true);\n }\n\n if (this.props.autoFocus) {\n this.focusInput();\n }\n }\n }, {\n key: \"UNSAFE_componentWillReceiveProps\",\n value: function UNSAFE_componentWillReceiveProps(nextProps) {\n var _this$props8 = this.props,\n options = _this$props8.options,\n value = _this$props8.value,\n menuIsOpen = _this$props8.menuIsOpen,\n inputValue = _this$props8.inputValue; // re-cache custom components\n\n this.cacheComponents(nextProps.components); // rebuild the menu options\n\n if (nextProps.value !== value || nextProps.options !== options || nextProps.menuIsOpen !== menuIsOpen || nextProps.inputValue !== inputValue) {\n var selectValue = cleanValue(nextProps.value);\n var menuOptions = nextProps.menuIsOpen ? this.buildMenuOptions(nextProps, selectValue) : {\n render: [],\n focusable: []\n };\n var focusedValue = this.getNextFocusedValue(selectValue);\n var focusedOption = this.getNextFocusedOption(menuOptions.focusable);\n this.setState({\n menuOptions: menuOptions,\n selectValue: selectValue,\n focusedOption: focusedOption,\n focusedValue: focusedValue\n });\n } // some updates should toggle the state of the input visibility\n\n\n if (this.inputIsHiddenAfterUpdate != null) {\n this.setState({\n inputIsHidden: this.inputIsHiddenAfterUpdate\n });\n delete this.inputIsHiddenAfterUpdate;\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props9 = this.props,\n isDisabled = _this$props9.isDisabled,\n menuIsOpen = _this$props9.menuIsOpen;\n var isFocused = this.state.isFocused;\n\n if ( // ensure focus is restored correctly when the control becomes enabled\n isFocused && !isDisabled && prevProps.isDisabled || // ensure focus is on the Input when the menu opens\n isFocused && menuIsOpen && !prevProps.menuIsOpen) {\n this.focusInput();\n } // scroll the focused option into view if necessary\n\n\n if (this.menuListRef && this.focusedOptionRef && this.scrollToFocusedOptionOnUpdate) {\n scrollIntoView(this.menuListRef, this.focusedOptionRef);\n this.scrollToFocusedOptionOnUpdate = false;\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.stopListeningComposition();\n this.stopListeningToTouch();\n document.removeEventListener('scroll', this.onScroll, true);\n }\n }, {\n key: \"onMenuOpen\",\n // ==============================\n // Consumer Handlers\n // ==============================\n value: function onMenuOpen() {\n this.props.onMenuOpen();\n }\n }, {\n key: \"onMenuClose\",\n value: function onMenuClose() {\n var _this$props10 = this.props,\n isSearchable = _this$props10.isSearchable,\n isMulti = _this$props10.isMulti;\n this.announceAriaLiveContext({\n event: 'input',\n context: {\n isSearchable: isSearchable,\n isMulti: isMulti\n }\n });\n this.onInputChange('', {\n action: 'menu-close'\n });\n this.props.onMenuClose();\n }\n }, {\n key: \"onInputChange\",\n value: function onInputChange(newValue, actionMeta) {\n this.props.onInputChange(newValue, actionMeta);\n } // ==============================\n // Methods\n // ==============================\n\n }, {\n key: \"focusInput\",\n value: function focusInput() {\n if (!this.inputRef) return;\n this.inputRef.focus();\n }\n }, {\n key: \"blurInput\",\n value: function blurInput() {\n if (!this.inputRef) return;\n this.inputRef.blur();\n } // aliased for consumers\n\n }, {\n key: \"openMenu\",\n value: function openMenu(focusOption) {\n var _this2 = this;\n\n var _this$state3 = this.state,\n selectValue = _this$state3.selectValue,\n isFocused = _this$state3.isFocused;\n var menuOptions = this.buildMenuOptions(this.props, selectValue);\n var isMulti = this.props.isMulti;\n var openAtIndex = focusOption === 'first' ? 0 : menuOptions.focusable.length - 1;\n\n if (!isMulti) {\n var selectedIndex = menuOptions.focusable.indexOf(selectValue[0]);\n\n if (selectedIndex > -1) {\n openAtIndex = selectedIndex;\n }\n } // only scroll if the menu isn't already open\n\n\n this.scrollToFocusedOptionOnUpdate = !(isFocused && this.menuListRef);\n this.inputIsHiddenAfterUpdate = false;\n this.setState({\n menuOptions: menuOptions,\n focusedValue: null,\n focusedOption: menuOptions.focusable[openAtIndex]\n }, function () {\n _this2.onMenuOpen();\n\n _this2.announceAriaLiveContext({\n event: 'menu'\n });\n });\n }\n }, {\n key: \"focusValue\",\n value: function focusValue(direction) {\n var _this$props11 = this.props,\n isMulti = _this$props11.isMulti,\n isSearchable = _this$props11.isSearchable;\n var _this$state4 = this.state,\n selectValue = _this$state4.selectValue,\n focusedValue = _this$state4.focusedValue; // Only multiselects support value focusing\n\n if (!isMulti) return;\n this.setState({\n focusedOption: null\n });\n var focusedIndex = selectValue.indexOf(focusedValue);\n\n if (!focusedValue) {\n focusedIndex = -1;\n this.announceAriaLiveContext({\n event: 'value'\n });\n }\n\n var lastIndex = selectValue.length - 1;\n var nextFocus = -1;\n if (!selectValue.length) return;\n\n switch (direction) {\n case 'previous':\n if (focusedIndex === 0) {\n // don't cycle from the start to the end\n nextFocus = 0;\n } else if (focusedIndex === -1) {\n // if nothing is focused, focus the last value first\n nextFocus = lastIndex;\n } else {\n nextFocus = focusedIndex - 1;\n }\n\n break;\n\n case 'next':\n if (focusedIndex > -1 && focusedIndex < lastIndex) {\n nextFocus = focusedIndex + 1;\n }\n\n break;\n }\n\n if (nextFocus === -1) {\n this.announceAriaLiveContext({\n event: 'input',\n context: {\n isSearchable: isSearchable,\n isMulti: isMulti\n }\n });\n }\n\n this.setState({\n inputIsHidden: nextFocus !== -1,\n focusedValue: selectValue[nextFocus]\n });\n }\n }, {\n key: \"focusOption\",\n value: function focusOption() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'first';\n var pageSize = this.props.pageSize;\n var _this$state5 = this.state,\n focusedOption = _this$state5.focusedOption,\n menuOptions = _this$state5.menuOptions;\n var options = menuOptions.focusable;\n if (!options.length) return;\n var nextFocus = 0; // handles 'first'\n\n var focusedIndex = options.indexOf(focusedOption);\n\n if (!focusedOption) {\n focusedIndex = -1;\n this.announceAriaLiveContext({\n event: 'menu'\n });\n }\n\n if (direction === 'up') {\n nextFocus = focusedIndex > 0 ? focusedIndex - 1 : options.length - 1;\n } else if (direction === 'down') {\n nextFocus = (focusedIndex + 1) % options.length;\n } else if (direction === 'pageup') {\n nextFocus = focusedIndex - pageSize;\n if (nextFocus < 0) nextFocus = 0;\n } else if (direction === 'pagedown') {\n nextFocus = focusedIndex + pageSize;\n if (nextFocus > options.length - 1) nextFocus = options.length - 1;\n } else if (direction === 'last') {\n nextFocus = options.length - 1;\n }\n\n this.scrollToFocusedOptionOnUpdate = true;\n this.setState({\n focusedOption: options[nextFocus],\n focusedValue: null\n });\n this.announceAriaLiveContext({\n event: 'menu',\n context: {\n isDisabled: isOptionDisabled(options[nextFocus])\n }\n });\n }\n }, {\n key: \"getTheme\",\n // ==============================\n // Getters\n // ==============================\n value: function getTheme() {\n // Use the default theme if there are no customizations.\n if (!this.props.theme) {\n return defaultTheme;\n } // If the theme prop is a function, assume the function\n // knows how to merge the passed-in default theme with\n // its own modifications.\n\n\n if (typeof this.props.theme === 'function') {\n return this.props.theme(defaultTheme);\n } // Otherwise, if a plain theme object was passed in,\n // overlay it with the default theme.\n\n\n return _objectSpread$2(_objectSpread$2({}, defaultTheme), this.props.theme);\n }\n }, {\n key: \"getCommonProps\",\n value: function getCommonProps() {\n var clearValue = this.clearValue,\n getStyles = this.getStyles,\n setValue = this.setValue,\n selectOption = this.selectOption,\n props = this.props;\n var classNamePrefix = props.classNamePrefix,\n isMulti = props.isMulti,\n isRtl = props.isRtl,\n options = props.options;\n var selectValue = this.state.selectValue;\n var hasValue = this.hasValue();\n\n var getValue = function getValue() {\n return selectValue;\n };\n\n var cx = classNames.bind(null, classNamePrefix);\n return {\n cx: cx,\n clearValue: clearValue,\n getStyles: getStyles,\n getValue: getValue,\n hasValue: hasValue,\n isMulti: isMulti,\n isRtl: isRtl,\n options: options,\n selectOption: selectOption,\n setValue: setValue,\n selectProps: props,\n theme: this.getTheme()\n };\n }\n }, {\n key: \"getNextFocusedValue\",\n value: function getNextFocusedValue(nextSelectValue) {\n if (this.clearFocusValueOnUpdate) {\n this.clearFocusValueOnUpdate = false;\n return null;\n }\n\n var _this$state6 = this.state,\n focusedValue = _this$state6.focusedValue,\n lastSelectValue = _this$state6.selectValue;\n var lastFocusedIndex = lastSelectValue.indexOf(focusedValue);\n\n if (lastFocusedIndex > -1) {\n var nextFocusedIndex = nextSelectValue.indexOf(focusedValue);\n\n if (nextFocusedIndex > -1) {\n // the focused value is still in the selectValue, return it\n return focusedValue;\n } else if (lastFocusedIndex < nextSelectValue.length) {\n // the focusedValue is not present in the next selectValue array by\n // reference, so return the new value at the same index\n return nextSelectValue[lastFocusedIndex];\n }\n }\n\n return null;\n }\n }, {\n key: \"getNextFocusedOption\",\n value: function getNextFocusedOption(options) {\n var lastFocusedOption = this.state.focusedOption;\n return lastFocusedOption && options.indexOf(lastFocusedOption) > -1 ? lastFocusedOption : options[0];\n }\n }, {\n key: \"hasValue\",\n value: function hasValue() {\n var selectValue = this.state.selectValue;\n return selectValue.length > 0;\n }\n }, {\n key: \"hasOptions\",\n value: function hasOptions() {\n return !!this.state.menuOptions.render.length;\n }\n }, {\n key: \"countOptions\",\n value: function countOptions() {\n return this.state.menuOptions.focusable.length;\n }\n }, {\n key: \"isClearable\",\n value: function isClearable() {\n var _this$props12 = this.props,\n isClearable = _this$props12.isClearable,\n isMulti = _this$props12.isMulti; // single select, by default, IS NOT clearable\n // multi select, by default, IS clearable\n\n if (isClearable === undefined) return isMulti;\n return isClearable;\n }\n }, {\n key: \"isOptionDisabled\",\n value: function isOptionDisabled(option, selectValue) {\n return typeof this.props.isOptionDisabled === 'function' ? this.props.isOptionDisabled(option, selectValue) : false;\n }\n }, {\n key: \"isOptionSelected\",\n value: function isOptionSelected(option, selectValue) {\n var _this3 = this;\n\n if (selectValue.indexOf(option) > -1) return true;\n\n if (typeof this.props.isOptionSelected === 'function') {\n return this.props.isOptionSelected(option, selectValue);\n }\n\n var candidate = this.getOptionValue(option);\n return selectValue.some(function (i) {\n return _this3.getOptionValue(i) === candidate;\n });\n }\n }, {\n key: \"filterOption\",\n value: function filterOption(option, inputValue) {\n return this.props.filterOption ? this.props.filterOption(option, inputValue) : true;\n }\n }, {\n key: \"formatOptionLabel\",\n value: function formatOptionLabel(data, context) {\n if (typeof this.props.formatOptionLabel === 'function') {\n var inputValue = this.props.inputValue;\n var selectValue = this.state.selectValue;\n return this.props.formatOptionLabel(data, {\n context: context,\n inputValue: inputValue,\n selectValue: selectValue\n });\n } else {\n return this.getOptionLabel(data);\n }\n }\n }, {\n key: \"formatGroupLabel\",\n value: function formatGroupLabel(data) {\n return this.props.formatGroupLabel(data);\n } // ==============================\n // Mouse Handlers\n // ==============================\n\n }, {\n key: \"startListeningComposition\",\n // ==============================\n // Composition Handlers\n // ==============================\n value: function startListeningComposition() {\n if (document && document.addEventListener) {\n document.addEventListener('compositionstart', this.onCompositionStart, false);\n document.addEventListener('compositionend', this.onCompositionEnd, false);\n }\n }\n }, {\n key: \"stopListeningComposition\",\n value: function stopListeningComposition() {\n if (document && document.removeEventListener) {\n document.removeEventListener('compositionstart', this.onCompositionStart);\n document.removeEventListener('compositionend', this.onCompositionEnd);\n }\n }\n }, {\n key: \"startListeningToTouch\",\n // ==============================\n // Touch Handlers\n // ==============================\n value: function startListeningToTouch() {\n if (document && document.addEventListener) {\n document.addEventListener('touchstart', this.onTouchStart, false);\n document.addEventListener('touchmove', this.onTouchMove, false);\n document.addEventListener('touchend', this.onTouchEnd, false);\n }\n }\n }, {\n key: \"stopListeningToTouch\",\n value: function stopListeningToTouch() {\n if (document && document.removeEventListener) {\n document.removeEventListener('touchstart', this.onTouchStart);\n document.removeEventListener('touchmove', this.onTouchMove);\n document.removeEventListener('touchend', this.onTouchEnd);\n }\n }\n }, {\n key: \"constructAriaLiveMessage\",\n // ==============================\n // Renderers\n // ==============================\n value: function constructAriaLiveMessage() {\n var _this$state7 = this.state,\n ariaLiveContext = _this$state7.ariaLiveContext,\n selectValue = _this$state7.selectValue,\n focusedValue = _this$state7.focusedValue,\n focusedOption = _this$state7.focusedOption;\n var _this$props13 = this.props,\n options = _this$props13.options,\n menuIsOpen = _this$props13.menuIsOpen,\n inputValue = _this$props13.inputValue,\n screenReaderStatus = _this$props13.screenReaderStatus; // An aria live message representing the currently focused value in the select.\n\n var focusedValueMsg = focusedValue ? valueFocusAriaMessage({\n focusedValue: focusedValue,\n getOptionLabel: this.getOptionLabel,\n selectValue: selectValue\n }) : ''; // An aria live message representing the currently focused option in the select.\n\n var focusedOptionMsg = focusedOption && menuIsOpen ? optionFocusAriaMessage({\n focusedOption: focusedOption,\n getOptionLabel: this.getOptionLabel,\n options: options\n }) : ''; // An aria live message representing the set of focusable results and current searchterm/inputvalue.\n\n var resultsMsg = resultsAriaMessage({\n inputValue: inputValue,\n screenReaderMessage: screenReaderStatus({\n count: this.countOptions()\n })\n });\n return \"\".concat(focusedValueMsg, \" \").concat(focusedOptionMsg, \" \").concat(resultsMsg, \" \").concat(ariaLiveContext);\n }\n }, {\n key: \"renderInput\",\n value: function renderInput() {\n var _this$props14 = this.props,\n isDisabled = _this$props14.isDisabled,\n isSearchable = _this$props14.isSearchable,\n inputId = _this$props14.inputId,\n inputValue = _this$props14.inputValue,\n tabIndex = _this$props14.tabIndex,\n form = _this$props14.form;\n var Input = this.components.Input;\n var inputIsHidden = this.state.inputIsHidden;\n var id = inputId || this.getElementId('input'); // aria attributes makes the JSX \"noisy\", separated for clarity\n\n var ariaAttributes = {\n 'aria-autocomplete': 'list',\n 'aria-label': this.props['aria-label'],\n 'aria-labelledby': this.props['aria-labelledby']\n };\n\n if (!isSearchable) {\n // use a dummy input to maintain focus/blur functionality\n return /*#__PURE__*/React.createElement(DummyInput, _extends({\n id: id,\n innerRef: this.getInputRef,\n onBlur: this.onInputBlur,\n onChange: noop,\n onFocus: this.onInputFocus,\n readOnly: true,\n disabled: isDisabled,\n tabIndex: tabIndex,\n form: form,\n value: \"\"\n }, ariaAttributes));\n }\n\n var _this$commonProps = this.commonProps,\n cx = _this$commonProps.cx,\n theme = _this$commonProps.theme,\n selectProps = _this$commonProps.selectProps;\n return /*#__PURE__*/React.createElement(Input, _extends({\n autoCapitalize: \"none\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\n cx: cx,\n getStyles: this.getStyles,\n id: id,\n innerRef: this.getInputRef,\n isDisabled: isDisabled,\n isHidden: inputIsHidden,\n onBlur: this.onInputBlur,\n onChange: this.handleInputChange,\n onFocus: this.onInputFocus,\n selectProps: selectProps,\n spellCheck: \"false\",\n tabIndex: tabIndex,\n form: form,\n theme: theme,\n type: \"text\",\n value: inputValue\n }, ariaAttributes));\n }\n }, {\n key: \"renderPlaceholderOrValue\",\n value: function renderPlaceholderOrValue() {\n var _this4 = this;\n\n var _this$components = this.components,\n MultiValue = _this$components.MultiValue,\n MultiValueContainer = _this$components.MultiValueContainer,\n MultiValueLabel = _this$components.MultiValueLabel,\n MultiValueRemove = _this$components.MultiValueRemove,\n SingleValue = _this$components.SingleValue,\n Placeholder = _this$components.Placeholder;\n var commonProps = this.commonProps;\n var _this$props15 = this.props,\n controlShouldRenderValue = _this$props15.controlShouldRenderValue,\n isDisabled = _this$props15.isDisabled,\n isMulti = _this$props15.isMulti,\n inputValue = _this$props15.inputValue,\n placeholder = _this$props15.placeholder;\n var _this$state8 = this.state,\n selectValue = _this$state8.selectValue,\n focusedValue = _this$state8.focusedValue,\n isFocused = _this$state8.isFocused;\n\n if (!this.hasValue() || !controlShouldRenderValue) {\n return inputValue ? null : /*#__PURE__*/React.createElement(Placeholder, _extends({}, commonProps, {\n key: \"placeholder\",\n isDisabled: isDisabled,\n isFocused: isFocused\n }), placeholder);\n }\n\n if (isMulti) {\n var selectValues = selectValue.map(function (opt, index) {\n var isOptionFocused = opt === focusedValue;\n return /*#__PURE__*/React.createElement(MultiValue, _extends({}, commonProps, {\n components: {\n Container: MultiValueContainer,\n Label: MultiValueLabel,\n Remove: MultiValueRemove\n },\n isFocused: isOptionFocused,\n isDisabled: isDisabled,\n key: _this4.getOptionValue(opt),\n index: index,\n removeProps: {\n onClick: function onClick() {\n return _this4.removeValue(opt);\n },\n onTouchEnd: function onTouchEnd() {\n return _this4.removeValue(opt);\n },\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n data: opt\n }), _this4.formatOptionLabel(opt, 'value'));\n });\n return selectValues;\n }\n\n if (inputValue) {\n return null;\n }\n\n var singleValue = selectValue[0];\n return /*#__PURE__*/React.createElement(SingleValue, _extends({}, commonProps, {\n data: singleValue,\n isDisabled: isDisabled\n }), this.formatOptionLabel(singleValue, 'value'));\n }\n }, {\n key: \"renderClearIndicator\",\n value: function renderClearIndicator() {\n var ClearIndicator = this.components.ClearIndicator;\n var commonProps = this.commonProps;\n var _this$props16 = this.props,\n isDisabled = _this$props16.isDisabled,\n isLoading = _this$props16.isLoading;\n var isFocused = this.state.isFocused;\n\n if (!this.isClearable() || !ClearIndicator || isDisabled || !this.hasValue() || isLoading) {\n return null;\n }\n\n var innerProps = {\n onMouseDown: this.onClearIndicatorMouseDown,\n onTouchEnd: this.onClearIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.createElement(ClearIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderLoadingIndicator\",\n value: function renderLoadingIndicator() {\n var LoadingIndicator = this.components.LoadingIndicator;\n var commonProps = this.commonProps;\n var _this$props17 = this.props,\n isDisabled = _this$props17.isDisabled,\n isLoading = _this$props17.isLoading;\n var isFocused = this.state.isFocused;\n if (!LoadingIndicator || !isLoading) return null;\n var innerProps = {\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.createElement(LoadingIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderIndicatorSeparator\",\n value: function renderIndicatorSeparator() {\n var _this$components2 = this.components,\n DropdownIndicator = _this$components2.DropdownIndicator,\n IndicatorSeparator = _this$components2.IndicatorSeparator; // separator doesn't make sense without the dropdown indicator\n\n if (!DropdownIndicator || !IndicatorSeparator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n return /*#__PURE__*/React.createElement(IndicatorSeparator, _extends({}, commonProps, {\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderDropdownIndicator\",\n value: function renderDropdownIndicator() {\n var DropdownIndicator = this.components.DropdownIndicator;\n if (!DropdownIndicator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n var innerProps = {\n onMouseDown: this.onDropdownIndicatorMouseDown,\n onTouchEnd: this.onDropdownIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.createElement(DropdownIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderMenu\",\n value: function renderMenu() {\n var _this5 = this;\n\n var _this$components3 = this.components,\n Group = _this$components3.Group,\n GroupHeading = _this$components3.GroupHeading,\n Menu = _this$components3.Menu,\n MenuList = _this$components3.MenuList,\n MenuPortal = _this$components3.MenuPortal,\n LoadingMessage = _this$components3.LoadingMessage,\n NoOptionsMessage = _this$components3.NoOptionsMessage,\n Option = _this$components3.Option;\n var commonProps = this.commonProps;\n var _this$state9 = this.state,\n focusedOption = _this$state9.focusedOption,\n menuOptions = _this$state9.menuOptions;\n var _this$props18 = this.props,\n captureMenuScroll = _this$props18.captureMenuScroll,\n inputValue = _this$props18.inputValue,\n isLoading = _this$props18.isLoading,\n loadingMessage = _this$props18.loadingMessage,\n minMenuHeight = _this$props18.minMenuHeight,\n maxMenuHeight = _this$props18.maxMenuHeight,\n menuIsOpen = _this$props18.menuIsOpen,\n menuPlacement = _this$props18.menuPlacement,\n menuPosition = _this$props18.menuPosition,\n menuPortalTarget = _this$props18.menuPortalTarget,\n menuShouldBlockScroll = _this$props18.menuShouldBlockScroll,\n menuShouldScrollIntoView = _this$props18.menuShouldScrollIntoView,\n noOptionsMessage = _this$props18.noOptionsMessage,\n onMenuScrollToTop = _this$props18.onMenuScrollToTop,\n onMenuScrollToBottom = _this$props18.onMenuScrollToBottom;\n if (!menuIsOpen) return null; // TODO: Internal Option Type here\n\n var render = function render(props) {\n // for performance, the menu options in state aren't changed when the\n // focused option changes so we calculate additional props based on that\n var isFocused = focusedOption === props.data;\n props.innerRef = isFocused ? _this5.getFocusedOptionRef : undefined;\n return /*#__PURE__*/React.createElement(Option, _extends({}, commonProps, props, {\n isFocused: isFocused\n }), _this5.formatOptionLabel(props.data, 'menu'));\n };\n\n var menuUI;\n\n if (this.hasOptions()) {\n menuUI = menuOptions.render.map(function (item) {\n if (item.type === 'group') {\n var type = item.type,\n group = _objectWithoutProperties(item, [\"type\"]);\n\n var headingId = \"\".concat(item.key, \"-heading\");\n return /*#__PURE__*/React.createElement(Group, _extends({}, commonProps, group, {\n Heading: GroupHeading,\n headingProps: {\n id: headingId\n },\n label: _this5.formatGroupLabel(item.data)\n }), item.options.map(function (option) {\n return render(option);\n }));\n } else if (item.type === 'option') {\n return render(item);\n }\n });\n } else if (isLoading) {\n var message = loadingMessage({\n inputValue: inputValue\n });\n if (message === null) return null;\n menuUI = /*#__PURE__*/React.createElement(LoadingMessage, commonProps, message);\n } else {\n var _message = noOptionsMessage({\n inputValue: inputValue\n });\n\n if (_message === null) return null;\n menuUI = /*#__PURE__*/React.createElement(NoOptionsMessage, commonProps, _message);\n }\n\n var menuPlacementProps = {\n minMenuHeight: minMenuHeight,\n maxMenuHeight: maxMenuHeight,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition,\n menuShouldScrollIntoView: menuShouldScrollIntoView\n };\n var menuElement = /*#__PURE__*/React.createElement(MenuPlacer, _extends({}, commonProps, menuPlacementProps), function (_ref10) {\n var ref = _ref10.ref,\n _ref10$placerProps = _ref10.placerProps,\n placement = _ref10$placerProps.placement,\n maxHeight = _ref10$placerProps.maxHeight;\n return /*#__PURE__*/React.createElement(Menu, _extends({}, commonProps, menuPlacementProps, {\n innerRef: ref,\n innerProps: {\n onMouseDown: _this5.onMenuMouseDown,\n onMouseMove: _this5.onMenuMouseMove\n },\n isLoading: isLoading,\n placement: placement\n }), /*#__PURE__*/React.createElement(ScrollCaptorSwitch, {\n isEnabled: captureMenuScroll,\n onTopArrive: onMenuScrollToTop,\n onBottomArrive: onMenuScrollToBottom\n }, /*#__PURE__*/React.createElement(ScrollBlock, {\n isEnabled: menuShouldBlockScroll\n }, /*#__PURE__*/React.createElement(MenuList, _extends({}, commonProps, {\n innerRef: _this5.getMenuListRef,\n isLoading: isLoading,\n maxHeight: maxHeight\n }), menuUI))));\n }); // positioning behaviour is almost identical for portalled and fixed,\n // so we use the same component. the actual portalling logic is forked\n // within the component based on `menuPosition`\n\n return menuPortalTarget || menuPosition === 'fixed' ? /*#__PURE__*/React.createElement(MenuPortal, _extends({}, commonProps, {\n appendTo: menuPortalTarget,\n controlElement: this.controlRef,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition\n }), menuElement) : menuElement;\n }\n }, {\n key: \"renderFormField\",\n value: function renderFormField() {\n var _this6 = this;\n\n var _this$props19 = this.props,\n delimiter = _this$props19.delimiter,\n isDisabled = _this$props19.isDisabled,\n isMulti = _this$props19.isMulti,\n name = _this$props19.name;\n var selectValue = this.state.selectValue;\n if (!name || isDisabled) return;\n\n if (isMulti) {\n if (delimiter) {\n var value = selectValue.map(function (opt) {\n return _this6.getOptionValue(opt);\n }).join(delimiter);\n return /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: value\n });\n } else {\n var input = selectValue.length > 0 ? selectValue.map(function (opt, i) {\n return /*#__PURE__*/React.createElement(\"input\", {\n key: \"i-\".concat(i),\n name: name,\n type: \"hidden\",\n value: _this6.getOptionValue(opt)\n });\n }) : /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\"\n });\n return /*#__PURE__*/React.createElement(\"div\", null, input);\n }\n } else {\n var _value2 = selectValue[0] ? this.getOptionValue(selectValue[0]) : '';\n\n return /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: _value2\n });\n }\n }\n }, {\n key: \"renderLiveRegion\",\n value: function renderLiveRegion() {\n if (!this.state.isFocused) return null;\n return /*#__PURE__*/React.createElement(A11yText, {\n \"aria-live\": \"polite\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n id: \"aria-selection-event\"\n }, \"\\xA0\", this.state.ariaLiveSelection), /*#__PURE__*/React.createElement(\"span\", {\n id: \"aria-context\"\n }, \"\\xA0\", this.constructAriaLiveMessage()));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$components4 = this.components,\n Control = _this$components4.Control,\n IndicatorsContainer = _this$components4.IndicatorsContainer,\n SelectContainer = _this$components4.SelectContainer,\n ValueContainer = _this$components4.ValueContainer;\n var _this$props20 = this.props,\n className = _this$props20.className,\n id = _this$props20.id,\n isDisabled = _this$props20.isDisabled,\n menuIsOpen = _this$props20.menuIsOpen;\n var isFocused = this.state.isFocused;\n var commonProps = this.commonProps = this.getCommonProps();\n return /*#__PURE__*/React.createElement(SelectContainer, _extends({}, commonProps, {\n className: className,\n innerProps: {\n id: id,\n onKeyDown: this.onKeyDown\n },\n isDisabled: isDisabled,\n isFocused: isFocused\n }), this.renderLiveRegion(), /*#__PURE__*/React.createElement(Control, _extends({}, commonProps, {\n innerRef: this.getControlRef,\n innerProps: {\n onMouseDown: this.onControlMouseDown,\n onTouchEnd: this.onControlTouchEnd\n },\n isDisabled: isDisabled,\n isFocused: isFocused,\n menuIsOpen: menuIsOpen\n }), /*#__PURE__*/React.createElement(ValueContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderPlaceholderOrValue(), this.renderInput()), /*#__PURE__*/React.createElement(IndicatorsContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderClearIndicator(), this.renderLoadingIndicator(), this.renderIndicatorSeparator(), this.renderDropdownIndicator())), this.renderMenu(), this.renderFormField());\n }\n }]);\n\n return Select;\n}(Component);\n\nSelect.defaultProps = defaultProps;\n\nexport { Select as S, defaultTheme as a, createFilter as c, defaultProps as d, mergeStyles as m };\n","import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport React, { Component } from 'react';\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _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; } }\nvar defaultProps = {\n defaultInputValue: '',\n defaultMenuIsOpen: false,\n defaultValue: null\n};\n\nvar manageState = function manageState(SelectComponent) {\n var _class, _temp;\n\n return _temp = _class = /*#__PURE__*/function (_Component) {\n _inherits(StateManager, _Component);\n\n var _super = _createSuper(StateManager);\n\n function StateManager() {\n var _this;\n\n _classCallCheck(this, StateManager);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.select = void 0;\n _this.state = {\n inputValue: _this.props.inputValue !== undefined ? _this.props.inputValue : _this.props.defaultInputValue,\n menuIsOpen: _this.props.menuIsOpen !== undefined ? _this.props.menuIsOpen : _this.props.defaultMenuIsOpen,\n value: _this.props.value !== undefined ? _this.props.value : _this.props.defaultValue\n };\n\n _this.onChange = function (value, actionMeta) {\n _this.callProp('onChange', value, actionMeta);\n\n _this.setState({\n value: value\n });\n };\n\n _this.onInputChange = function (value, actionMeta) {\n // TODO: for backwards compatibility, we allow the prop to return a new\n // value, but now inputValue is a controllable prop we probably shouldn't\n var newValue = _this.callProp('onInputChange', value, actionMeta);\n\n _this.setState({\n inputValue: newValue !== undefined ? newValue : value\n });\n };\n\n _this.onMenuOpen = function () {\n _this.callProp('onMenuOpen');\n\n _this.setState({\n menuIsOpen: true\n });\n };\n\n _this.onMenuClose = function () {\n _this.callProp('onMenuClose');\n\n _this.setState({\n menuIsOpen: false\n });\n };\n\n return _this;\n }\n\n _createClass(StateManager, [{\n key: \"focus\",\n value: function focus() {\n this.select.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.select.blur();\n } // FIXME: untyped flow code, return any\n\n }, {\n key: \"getProp\",\n value: function getProp(key) {\n return this.props[key] !== undefined ? this.props[key] : this.state[key];\n } // FIXME: untyped flow code, return any\n\n }, {\n key: \"callProp\",\n value: function callProp(name) {\n if (typeof this.props[name] === 'function') {\n var _this$props;\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return (_this$props = this.props)[name].apply(_this$props, args);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n defaultInputValue = _this$props2.defaultInputValue,\n defaultMenuIsOpen = _this$props2.defaultMenuIsOpen,\n defaultValue = _this$props2.defaultValue,\n props = _objectWithoutProperties(_this$props2, [\"defaultInputValue\", \"defaultMenuIsOpen\", \"defaultValue\"]);\n\n return /*#__PURE__*/React.createElement(SelectComponent, _extends({}, props, {\n ref: function ref(_ref) {\n _this2.select = _ref;\n },\n inputValue: this.getProp('inputValue'),\n menuIsOpen: this.getProp('menuIsOpen'),\n onChange: this.onChange,\n onInputChange: this.onInputChange,\n onMenuClose: this.onMenuClose,\n onMenuOpen: this.onMenuOpen,\n value: this.getProp('value')\n }));\n }\n }]);\n\n return StateManager;\n }(Component), _class.defaultProps = defaultProps, _temp;\n};\n\nexport { manageState as m };\n","import '@babel/runtime/helpers/objectWithoutProperties';\nimport '@babel/runtime/helpers/extends';\nimport '@babel/runtime/helpers/slicedToArray';\nimport '@babel/runtime/helpers/toConsumableArray';\nimport '@babel/runtime/helpers/defineProperty';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport '@babel/runtime/helpers/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport React, { Component } from 'react';\nimport memoizeOne from 'memoize-one';\nimport { CacheProvider } from '@emotion/core';\nimport 'react-dom';\nimport '@babel/runtime/helpers/typeof';\nexport { F as components } from './index-4b37608a.browser.esm.js';\nimport { S as Select } from './Select-5d18b8d9.browser.esm.js';\nexport { c as createFilter, a as defaultTheme, m as mergeStyles } from './Select-5d18b8d9.browser.esm.js';\nimport '@emotion/css';\nimport '@babel/runtime/helpers/taggedTemplateLiteral';\nimport 'react-input-autosize';\nimport { m as manageState } from './stateManager-2f2b6f5b.browser.esm.js';\nimport createCache from '@emotion/cache';\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _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\nvar NonceProvider = /*#__PURE__*/function (_Component) {\n _inherits(NonceProvider, _Component);\n\n var _super = _createSuper(NonceProvider);\n\n function NonceProvider(props) {\n var _this;\n\n _classCallCheck(this, NonceProvider);\n\n _this = _super.call(this, props);\n\n _this.createEmotionCache = function (nonce) {\n return createCache({\n nonce: nonce\n });\n };\n\n _this.createEmotionCache = memoizeOne(_this.createEmotionCache);\n return _this;\n }\n\n _createClass(NonceProvider, [{\n key: \"render\",\n value: function render() {\n var emotionCache = this.createEmotionCache(this.props.nonce);\n return /*#__PURE__*/React.createElement(CacheProvider, {\n value: emotionCache\n }, this.props.children);\n }\n }]);\n\n return NonceProvider;\n}(Component);\n\nvar index = manageState(Select);\n\nexport default index;\nexport { NonceProvider };\n","var XWrap = /*#__PURE__*/function () {\n function XWrap(fn) {\n this.f = fn;\n }\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n\n return XWrap;\n}();\n\nexport default function _xwrap(fn) {\n return new XWrap(fn);\n}","import _arity from './internal/_arity.js';\nimport _curry2 from './internal/_curry2.js';\n\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\nvar bind = /*#__PURE__*/_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\nexport default bind;","import _isArrayLike from './_isArrayLike.js';\nimport _xwrap from './_xwrap.js';\nimport bind from '../bind.js';\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}","export default {\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n};","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\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 =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(attr|calc|counters?|url)\\(/;\n var contentValues = ['normal', 'none', 'counter', 'open-quote', 'close-quote', 'no-open-quote', 'no-close-quote', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n console.error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar shouldWarnAboutInterpolatingClassNameFromCss = true;\n\nfunction handleInterpolation(mergedProps, registered, interpolation, couldBeSelectorInterpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result, couldBeSelectorInterpolation);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n\n if (process.env.NODE_ENV !== 'production' && couldBeSelectorInterpolation && shouldWarnAboutInterpolatingClassNameFromCss && cached !== undefined) {\n console.error('Interpolating a className from css`` is not recommended and will cause problems with composition.\\n' + 'Interpolating a className from css`` will be completely unsupported in a future major version of Emotion');\n shouldWarnAboutInterpolatingClassNameFromCss = false;\n }\n\n return cached !== undefined && !couldBeSelectorInterpolation ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i], false);\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value, false);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*;/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings, false);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i], styles.charCodeAt(styles.length - 1) === 46);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","/**\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 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';\nimport { FetchResult } from 'apollo-link';\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: FetchResult;\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 { 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: FetchResult) {\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;\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!);\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: FetchResult,\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: FetchResult) => {\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 SDK_VERSION = '6.2.5';\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","module.exports = function(originalModule) {\n\tif (!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","// 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\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","import _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport * as React from 'react';\nimport createContext from 'create-react-context';\nexport var ManagerReferenceNodeContext = createContext();\nexport var ManagerReferenceNodeSetterContext = createContext();\n\nvar Manager =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Manager, _React$Component);\n\n function Manager() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"referenceNode\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"setReferenceNode\", function (newReferenceNode) {\n if (newReferenceNode && _this.referenceNode !== newReferenceNode) {\n _this.referenceNode = newReferenceNode;\n\n _this.forceUpdate();\n }\n });\n\n return _this;\n }\n\n var _proto = Manager.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.referenceNode = null;\n };\n\n _proto.render = function render() {\n return React.createElement(ManagerReferenceNodeContext.Provider, {\n value: this.referenceNode\n }, React.createElement(ManagerReferenceNodeSetterContext.Provider, {\n value: this.setReferenceNode\n }, this.props.children));\n };\n\n return Manager;\n}(React.Component);\n\nexport { Manager as default };","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inheritsLoose;","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * var result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","import { forEach, isCollection } from 'iterall';\nimport objectValues from '../polyfills/objectValues';\nimport inspect from '../jsutils/inspect';\nimport invariant from '../jsutils/invariant';\nimport isNullish from '../jsutils/isNullish';\nimport isInvalid from '../jsutils/isInvalid';\nimport isObjectLike from '../jsutils/isObjectLike';\nimport { Kind } from '../language/kinds';\nimport { GraphQLID } from '../type/scalars';\nimport { isLeafType, isEnumType, isInputObjectType, isListType, isNonNullType } from '../type/definition';\n/**\n * Produces a GraphQL Value AST given a JavaScript value.\n *\n * A GraphQL type must be provided, which will be used to interpret different\n * JavaScript values.\n *\n * | JSON Value | GraphQL Value |\n * | ------------- | -------------------- |\n * | Object | Input Object |\n * | Array | List |\n * | Boolean | Boolean |\n * | String | String / Enum Value |\n * | Number | Int / Float |\n * | Mixed | Enum Value |\n * | null | NullValue |\n *\n */\n\nexport function astFromValue(value, type) {\n if (isNonNullType(type)) {\n var astValue = astFromValue(value, type.ofType);\n\n if (astValue && astValue.kind === Kind.NULL) {\n return null;\n }\n\n return astValue;\n } // only explicit null, not undefined, NaN\n\n\n if (value === null) {\n return {\n kind: Kind.NULL\n };\n } // undefined, NaN\n\n\n if (isInvalid(value)) {\n return null;\n } // Convert JavaScript array to GraphQL list. If the GraphQLType is a list, but\n // the value is not an array, convert the value using the list's item type.\n\n\n if (isListType(type)) {\n var itemType = type.ofType;\n\n if (isCollection(value)) {\n var valuesNodes = [];\n forEach(value, function (item) {\n var itemNode = astFromValue(item, itemType);\n\n if (itemNode) {\n valuesNodes.push(itemNode);\n }\n });\n return {\n kind: Kind.LIST,\n values: valuesNodes\n };\n }\n\n return astFromValue(value, itemType);\n } // Populate the fields of the input object by creating ASTs from each value\n // in the JavaScript object according to the fields in the input type.\n\n\n if (isInputObjectType(type)) {\n if (!isObjectLike(value)) {\n return null;\n }\n\n var fieldNodes = [];\n\n for (var _i2 = 0, _objectValues2 = objectValues(type.getFields()); _i2 < _objectValues2.length; _i2++) {\n var field = _objectValues2[_i2];\n var fieldValue = astFromValue(value[field.name], field.type);\n\n if (fieldValue) {\n fieldNodes.push({\n kind: Kind.OBJECT_FIELD,\n name: {\n kind: Kind.NAME,\n value: field.name\n },\n value: fieldValue\n });\n }\n }\n\n return {\n kind: Kind.OBJECT,\n fields: fieldNodes\n };\n }\n\n /* istanbul ignore else */\n if (isLeafType(type)) {\n // Since value is an internally represented value, it must be serialized\n // to an externally represented value before converting into an AST.\n var serialized = type.serialize(value);\n\n if (isNullish(serialized)) {\n return null;\n } // Others serialize based on their corresponding JavaScript scalar types.\n\n\n if (typeof serialized === 'boolean') {\n return {\n kind: Kind.BOOLEAN,\n value: serialized\n };\n } // JavaScript numbers can be Int or Float values.\n\n\n if (typeof serialized === 'number') {\n var stringNum = String(serialized);\n return integerStringRegExp.test(stringNum) ? {\n kind: Kind.INT,\n value: stringNum\n } : {\n kind: Kind.FLOAT,\n value: stringNum\n };\n }\n\n if (typeof serialized === 'string') {\n // Enum types use Enum literals.\n if (isEnumType(type)) {\n return {\n kind: Kind.ENUM,\n value: serialized\n };\n } // ID types can use Int literals.\n\n\n if (type === GraphQLID && integerStringRegExp.test(serialized)) {\n return {\n kind: Kind.INT,\n value: serialized\n };\n }\n\n return {\n kind: Kind.STRING,\n value: serialized\n };\n }\n\n throw new TypeError(\"Cannot convert value to AST: \".concat(inspect(serialized)));\n } // Not reachable. All possible input types have been considered.\n\n\n /* istanbul ignore next */\n invariant(false, 'Unexpected input type: ' + inspect(type));\n}\n/**\n * IntValue:\n * - NegativeSign? 0\n * - NegativeSign? NonZeroDigit ( Digit+ )?\n */\n\nvar integerStringRegExp = /^-?(?:0|[1-9][0-9]*)$/;\n","import _has from './_has.js';\n\nvar toString = Object.prototype.toString;\nvar _isArguments = /*#__PURE__*/function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\n\nexport default _isArguments;","import _curry1 from './internal/_curry1.js';\nimport _has from './internal/_has.js';\nimport _isArguments from './internal/_isArguments.js';\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{ toString: null }.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? /*#__PURE__*/_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) : /*#__PURE__*/_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n});\nexport default keys;","import { isRegExp, isString } from './is';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nexport function truncate(str: string, max: number = 0): string {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.substr(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line: string, colno: number): string {\n let newLine = line;\n const ll = newLine.length;\n if (ll <= 150) {\n return newLine;\n }\n if (colno > ll) {\n // eslint-disable-next-line no-param-reassign\n colno = ll;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, ll);\n if (end > ll - 5) {\n end = ll;\n }\n if (end === ll) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < ll) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function safeJoin(input: any[], delimiter?: string): string {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n output.push(String(value));\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\nexport function isMatchingPattern(value: string, pattern: RegExp | string): boolean {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return (pattern as RegExp).test(value);\n }\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n return false;\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = false;\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\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","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","var defineProperty = require(\"./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\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(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}\n\nmodule.exports = _objectSpread2;","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","import _arity from './_arity.js';\nimport _isPlaceholder from './_isPlaceholder.js';\n\n/**\n * Internal curryN function.\n *\n * @private\n * @category Function\n * @param {Number} length The arity of the curried function.\n * @param {Array} received An array of arguments received thus far.\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curryN(length, received, fn) {\n return function () {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n if (combinedIdx < received.length && (!_isPlaceholder(received[combinedIdx]) || argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n combined[combinedIdx] = result;\n if (!_isPlaceholder(result)) {\n left -= 1;\n }\n combinedIdx += 1;\n }\n return left <= 0 ? fn.apply(this, combined) : _arity(left, _curryN(length, combined, fn));\n };\n}","export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\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 toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * var result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import _curry1 from './_curry1.js';\nimport _curry2 from './_curry2.js';\nimport _isPlaceholder from './_isPlaceholder.js';\n\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}","import find from '../polyfills/find';\nimport flatMap from '../polyfills/flatMap';\nimport objectValues from '../polyfills/objectValues';\nimport objectEntries from '../polyfills/objectEntries';\nimport inspect from '../jsutils/inspect';\nimport { GraphQLError } from '../error/GraphQLError';\nimport { isValidNameError } from '../utilities/assertValidName';\nimport { isEqualType, isTypeSubTypeOf } from '../utilities/typeComparators';\nimport { isDirective } from './directives';\nimport { isIntrospectionType } from './introspection';\nimport { assertSchema } from './schema';\nimport { isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isNamedType, isNonNullType, isInputType, isOutputType, isRequiredArgument } from './definition';\n/**\n * Implements the \"Type Validation\" sub-sections of the specification's\n * \"Type System\" section.\n *\n * Validation runs synchronously, returning an array of encountered errors, or\n * an empty array if no errors were encountered and the Schema is valid.\n */\n\nexport function validateSchema(schema) {\n // First check to ensure the provided value is in fact a GraphQLSchema.\n assertSchema(schema); // If this Schema has already been validated, return the previous results.\n\n if (schema.__validationErrors) {\n return schema.__validationErrors;\n } // Validate the schema, producing a list of errors.\n\n\n var context = new SchemaValidationContext(schema);\n validateRootTypes(context);\n validateDirectives(context);\n validateTypes(context); // Persist the results of validation before returning to ensure validation\n // does not run multiple times for this schema.\n\n var errors = context.getErrors();\n schema.__validationErrors = errors;\n return errors;\n}\n/**\n * Utility function which asserts a schema is valid by throwing an error if\n * it is invalid.\n */\n\nexport function assertValidSchema(schema) {\n var errors = validateSchema(schema);\n\n if (errors.length !== 0) {\n throw new Error(errors.map(function (error) {\n return error.message;\n }).join('\\n\\n'));\n }\n}\n\nvar SchemaValidationContext =\n/*#__PURE__*/\nfunction () {\n function SchemaValidationContext(schema) {\n this._errors = [];\n this.schema = schema;\n }\n\n var _proto = SchemaValidationContext.prototype;\n\n _proto.reportError = function reportError(message, nodes) {\n var _nodes = Array.isArray(nodes) ? nodes.filter(Boolean) : nodes;\n\n this.addError(new GraphQLError(message, _nodes));\n };\n\n _proto.addError = function addError(error) {\n this._errors.push(error);\n };\n\n _proto.getErrors = function getErrors() {\n return this._errors;\n };\n\n return SchemaValidationContext;\n}();\n\nfunction validateRootTypes(context) {\n var schema = context.schema;\n var queryType = schema.getQueryType();\n\n if (!queryType) {\n context.reportError('Query root type must be provided.', schema.astNode);\n } else if (!isObjectType(queryType)) {\n context.reportError(\"Query root type must be Object type, it cannot be \".concat(inspect(queryType), \".\"), getOperationTypeNode(schema, queryType, 'query'));\n }\n\n var mutationType = schema.getMutationType();\n\n if (mutationType && !isObjectType(mutationType)) {\n context.reportError('Mutation root type must be Object type if provided, it cannot be ' + \"\".concat(inspect(mutationType), \".\"), getOperationTypeNode(schema, mutationType, 'mutation'));\n }\n\n var subscriptionType = schema.getSubscriptionType();\n\n if (subscriptionType && !isObjectType(subscriptionType)) {\n context.reportError('Subscription root type must be Object type if provided, it cannot be ' + \"\".concat(inspect(subscriptionType), \".\"), getOperationTypeNode(schema, subscriptionType, 'subscription'));\n }\n}\n\nfunction getOperationTypeNode(schema, type, operation) {\n var operationNodes = getAllSubNodes(schema, function (node) {\n return node.operationTypes;\n });\n\n for (var _i2 = 0; _i2 < operationNodes.length; _i2++) {\n var node = operationNodes[_i2];\n\n if (node.operation === operation) {\n return node.type;\n }\n }\n\n return type.astNode;\n}\n\nfunction validateDirectives(context) {\n for (var _i4 = 0, _context$schema$getDi2 = context.schema.getDirectives(); _i4 < _context$schema$getDi2.length; _i4++) {\n var directive = _context$schema$getDi2[_i4];\n\n // Ensure all directives are in fact GraphQL directives.\n if (!isDirective(directive)) {\n context.reportError(\"Expected directive but got: \".concat(inspect(directive), \".\"), directive && directive.astNode);\n continue;\n } // Ensure they are named correctly.\n\n\n validateName(context, directive); // TODO: Ensure proper locations.\n // Ensure the arguments are valid.\n\n var argNames = Object.create(null);\n\n var _loop = function _loop(_i6, _directive$args2) {\n var arg = _directive$args2[_i6];\n var argName = arg.name; // Ensure they are named correctly.\n\n validateName(context, arg); // Ensure they are unique per directive.\n\n if (argNames[argName]) {\n context.reportError(\"Argument @\".concat(directive.name, \"(\").concat(argName, \":) can only be defined once.\"), directive.astNode && directive.args.filter(function (_ref) {\n var name = _ref.name;\n return name === argName;\n }).map(function (_ref2) {\n var astNode = _ref2.astNode;\n return astNode;\n }));\n return \"continue\";\n }\n\n argNames[argName] = true; // Ensure the type is an input type.\n\n if (!isInputType(arg.type)) {\n context.reportError(\"The type of @\".concat(directive.name, \"(\").concat(argName, \":) must be Input Type \") + \"but got: \".concat(inspect(arg.type), \".\"), arg.astNode);\n }\n };\n\n for (var _i6 = 0, _directive$args2 = directive.args; _i6 < _directive$args2.length; _i6++) {\n var _ret = _loop(_i6, _directive$args2);\n\n if (_ret === \"continue\") continue;\n }\n }\n}\n\nfunction validateName(context, node) {\n // If a schema explicitly allows some legacy name which is no longer valid,\n // allow it to be assumed valid.\n if (context.schema.__allowedLegacyNames.indexOf(node.name) !== -1) {\n return;\n } // Ensure names are valid, however introspection types opt out.\n\n\n var error = isValidNameError(node.name, node.astNode || undefined);\n\n if (error) {\n context.addError(error);\n }\n}\n\nfunction validateTypes(context) {\n var validateInputObjectCircularRefs = createInputObjectCircularRefsValidator(context);\n var typeMap = context.schema.getTypeMap();\n\n for (var _i8 = 0, _objectValues2 = objectValues(typeMap); _i8 < _objectValues2.length; _i8++) {\n var type = _objectValues2[_i8];\n\n // Ensure all provided types are in fact GraphQL type.\n if (!isNamedType(type)) {\n context.reportError(\"Expected GraphQL named type but got: \".concat(inspect(type), \".\"), type && type.astNode);\n continue;\n } // Ensure it is named correctly (excluding introspection types).\n\n\n if (!isIntrospectionType(type)) {\n validateName(context, type);\n }\n\n if (isObjectType(type)) {\n // Ensure fields are valid\n validateFields(context, type); // Ensure objects implement the interfaces they claim to.\n\n validateObjectInterfaces(context, type);\n } else if (isInterfaceType(type)) {\n // Ensure fields are valid.\n validateFields(context, type);\n } else if (isUnionType(type)) {\n // Ensure Unions include valid member types.\n validateUnionMembers(context, type);\n } else if (isEnumType(type)) {\n // Ensure Enums have valid values.\n validateEnumValues(context, type);\n } else if (isInputObjectType(type)) {\n // Ensure Input Object fields are valid.\n validateInputFields(context, type); // Ensure Input Objects do not contain non-nullable circular references\n\n validateInputObjectCircularRefs(type);\n }\n }\n}\n\nfunction validateFields(context, type) {\n var fields = objectValues(type.getFields()); // Objects and Interfaces both must define one or more fields.\n\n if (fields.length === 0) {\n context.reportError(\"Type \".concat(type.name, \" must define one or more fields.\"), getAllNodes(type));\n }\n\n for (var _i10 = 0; _i10 < fields.length; _i10++) {\n var field = fields[_i10];\n // Ensure they are named correctly.\n validateName(context, field); // Ensure the type is an output type\n\n if (!isOutputType(field.type)) {\n context.reportError(\"The type of \".concat(type.name, \".\").concat(field.name, \" must be Output Type \") + \"but got: \".concat(inspect(field.type), \".\"), field.astNode && field.astNode.type);\n } // Ensure the arguments are valid\n\n\n var argNames = Object.create(null);\n\n var _loop2 = function _loop2(_i12, _field$args2) {\n var arg = _field$args2[_i12];\n var argName = arg.name; // Ensure they are named correctly.\n\n validateName(context, arg); // Ensure they are unique per field.\n\n if (argNames[argName]) {\n context.reportError(\"Field argument \".concat(type.name, \".\").concat(field.name, \"(\").concat(argName, \":) can only be defined once.\"), field.args.filter(function (_ref3) {\n var name = _ref3.name;\n return name === argName;\n }).map(function (_ref4) {\n var astNode = _ref4.astNode;\n return astNode;\n }));\n }\n\n argNames[argName] = true; // Ensure the type is an input type\n\n if (!isInputType(arg.type)) {\n context.reportError(\"The type of \".concat(type.name, \".\").concat(field.name, \"(\").concat(argName, \":) must be Input \") + \"Type but got: \".concat(inspect(arg.type), \".\"), arg.astNode && arg.astNode.type);\n }\n };\n\n for (var _i12 = 0, _field$args2 = field.args; _i12 < _field$args2.length; _i12++) {\n _loop2(_i12, _field$args2);\n }\n }\n}\n\nfunction validateObjectInterfaces(context, object) {\n var implementedTypeNames = Object.create(null);\n\n for (var _i14 = 0, _object$getInterfaces2 = object.getInterfaces(); _i14 < _object$getInterfaces2.length; _i14++) {\n var iface = _object$getInterfaces2[_i14];\n\n if (!isInterfaceType(iface)) {\n context.reportError(\"Type \".concat(inspect(object), \" must only implement Interface types, \") + \"it cannot implement \".concat(inspect(iface), \".\"), getAllImplementsInterfaceNodes(object, iface));\n continue;\n }\n\n if (implementedTypeNames[iface.name]) {\n context.reportError(\"Type \".concat(object.name, \" can only implement \").concat(iface.name, \" once.\"), getAllImplementsInterfaceNodes(object, iface));\n continue;\n }\n\n implementedTypeNames[iface.name] = true;\n validateObjectImplementsInterface(context, object, iface);\n }\n}\n\nfunction validateObjectImplementsInterface(context, object, iface) {\n var objectFieldMap = object.getFields();\n var ifaceFieldMap = iface.getFields(); // Assert each interface field is implemented.\n\n for (var _i16 = 0, _objectEntries2 = objectEntries(ifaceFieldMap); _i16 < _objectEntries2.length; _i16++) {\n var _ref6 = _objectEntries2[_i16];\n var fieldName = _ref6[0];\n var ifaceField = _ref6[1];\n var objectField = objectFieldMap[fieldName]; // Assert interface field exists on object.\n\n if (!objectField) {\n context.reportError(\"Interface field \".concat(iface.name, \".\").concat(fieldName, \" expected but \").concat(object.name, \" does not provide it.\"), [ifaceField.astNode].concat(getAllNodes(object)));\n continue;\n } // Assert interface field type is satisfied by object field type, by being\n // a valid subtype. (covariant)\n\n\n if (!isTypeSubTypeOf(context.schema, objectField.type, ifaceField.type)) {\n context.reportError(\"Interface field \".concat(iface.name, \".\").concat(fieldName, \" expects type \") + \"\".concat(inspect(ifaceField.type), \" but \").concat(object.name, \".\").concat(fieldName, \" \") + \"is type \".concat(inspect(objectField.type), \".\"), [ifaceField.astNode && ifaceField.astNode.type, objectField.astNode && objectField.astNode.type]);\n } // Assert each interface field arg is implemented.\n\n\n var _loop3 = function _loop3(_i18, _ifaceField$args2) {\n var ifaceArg = _ifaceField$args2[_i18];\n var argName = ifaceArg.name;\n var objectArg = find(objectField.args, function (arg) {\n return arg.name === argName;\n }); // Assert interface field arg exists on object field.\n\n if (!objectArg) {\n context.reportError(\"Interface field argument \".concat(iface.name, \".\").concat(fieldName, \"(\").concat(argName, \":) expected but \").concat(object.name, \".\").concat(fieldName, \" does not provide it.\"), [ifaceArg.astNode, objectField.astNode]);\n return \"continue\";\n } // Assert interface field arg type matches object field arg type.\n // (invariant)\n // TODO: change to contravariant?\n\n\n if (!isEqualType(ifaceArg.type, objectArg.type)) {\n context.reportError(\"Interface field argument \".concat(iface.name, \".\").concat(fieldName, \"(\").concat(argName, \":) \") + \"expects type \".concat(inspect(ifaceArg.type), \" but \") + \"\".concat(object.name, \".\").concat(fieldName, \"(\").concat(argName, \":) is type \") + \"\".concat(inspect(objectArg.type), \".\"), [ifaceArg.astNode && ifaceArg.astNode.type, objectArg.astNode && objectArg.astNode.type]);\n } // TODO: validate default values?\n\n };\n\n for (var _i18 = 0, _ifaceField$args2 = ifaceField.args; _i18 < _ifaceField$args2.length; _i18++) {\n var _ret2 = _loop3(_i18, _ifaceField$args2);\n\n if (_ret2 === \"continue\") continue;\n } // Assert additional arguments must not be required.\n\n\n var _loop4 = function _loop4(_i20, _objectField$args2) {\n var objectArg = _objectField$args2[_i20];\n var argName = objectArg.name;\n var ifaceArg = find(ifaceField.args, function (arg) {\n return arg.name === argName;\n });\n\n if (!ifaceArg && isRequiredArgument(objectArg)) {\n context.reportError(\"Object field \".concat(object.name, \".\").concat(fieldName, \" includes required argument \").concat(argName, \" that is missing from the Interface field \").concat(iface.name, \".\").concat(fieldName, \".\"), [objectArg.astNode, ifaceField.astNode]);\n }\n };\n\n for (var _i20 = 0, _objectField$args2 = objectField.args; _i20 < _objectField$args2.length; _i20++) {\n _loop4(_i20, _objectField$args2);\n }\n }\n}\n\nfunction validateUnionMembers(context, union) {\n var memberTypes = union.getTypes();\n\n if (memberTypes.length === 0) {\n context.reportError(\"Union type \".concat(union.name, \" must define one or more member types.\"), getAllNodes(union));\n }\n\n var includedTypeNames = Object.create(null);\n\n for (var _i22 = 0; _i22 < memberTypes.length; _i22++) {\n var memberType = memberTypes[_i22];\n\n if (includedTypeNames[memberType.name]) {\n context.reportError(\"Union type \".concat(union.name, \" can only include type \").concat(memberType.name, \" once.\"), getUnionMemberTypeNodes(union, memberType.name));\n continue;\n }\n\n includedTypeNames[memberType.name] = true;\n\n if (!isObjectType(memberType)) {\n context.reportError(\"Union type \".concat(union.name, \" can only include Object types, \") + \"it cannot include \".concat(inspect(memberType), \".\"), getUnionMemberTypeNodes(union, String(memberType)));\n }\n }\n}\n\nfunction validateEnumValues(context, enumType) {\n var enumValues = enumType.getValues();\n\n if (enumValues.length === 0) {\n context.reportError(\"Enum type \".concat(enumType.name, \" must define one or more values.\"), getAllNodes(enumType));\n }\n\n for (var _i24 = 0; _i24 < enumValues.length; _i24++) {\n var enumValue = enumValues[_i24];\n var valueName = enumValue.name; // Ensure valid name.\n\n validateName(context, enumValue);\n\n if (valueName === 'true' || valueName === 'false' || valueName === 'null') {\n context.reportError(\"Enum type \".concat(enumType.name, \" cannot include value: \").concat(valueName, \".\"), enumValue.astNode);\n }\n }\n}\n\nfunction validateInputFields(context, inputObj) {\n var fields = objectValues(inputObj.getFields());\n\n if (fields.length === 0) {\n context.reportError(\"Input Object type \".concat(inputObj.name, \" must define one or more fields.\"), getAllNodes(inputObj));\n } // Ensure the arguments are valid\n\n\n for (var _i26 = 0; _i26 < fields.length; _i26++) {\n var field = fields[_i26];\n // Ensure they are named correctly.\n validateName(context, field); // Ensure the type is an input type\n\n if (!isInputType(field.type)) {\n context.reportError(\"The type of \".concat(inputObj.name, \".\").concat(field.name, \" must be Input Type \") + \"but got: \".concat(inspect(field.type), \".\"), field.astNode && field.astNode.type);\n }\n }\n}\n\nfunction createInputObjectCircularRefsValidator(context) {\n // Modified copy of algorithm from 'src/validation/rules/NoFragmentCycles.js'.\n // Tracks already visited types to maintain O(N) and to ensure that cycles\n // are not redundantly reported.\n var visitedTypes = Object.create(null); // Array of types nodes used to produce meaningful errors\n\n var fieldPath = []; // Position in the type path\n\n var fieldPathIndexByTypeName = Object.create(null);\n return detectCycleRecursive; // This does a straight-forward DFS to find cycles.\n // It does not terminate when a cycle was found but continues to explore\n // the graph to find all possible cycles.\n\n function detectCycleRecursive(inputObj) {\n if (visitedTypes[inputObj.name]) {\n return;\n }\n\n visitedTypes[inputObj.name] = true;\n fieldPathIndexByTypeName[inputObj.name] = fieldPath.length;\n var fields = objectValues(inputObj.getFields());\n\n for (var _i28 = 0; _i28 < fields.length; _i28++) {\n var field = fields[_i28];\n\n if (isNonNullType(field.type) && isInputObjectType(field.type.ofType)) {\n var fieldType = field.type.ofType;\n var cycleIndex = fieldPathIndexByTypeName[fieldType.name];\n fieldPath.push(field);\n\n if (cycleIndex === undefined) {\n detectCycleRecursive(fieldType);\n } else {\n var cyclePath = fieldPath.slice(cycleIndex);\n var pathStr = cyclePath.map(function (fieldObj) {\n return fieldObj.name;\n }).join('.');\n context.reportError(\"Cannot reference Input Object \\\"\".concat(fieldType.name, \"\\\" within itself through a series of non-null fields: \\\"\").concat(pathStr, \"\\\".\"), cyclePath.map(function (fieldObj) {\n return fieldObj.astNode;\n }));\n }\n\n fieldPath.pop();\n }\n }\n\n fieldPathIndexByTypeName[inputObj.name] = undefined;\n }\n}\n\nfunction getAllNodes(object) {\n var astNode = object.astNode,\n extensionASTNodes = object.extensionASTNodes;\n return astNode ? extensionASTNodes ? [astNode].concat(extensionASTNodes) : [astNode] : extensionASTNodes || [];\n}\n\nfunction getAllSubNodes(object, getter) {\n return flatMap(getAllNodes(object), function (item) {\n return getter(item) || [];\n });\n}\n\nfunction getAllImplementsInterfaceNodes(type, iface) {\n return getAllSubNodes(type, function (typeNode) {\n return typeNode.interfaces;\n }).filter(function (ifaceNode) {\n return ifaceNode.name.value === iface.name;\n });\n}\n\nfunction getUnionMemberTypeNodes(union, typeName) {\n return getAllSubNodes(union, function (unionNode) {\n return unionNode.types;\n }).filter(function (typeNode) {\n return typeNode.name.value === typeName;\n });\n}\n","import devAssert from '../jsutils/devAssert';\nimport { GraphQLError } from '../error/GraphQLError';\nimport { visit, visitInParallel, visitWithTypeInfo } from '../language/visitor';\nimport { assertValidSchema } from '../type/validate';\nimport { TypeInfo } from '../utilities/TypeInfo';\nimport { specifiedRules, specifiedSDLRules } from './specifiedRules';\nimport { SDLValidationContext, ValidationContext } from './ValidationContext';\nexport var ABORT_VALIDATION = Object.freeze({});\n/**\n * Implements the \"Validation\" section of the spec.\n *\n * Validation runs synchronously, returning an array of encountered errors, or\n * an empty array if no errors were encountered and the document is valid.\n *\n * A list of specific validation rules may be provided. If not provided, the\n * default list of rules defined by the GraphQL specification will be used.\n *\n * Each validation rules is a function which returns a visitor\n * (see the language/visitor API). Visitor methods are expected to return\n * GraphQLErrors, or Arrays of GraphQLErrors when invalid.\n *\n * Optionally a custom TypeInfo instance may be provided. If not provided, one\n * will be created from the provided schema.\n */\n\nexport function validate(schema, documentAST) {\n var rules = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : specifiedRules;\n var typeInfo = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : new TypeInfo(schema);\n var options = arguments.length > 4 ? arguments[4] : undefined;\n documentAST || devAssert(0, 'Must provide document'); // If the schema used for validation is invalid, throw an error.\n\n assertValidSchema(schema);\n var abortObj = Object.freeze({});\n var errors = [];\n var maxErrors = options && options.maxErrors;\n var context = new ValidationContext(schema, documentAST, typeInfo, function (error) {\n if (maxErrors != null && errors.length >= maxErrors) {\n errors.push(new GraphQLError('Too many validation errors, error limit reached. Validation aborted.'));\n throw abortObj;\n }\n\n errors.push(error);\n }); // This uses a specialized visitor which runs multiple visitors in parallel,\n // while maintaining the visitor skip and break API.\n\n var visitor = visitInParallel(rules.map(function (rule) {\n return rule(context);\n })); // Visit the whole document with each instance of all provided rules.\n\n try {\n visit(documentAST, visitWithTypeInfo(typeInfo, visitor));\n } catch (e) {\n if (e !== abortObj) {\n throw e;\n }\n }\n\n return errors;\n} // @internal\n\nexport function validateSDL(documentAST, schemaToExtend) {\n var rules = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : specifiedSDLRules;\n var errors = [];\n var context = new SDLValidationContext(documentAST, schemaToExtend, function (error) {\n errors.push(error);\n });\n var visitors = rules.map(function (rule) {\n return rule(context);\n });\n visit(documentAST, visitInParallel(visitors));\n return errors;\n}\n/**\n * Utility function which asserts a SDL document is valid by throwing an error\n * if it is invalid.\n *\n * @internal\n */\n\nexport function assertValidSDL(documentAST) {\n var errors = validateSDL(documentAST);\n\n if (errors.length !== 0) {\n throw new Error(errors.map(function (error) {\n return error.message;\n }).join('\\n\\n'));\n }\n}\n/**\n * Utility function which asserts a SDL document is valid by throwing an error\n * if it is invalid.\n *\n * @internal\n */\n\nexport function assertValidSDLExtension(documentAST, schema) {\n var errors = validateSDL(documentAST, schema);\n\n if (errors.length !== 0) {\n throw new Error(errors.map(function (error) {\n return error.message;\n }).join('\\n\\n'));\n }\n}\n","import { microSeconds as micro, isNode } from '../util';\nexport var microSeconds = micro;\nexport var type = 'native';\nexport function create(channelName) {\n var state = {\n messagesCallback: null,\n bc: new BroadcastChannel(channelName),\n subFns: [] // subscriberFunctions\n\n };\n\n state.bc.onmessage = function (msg) {\n if (state.messagesCallback) {\n state.messagesCallback(msg.data);\n }\n };\n\n return state;\n}\nexport function close(channelState) {\n channelState.bc.close();\n channelState.subFns = [];\n}\nexport function postMessage(channelState, messageJson) {\n channelState.bc.postMessage(messageJson, false);\n}\nexport function onMessage(channelState, fn) {\n channelState.messagesCallback = fn;\n}\nexport function canBeUsed() {\n /**\n * in the electron-renderer, isNode will be true even if we are in browser-context\n * so we also check if window is undefined\n */\n if (isNode && typeof window === 'undefined') return false;\n\n if (typeof BroadcastChannel === 'function') {\n if (BroadcastChannel._pubkey) {\n throw new Error('BroadcastChannel: Do not overwrite window.BroadcastChannel with this module, this is not a polyfill');\n }\n\n return true;\n } else return false;\n}\nexport function averageResponseTime() {\n return 150;\n}\nexport default {\n create: create,\n close: close,\n onMessage: onMessage,\n postMessage: postMessage,\n canBeUsed: canBeUsed,\n type: type,\n averageResponseTime: averageResponseTime,\n microSeconds: microSeconds\n};","/**\n * this is a set which automatically forgets\n * a given entry when a new entry is set and the ttl\n * of the old one is over\n * @constructor\n */\nvar ObliviousSet = function ObliviousSet(ttl) {\n var set = new Set();\n var timeMap = new Map();\n this.has = set.has.bind(set);\n\n this.add = function (value) {\n timeMap.set(value, now());\n set.add(value);\n\n _removeTooOldValues();\n };\n\n this.clear = function () {\n set.clear();\n timeMap.clear();\n };\n\n function _removeTooOldValues() {\n var olderThen = now() - ttl;\n var iterator = set[Symbol.iterator]();\n\n while (true) {\n var value = iterator.next().value;\n if (!value) return; // no more elements\n\n var time = timeMap.get(value);\n\n if (time < olderThen) {\n timeMap[\"delete\"](value);\n set[\"delete\"](value);\n } else {\n // we reached a value that is not old enough\n return;\n }\n }\n }\n};\n\nfunction now() {\n return new Date().getTime();\n}\n\nexport default ObliviousSet;","export function fillOptionsWithDefaults() {\n var originalOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var options = JSON.parse(JSON.stringify(originalOptions)); // main\n\n if (typeof options.webWorkerSupport === 'undefined') options.webWorkerSupport = true; // indexed-db\n\n if (!options.idb) options.idb = {}; // after this time the messages get deleted\n\n if (!options.idb.ttl) options.idb.ttl = 1000 * 45;\n if (!options.idb.fallbackInterval) options.idb.fallbackInterval = 150; // localstorage\n\n if (!options.localstorage) options.localstorage = {};\n if (!options.localstorage.removeTimeout) options.localstorage.removeTimeout = 1000 * 60; // custom methods\n\n if (originalOptions.methods) options.methods = originalOptions.methods; // node\n\n if (!options.node) options.node = {};\n if (!options.node.ttl) options.node.ttl = 1000 * 60 * 2; // 2 minutes;\n\n if (typeof options.node.useFastPath === 'undefined') options.node.useFastPath = true;\n return options;\n}","/**\n * this method uses indexeddb to store the messages\n * There is currently no observerAPI for idb\n * @link https://github.com/w3c/IndexedDB/issues/51\n */\nimport { sleep, randomInt, randomToken, microSeconds as micro, isNode } from '../util.js';\nexport var microSeconds = micro;\nimport ObliviousSet from '../oblivious-set';\nimport { fillOptionsWithDefaults } from '../options';\nvar DB_PREFIX = 'pubkey.broadcast-channel-0-';\nvar OBJECT_STORE_ID = 'messages';\nexport var type = 'idb';\nexport function getIdb() {\n if (typeof indexedDB !== 'undefined') return indexedDB;\n if (typeof window.mozIndexedDB !== 'undefined') return window.mozIndexedDB;\n if (typeof window.webkitIndexedDB !== 'undefined') return window.webkitIndexedDB;\n if (typeof window.msIndexedDB !== 'undefined') return window.msIndexedDB;\n return false;\n}\nexport function createDatabase(channelName) {\n var IndexedDB = getIdb(); // create table\n\n var dbName = DB_PREFIX + channelName;\n var openRequest = IndexedDB.open(dbName, 1);\n\n openRequest.onupgradeneeded = function (ev) {\n var db = ev.target.result;\n db.createObjectStore(OBJECT_STORE_ID, {\n keyPath: 'id',\n autoIncrement: true\n });\n };\n\n var dbPromise = new Promise(function (res, rej) {\n openRequest.onerror = function (ev) {\n return rej(ev);\n };\n\n openRequest.onsuccess = function () {\n res(openRequest.result);\n };\n });\n return dbPromise;\n}\n/**\n * writes the new message to the database\n * so other readers can find it\n */\n\nexport function writeMessage(db, readerUuid, messageJson) {\n var time = new Date().getTime();\n var writeObject = {\n uuid: readerUuid,\n time: time,\n data: messageJson\n };\n var transaction = db.transaction([OBJECT_STORE_ID], 'readwrite');\n return new Promise(function (res, rej) {\n transaction.oncomplete = function () {\n return res();\n };\n\n transaction.onerror = function (ev) {\n return rej(ev);\n };\n\n var objectStore = transaction.objectStore(OBJECT_STORE_ID);\n objectStore.add(writeObject);\n });\n}\nexport function getAllMessages(db) {\n var objectStore = db.transaction(OBJECT_STORE_ID).objectStore(OBJECT_STORE_ID);\n var ret = [];\n return new Promise(function (res) {\n objectStore.openCursor().onsuccess = function (ev) {\n var cursor = ev.target.result;\n\n if (cursor) {\n ret.push(cursor.value); //alert(\"Name for SSN \" + cursor.key + \" is \" + cursor.value.name);\n\n cursor[\"continue\"]();\n } else {\n res(ret);\n }\n };\n });\n}\nexport function getMessagesHigherThen(db, lastCursorId) {\n var objectStore = db.transaction(OBJECT_STORE_ID).objectStore(OBJECT_STORE_ID);\n var ret = [];\n var keyRangeValue = IDBKeyRange.bound(lastCursorId + 1, Infinity);\n return new Promise(function (res) {\n objectStore.openCursor(keyRangeValue).onsuccess = function (ev) {\n var cursor = ev.target.result;\n\n if (cursor) {\n ret.push(cursor.value);\n cursor[\"continue\"]();\n } else {\n res(ret);\n }\n };\n });\n}\nexport function removeMessageById(db, id) {\n var request = db.transaction([OBJECT_STORE_ID], 'readwrite').objectStore(OBJECT_STORE_ID)[\"delete\"](id);\n return new Promise(function (res) {\n request.onsuccess = function () {\n return res();\n };\n });\n}\nexport function getOldMessages(db, ttl) {\n var olderThen = new Date().getTime() - ttl;\n var objectStore = db.transaction(OBJECT_STORE_ID).objectStore(OBJECT_STORE_ID);\n var ret = [];\n return new Promise(function (res) {\n objectStore.openCursor().onsuccess = function (ev) {\n var cursor = ev.target.result;\n\n if (cursor) {\n var msgObk = cursor.value;\n\n if (msgObk.time < olderThen) {\n ret.push(msgObk); //alert(\"Name for SSN \" + cursor.key + \" is \" + cursor.value.name);\n\n cursor[\"continue\"]();\n } else {\n // no more old messages,\n res(ret);\n return;\n }\n } else {\n res(ret);\n }\n };\n });\n}\nexport function cleanOldMessages(db, ttl) {\n return getOldMessages(db, ttl).then(function (tooOld) {\n return Promise.all(tooOld.map(function (msgObj) {\n return removeMessageById(db, msgObj.id);\n }));\n });\n}\nexport function create(channelName, options) {\n options = fillOptionsWithDefaults(options);\n return createDatabase(channelName).then(function (db) {\n var state = {\n closed: false,\n lastCursorId: 0,\n channelName: channelName,\n options: options,\n uuid: randomToken(10),\n\n /**\n * emittedMessagesIds\n * contains all messages that have been emitted before\n * @type {ObliviousSet}\n */\n eMIs: new ObliviousSet(options.idb.ttl * 2),\n // ensures we do not read messages in parrallel\n writeBlockPromise: Promise.resolve(),\n messagesCallback: null,\n readQueuePromises: [],\n db: db\n };\n /**\n * if service-workers are used,\n * we have no 'storage'-event if they post a message,\n * therefore we also have to set an interval\n */\n\n _readLoop(state);\n\n return state;\n });\n}\n\nfunction _readLoop(state) {\n if (state.closed) return;\n return readNewMessages(state).then(function () {\n return sleep(state.options.idb.fallbackInterval);\n }).then(function () {\n return _readLoop(state);\n });\n}\n\nfunction _filterMessage(msgObj, state) {\n if (msgObj.uuid === state.uuid) return false; // send by own\n\n if (state.eMIs.has(msgObj.id)) return false; // already emitted\n\n if (msgObj.data.time < state.messagesCallbackTime) return false; // older then onMessageCallback\n\n return true;\n}\n/**\n * reads all new messages from the database and emits them\n */\n\n\nfunction readNewMessages(state) {\n // channel already closed\n if (state.closed) return Promise.resolve(); // if no one is listening, we do not need to scan for new messages\n\n if (!state.messagesCallback) return Promise.resolve();\n return getMessagesHigherThen(state.db, state.lastCursorId).then(function (newerMessages) {\n var useMessages = newerMessages\n /**\n * there is a bug in iOS where the msgObj can be undefined some times\n * so we filter them out\n * @link https://github.com/pubkey/broadcast-channel/issues/19\n */\n .filter(function (msgObj) {\n return !!msgObj;\n }).map(function (msgObj) {\n if (msgObj.id > state.lastCursorId) {\n state.lastCursorId = msgObj.id;\n }\n\n return msgObj;\n }).filter(function (msgObj) {\n return _filterMessage(msgObj, state);\n }).sort(function (msgObjA, msgObjB) {\n return msgObjA.time - msgObjB.time;\n }); // sort by time\n\n useMessages.forEach(function (msgObj) {\n if (state.messagesCallback) {\n state.eMIs.add(msgObj.id);\n state.messagesCallback(msgObj.data);\n }\n });\n return Promise.resolve();\n });\n}\n\nexport function close(channelState) {\n channelState.closed = true;\n channelState.db.close();\n}\nexport function postMessage(channelState, messageJson) {\n channelState.writeBlockPromise = channelState.writeBlockPromise.then(function () {\n return writeMessage(channelState.db, channelState.uuid, messageJson);\n }).then(function () {\n if (randomInt(0, 10) === 0) {\n /* await (do not await) */\n cleanOldMessages(channelState.db, channelState.options.idb.ttl);\n }\n });\n return channelState.writeBlockPromise;\n}\nexport function onMessage(channelState, fn, time) {\n channelState.messagesCallbackTime = time;\n channelState.messagesCallback = fn;\n readNewMessages(channelState);\n}\nexport function canBeUsed() {\n if (isNode) return false;\n var idb = getIdb();\n if (!idb) return false;\n return true;\n}\nexport function averageResponseTime(options) {\n return options.idb.fallbackInterval * 2;\n}\nexport default {\n create: create,\n close: close,\n onMessage: onMessage,\n postMessage: postMessage,\n canBeUsed: canBeUsed,\n type: type,\n averageResponseTime: averageResponseTime,\n microSeconds: microSeconds\n};","/**\n * A localStorage-only method which uses localstorage and its 'storage'-event\n * This does not work inside of webworkers because they have no access to locastorage\n * This is basically implemented to support IE9 or your grandmothers toaster.\n * @link https://caniuse.com/#feat=namevalue-storage\n * @link https://caniuse.com/#feat=indexeddb\n */\nimport ObliviousSet from '../oblivious-set';\nimport { fillOptionsWithDefaults } from '../options';\nimport { sleep, randomToken, microSeconds as micro, isNode } from '../util';\nexport var microSeconds = micro;\nvar KEY_PREFIX = 'pubkey.broadcastChannel-';\nexport var type = 'localstorage';\n/**\n * copied from crosstab\n * @link https://github.com/tejacques/crosstab/blob/master/src/crosstab.js#L32\n */\n\nexport function getLocalStorage() {\n var localStorage;\n if (typeof window === 'undefined') return null;\n\n try {\n localStorage = window.localStorage;\n localStorage = window['ie8-eventlistener/storage'] || window.localStorage;\n } catch (e) {// New versions of Firefox throw a Security exception\n // if cookies are disabled. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1028153\n }\n\n return localStorage;\n}\nexport function storageKey(channelName) {\n return KEY_PREFIX + channelName;\n}\n/**\n* writes the new message to the storage\n* and fires the storage-event so other readers can find it\n*/\n\nexport function postMessage(channelState, messageJson) {\n return new Promise(function (res) {\n sleep().then(function () {\n var key = storageKey(channelState.channelName);\n var writeObj = {\n token: randomToken(10),\n time: new Date().getTime(),\n data: messageJson,\n uuid: channelState.uuid\n };\n var value = JSON.stringify(writeObj);\n getLocalStorage().setItem(key, value);\n /**\n * StorageEvent does not fire the 'storage' event\n * in the window that changes the state of the local storage.\n * So we fire it manually\n */\n\n var ev = document.createEvent('Event');\n ev.initEvent('storage', true, true);\n ev.key = key;\n ev.newValue = value;\n window.dispatchEvent(ev);\n res();\n });\n });\n}\nexport function addStorageEventListener(channelName, fn) {\n var key = storageKey(channelName);\n\n var listener = function listener(ev) {\n if (ev.key === key) {\n fn(JSON.parse(ev.newValue));\n }\n };\n\n window.addEventListener('storage', listener);\n return listener;\n}\nexport function removeStorageEventListener(listener) {\n window.removeEventListener('storage', listener);\n}\nexport function create(channelName, options) {\n options = fillOptionsWithDefaults(options);\n\n if (!canBeUsed()) {\n throw new Error('BroadcastChannel: localstorage cannot be used');\n }\n\n var uuid = randomToken(10);\n /**\n * eMIs\n * contains all messages that have been emitted before\n * @type {ObliviousSet}\n */\n\n var eMIs = new ObliviousSet(options.localstorage.removeTimeout);\n var state = {\n channelName: channelName,\n uuid: uuid,\n eMIs: eMIs // emittedMessagesIds\n\n };\n state.listener = addStorageEventListener(channelName, function (msgObj) {\n if (!state.messagesCallback) return; // no listener\n\n if (msgObj.uuid === uuid) return; // own message\n\n if (!msgObj.token || eMIs.has(msgObj.token)) return; // already emitted\n\n if (msgObj.data.time && msgObj.data.time < state.messagesCallbackTime) return; // too old\n\n eMIs.add(msgObj.token);\n state.messagesCallback(msgObj.data);\n });\n return state;\n}\nexport function close(channelState) {\n removeStorageEventListener(channelState.listener);\n}\nexport function onMessage(channelState, fn, time) {\n channelState.messagesCallbackTime = time;\n channelState.messagesCallback = fn;\n}\nexport function canBeUsed() {\n if (isNode) return false;\n var ls = getLocalStorage();\n if (!ls) return false;\n\n try {\n var key = '__broadcastchannel_check';\n ls.setItem(key, 'works');\n ls.removeItem(key);\n } catch (e) {\n // Safari 10 in private mode will not allow write access to local\n // storage and fail with a QuotaExceededError. See\n // https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API#Private_Browsing_Incognito_modes\n return false;\n }\n\n return true;\n}\nexport function averageResponseTime() {\n return 120;\n}\nexport default {\n create: create,\n close: close,\n onMessage: onMessage,\n postMessage: postMessage,\n canBeUsed: canBeUsed,\n type: type,\n averageResponseTime: averageResponseTime,\n microSeconds: microSeconds\n};","import { microSeconds as micro } from '../util';\nexport var microSeconds = micro;\nexport var type = 'simulate';\nvar SIMULATE_CHANNELS = new Set();\nexport function create(channelName) {\n var state = {\n name: channelName,\n messagesCallback: null\n };\n SIMULATE_CHANNELS.add(state);\n return state;\n}\nexport function close(channelState) {\n SIMULATE_CHANNELS[\"delete\"](channelState);\n}\nexport function postMessage(channelState, messageJson) {\n return new Promise(function (res) {\n return setTimeout(function () {\n var channelArray = Array.from(SIMULATE_CHANNELS);\n channelArray.filter(function (channel) {\n return channel.name === channelState.name;\n }).filter(function (channel) {\n return channel !== channelState;\n }).filter(function (channel) {\n return !!channel.messagesCallback;\n }).forEach(function (channel) {\n return channel.messagesCallback(messageJson);\n });\n res();\n }, 5);\n });\n}\nexport function onMessage(channelState, fn) {\n channelState.messagesCallback = fn;\n}\nexport function canBeUsed() {\n return true;\n}\nexport function averageResponseTime() {\n return 5;\n}\nexport default {\n create: create,\n close: close,\n onMessage: onMessage,\n postMessage: postMessage,\n canBeUsed: canBeUsed,\n type: type,\n averageResponseTime: averageResponseTime,\n microSeconds: microSeconds\n};","import NativeMethod from './methods/native.js';\nimport IndexeDbMethod from './methods/indexed-db.js';\nimport LocalstorageMethod from './methods/localstorage.js';\nimport SimulateMethod from './methods/simulate.js';\nimport { isNode } from './util'; // order is important\n\nvar METHODS = [NativeMethod, // fastest\nIndexeDbMethod, LocalstorageMethod];\n/**\n * The NodeMethod is loaded lazy\n * so it will not get bundled in browser-builds\n */\n\nif (isNode) {\n /**\n * we use the non-transpiled code for nodejs\n * because it runs faster\n */\n var NodeMethod = require('../../src/methods/' + // use this hack so that browserify and others\n // do not import the node-method by default\n // when bundling.\n 'node.js');\n /**\n * this will be false for webpackbuilds\n * which will shim the node-method with an empty object {}\n */\n\n\n if (typeof NodeMethod.canBeUsed === 'function') {\n METHODS.push(NodeMethod);\n }\n}\n\nexport function chooseMethod(options) {\n var chooseMethods = [].concat(options.methods, METHODS).filter(Boolean); // directly chosen\n\n if (options.type) {\n if (options.type === 'simulate') {\n // only use simulate-method if directly chosen\n return SimulateMethod;\n }\n\n var ret = chooseMethods.find(function (m) {\n return m.type === options.type;\n });\n if (!ret) throw new Error('method-type ' + options.type + ' not found');else return ret;\n }\n /**\n * if no webworker support is needed,\n * remove idb from the list so that localstorage is been chosen\n */\n\n\n if (!options.webWorkerSupport && !isNode) {\n chooseMethods = chooseMethods.filter(function (m) {\n return m.type !== 'idb';\n });\n }\n\n var useMethod = chooseMethods.find(function (method) {\n return method.canBeUsed();\n });\n if (!useMethod) throw new Error('No useable methode found:' + JSON.stringify(METHODS.map(function (m) {\n return m.type;\n })));else return useMethod;\n}","import { isPromise } from './util.js';\nimport { chooseMethod } from './method-chooser.js';\nimport { fillOptionsWithDefaults } from './options.js';\n\nvar BroadcastChannel = function BroadcastChannel(name, options) {\n this.name = name;\n\n if (ENFORCED_OPTIONS) {\n options = ENFORCED_OPTIONS;\n }\n\n this.options = fillOptionsWithDefaults(options);\n this.method = chooseMethod(this.options); // isListening\n\n this._iL = false;\n /**\n * _onMessageListener\n * setting onmessage twice,\n * will overwrite the first listener\n */\n\n this._onML = null;\n /**\n * _addEventListeners\n */\n\n this._addEL = {\n message: [],\n internal: []\n };\n /**\n * _beforeClose\n * array of promises that will be awaited\n * before the channel is closed\n */\n\n this._befC = [];\n /**\n * _preparePromise\n */\n\n this._prepP = null;\n\n _prepareChannel(this);\n}; // STATICS\n\n/**\n * used to identify if someone overwrites\n * window.BroadcastChannel with this\n * See methods/native.js\n */\n\n\nBroadcastChannel._pubkey = true;\n/**\n * clears the tmp-folder if is node\n * @return {Promise} true if has run, false if not node\n */\n\nBroadcastChannel.clearNodeFolder = function (options) {\n options = fillOptionsWithDefaults(options);\n var method = chooseMethod(options);\n\n if (method.type === 'node') {\n return method.clearNodeFolder().then(function () {\n return true;\n });\n } else {\n return Promise.resolve(false);\n }\n};\n/**\n * if set, this method is enforced,\n * no mather what the options are\n */\n\n\nvar ENFORCED_OPTIONS;\n\nBroadcastChannel.enforceOptions = function (options) {\n ENFORCED_OPTIONS = options;\n}; // PROTOTYPE\n\n\nBroadcastChannel.prototype = {\n postMessage: function postMessage(msg) {\n if (this.closed) {\n throw new Error('BroadcastChannel.postMessage(): ' + 'Cannot post message after channel has closed');\n }\n\n return _post(this, 'message', msg);\n },\n postInternal: function postInternal(msg) {\n return _post(this, 'internal', msg);\n },\n\n set onmessage(fn) {\n var time = this.method.microSeconds();\n var listenObj = {\n time: time,\n fn: fn\n };\n\n _removeListenerObject(this, 'message', this._onML);\n\n if (fn && typeof fn === 'function') {\n this._onML = listenObj;\n\n _addListenerObject(this, 'message', listenObj);\n } else {\n this._onML = null;\n }\n },\n\n addEventListener: function addEventListener(type, fn) {\n var time = this.method.microSeconds();\n var listenObj = {\n time: time,\n fn: fn\n };\n\n _addListenerObject(this, type, listenObj);\n },\n removeEventListener: function removeEventListener(type, fn) {\n var obj = this._addEL[type].find(function (obj) {\n return obj.fn === fn;\n });\n\n _removeListenerObject(this, type, obj);\n },\n close: function close() {\n var _this = this;\n\n if (this.closed) return;\n this.closed = true;\n var awaitPrepare = this._prepP ? this._prepP : Promise.resolve();\n this._onML = null;\n this._addEL.message = [];\n return awaitPrepare.then(function () {\n return Promise.all(_this._befC.map(function (fn) {\n return fn();\n }));\n }).then(function () {\n return _this.method.close(_this._state);\n });\n },\n\n get type() {\n return this.method.type;\n }\n\n};\n\nfunction _post(broadcastChannel, type, msg) {\n var time = broadcastChannel.method.microSeconds();\n var msgObj = {\n time: time,\n type: type,\n data: msg\n };\n var awaitPrepare = broadcastChannel._prepP ? broadcastChannel._prepP : Promise.resolve();\n return awaitPrepare.then(function () {\n return broadcastChannel.method.postMessage(broadcastChannel._state, msgObj);\n });\n}\n\nfunction _prepareChannel(channel) {\n var maybePromise = channel.method.create(channel.name, channel.options);\n\n if (isPromise(maybePromise)) {\n channel._prepP = maybePromise;\n maybePromise.then(function (s) {\n // used in tests to simulate slow runtime\n\n /*if (channel.options.prepareDelay) {\n await new Promise(res => setTimeout(res, this.options.prepareDelay));\n }*/\n channel._state = s;\n });\n } else {\n channel._state = maybePromise;\n }\n}\n\nfunction _hasMessageListeners(channel) {\n if (channel._addEL.message.length > 0) return true;\n if (channel._addEL.internal.length > 0) return true;\n return false;\n}\n\nfunction _addListenerObject(channel, type, obj) {\n channel._addEL[type].push(obj);\n\n _startListening(channel);\n}\n\nfunction _removeListenerObject(channel, type, obj) {\n channel._addEL[type] = channel._addEL[type].filter(function (o) {\n return o !== obj;\n });\n\n _stopListening(channel);\n}\n\nfunction _startListening(channel) {\n if (!channel._iL && _hasMessageListeners(channel)) {\n // someone is listening, start subscribing\n var listenerFn = function listenerFn(msgObj) {\n channel._addEL[msgObj.type].forEach(function (obj) {\n if (msgObj.time >= obj.time) {\n obj.fn(msgObj.data);\n }\n });\n };\n\n var time = channel.method.microSeconds();\n\n if (channel._prepP) {\n channel._prepP.then(function () {\n channel._iL = true;\n channel.method.onMessage(channel._state, listenerFn, time);\n });\n } else {\n channel._iL = true;\n channel.method.onMessage(channel._state, listenerFn, time);\n }\n }\n}\n\nfunction _stopListening(channel) {\n if (channel._iL && !_hasMessageListeners(channel)) {\n // noone is listening, stop subscribing\n channel._iL = false;\n var time = channel.method.microSeconds();\n channel.method.onMessage(channel._state, null, time);\n }\n}\n\nexport default BroadcastChannel;","import BroadcastChannel from 'broadcast-channel';\nimport { canUseDom } from 'exenv';\nvar w;\nif (canUseDom) {\n w = window;\n}\nelse {\n w = {};\n}\nvar Channel;\nif (!w.Channel) {\n if (w && w.BroadcastChannel) {\n Channel = w.BroadcastChannel;\n }\n else {\n var BroadCastProxy = /** @class */ (function () {\n function BroadCastProxy(name) {\n var _this = this;\n try {\n this.parent = new BroadcastChannel(name);\n this.parent.onmessage = function (event) {\n if (_this.onmessage) {\n _this.onmessage({ data: event });\n }\n };\n }\n catch (e) {\n console.error(e);\n }\n }\n BroadCastProxy.prototype.postMessage = function (event) {\n try {\n return this.parent.postMessage(event);\n }\n catch (e) {\n console.error(e);\n return false;\n }\n };\n return BroadCastProxy;\n }());\n Channel = BroadCastProxy;\n }\n w.Channel = Channel;\n}\nelse {\n Channel = w.Channel;\n}\nexport { Channel };\n","import { Channel as BaseChannel } from '@food/channel';\nvar Channel = BaseChannel;\nexport { Channel };\n","export default function _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}","import _isArray from './_isArray.js';\nimport _isTransformer from './_isTransformer.js';\n\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer [xf] to return a new transformer (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} xf transducer to initialize if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\nexport default function _dispatchable(methodNames, xf, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n var args = Array.prototype.slice.call(arguments, 0);\n var obj = args.pop();\n if (!_isArray(obj)) {\n var idx = 0;\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, args);\n }\n idx += 1;\n }\n if (_isTransformer(obj)) {\n var transducer = xf.apply(null, args);\n return transducer(obj);\n }\n }\n return fn.apply(this, arguments);\n };\n}","import devAssert from '../jsutils/devAssert';\nimport defineToStringTag from '../jsutils/defineToStringTag';\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 = function Source(body, name, locationOffset) {\n this.body = body;\n this.name = name || 'GraphQL request';\n this.locationOffset = locationOffset || {\n line: 1,\n column: 1\n };\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}; // Conditionally apply `[Symbol.toStringTag]` if `Symbol`s are supported\n\ndefineToStringTag(Source);\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 arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/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}","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","exports.f = {}.propertyIsEnumerable;\n","module.exports = {};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\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 keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\torigDefineProperty(obj, 'x', { enumerable: false, value: obj });\n\t\t// eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\t\tfor (var _ in obj) { // jscs:ignore disallowUnusedVariables\n\t\t\treturn false;\n\t\t}\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","// Public components\nimport Popper, { placements } from './Popper';\nimport Manager from './Manager';\nimport Reference from './Reference';\nexport { Popper, placements, Manager, Reference }; // Public types","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\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\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\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 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 objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (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 = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"))\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod)\n else // Plain browser env\n mod(CodeMirror)\n})(function(CodeMirror) {\n \"use strict\"\n var Pos = CodeMirror.Pos\n\n function regexpFlags(regexp) {\n var flags = regexp.flags\n return flags != null ? flags : (regexp.ignoreCase ? \"i\" : \"\")\n + (regexp.global ? \"g\" : \"\")\n + (regexp.multiline ? \"m\" : \"\")\n }\n\n function ensureFlags(regexp, flags) {\n var current = regexpFlags(regexp), target = current\n for (var i = 0; i < flags.length; i++) if (target.indexOf(flags.charAt(i)) == -1)\n target += flags.charAt(i)\n return current == target ? regexp : new RegExp(regexp.source, target)\n }\n\n function maybeMultiline(regexp) {\n return /\\\\s|\\\\n|\\n|\\\\W|\\\\D|\\[\\^/.test(regexp.source)\n }\n\n function searchRegexpForward(doc, regexp, start) {\n regexp = ensureFlags(regexp, \"g\")\n for (var line = start.line, ch = start.ch, last = doc.lastLine(); line <= last; line++, ch = 0) {\n regexp.lastIndex = ch\n var string = doc.getLine(line), match = regexp.exec(string)\n if (match)\n return {from: Pos(line, match.index),\n to: Pos(line, match.index + match[0].length),\n match: match}\n }\n }\n\n function searchRegexpForwardMultiline(doc, regexp, start) {\n if (!maybeMultiline(regexp)) return searchRegexpForward(doc, regexp, start)\n\n regexp = ensureFlags(regexp, \"gm\")\n var string, chunk = 1\n for (var line = start.line, last = doc.lastLine(); line <= last;) {\n // This grows the search buffer in exponentially-sized chunks\n // between matches, so that nearby matches are fast and don't\n // require concatenating the whole document (in case we're\n // searching for something that has tons of matches), but at the\n // same time, the amount of retries is limited.\n for (var i = 0; i < chunk; i++) {\n if (line > last) break\n var curLine = doc.getLine(line++)\n string = string == null ? curLine : string + \"\\n\" + curLine\n }\n chunk = chunk * 2\n regexp.lastIndex = start.ch\n var match = regexp.exec(string)\n if (match) {\n var before = string.slice(0, match.index).split(\"\\n\"), inside = match[0].split(\"\\n\")\n var startLine = start.line + before.length - 1, startCh = before[before.length - 1].length\n return {from: Pos(startLine, startCh),\n to: Pos(startLine + inside.length - 1,\n inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length),\n match: match}\n }\n }\n }\n\n function lastMatchIn(string, regexp, endMargin) {\n var match, from = 0\n while (from <= string.length) {\n regexp.lastIndex = from\n var newMatch = regexp.exec(string)\n if (!newMatch) break\n var end = newMatch.index + newMatch[0].length\n if (end > string.length - endMargin) break\n if (!match || end > match.index + match[0].length)\n match = newMatch\n from = newMatch.index + 1\n }\n return match\n }\n\n function searchRegexpBackward(doc, regexp, start) {\n regexp = ensureFlags(regexp, \"g\")\n for (var line = start.line, ch = start.ch, first = doc.firstLine(); line >= first; line--, ch = -1) {\n var string = doc.getLine(line)\n var match = lastMatchIn(string, regexp, ch < 0 ? 0 : string.length - ch)\n if (match)\n return {from: Pos(line, match.index),\n to: Pos(line, match.index + match[0].length),\n match: match}\n }\n }\n\n function searchRegexpBackwardMultiline(doc, regexp, start) {\n if (!maybeMultiline(regexp)) return searchRegexpBackward(doc, regexp, start)\n regexp = ensureFlags(regexp, \"gm\")\n var string, chunkSize = 1, endMargin = doc.getLine(start.line).length - start.ch\n for (var line = start.line, first = doc.firstLine(); line >= first;) {\n for (var i = 0; i < chunkSize && line >= first; i++) {\n var curLine = doc.getLine(line--)\n string = string == null ? curLine : curLine + \"\\n\" + string\n }\n chunkSize *= 2\n\n var match = lastMatchIn(string, regexp, endMargin)\n if (match) {\n var before = string.slice(0, match.index).split(\"\\n\"), inside = match[0].split(\"\\n\")\n var startLine = line + before.length, startCh = before[before.length - 1].length\n return {from: Pos(startLine, startCh),\n to: Pos(startLine + inside.length - 1,\n inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length),\n match: match}\n }\n }\n }\n\n var doFold, noFold\n if (String.prototype.normalize) {\n doFold = function(str) { return str.normalize(\"NFD\").toLowerCase() }\n noFold = function(str) { return str.normalize(\"NFD\") }\n } else {\n doFold = function(str) { return str.toLowerCase() }\n noFold = function(str) { return str }\n }\n\n // Maps a position in a case-folded line back to a position in the original line\n // (compensating for codepoints increasing in number during folding)\n function adjustPos(orig, folded, pos, foldFunc) {\n if (orig.length == folded.length) return pos\n for (var min = 0, max = pos + Math.max(0, orig.length - folded.length);;) {\n if (min == max) return min\n var mid = (min + max) >> 1\n var len = foldFunc(orig.slice(0, mid)).length\n if (len == pos) return mid\n else if (len > pos) max = mid\n else min = mid + 1\n }\n }\n\n function searchStringForward(doc, query, start, caseFold) {\n // Empty string would match anything and never progress, so we\n // define it to match nothing instead.\n if (!query.length) return null\n var fold = caseFold ? doFold : noFold\n var lines = fold(query).split(/\\r|\\n\\r?/)\n\n search: for (var line = start.line, ch = start.ch, last = doc.lastLine() + 1 - lines.length; line <= last; line++, ch = 0) {\n var orig = doc.getLine(line).slice(ch), string = fold(orig)\n if (lines.length == 1) {\n var found = string.indexOf(lines[0])\n if (found == -1) continue search\n var start = adjustPos(orig, string, found, fold) + ch\n return {from: Pos(line, adjustPos(orig, string, found, fold) + ch),\n to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold) + ch)}\n } else {\n var cutFrom = string.length - lines[0].length\n if (string.slice(cutFrom) != lines[0]) continue search\n for (var i = 1; i < lines.length - 1; i++)\n if (fold(doc.getLine(line + i)) != lines[i]) continue search\n var end = doc.getLine(line + lines.length - 1), endString = fold(end), lastLine = lines[lines.length - 1]\n if (endString.slice(0, lastLine.length) != lastLine) continue search\n return {from: Pos(line, adjustPos(orig, string, cutFrom, fold) + ch),\n to: Pos(line + lines.length - 1, adjustPos(end, endString, lastLine.length, fold))}\n }\n }\n }\n\n function searchStringBackward(doc, query, start, caseFold) {\n if (!query.length) return null\n var fold = caseFold ? doFold : noFold\n var lines = fold(query).split(/\\r|\\n\\r?/)\n\n search: for (var line = start.line, ch = start.ch, first = doc.firstLine() - 1 + lines.length; line >= first; line--, ch = -1) {\n var orig = doc.getLine(line)\n if (ch > -1) orig = orig.slice(0, ch)\n var string = fold(orig)\n if (lines.length == 1) {\n var found = string.lastIndexOf(lines[0])\n if (found == -1) continue search\n return {from: Pos(line, adjustPos(orig, string, found, fold)),\n to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold))}\n } else {\n var lastLine = lines[lines.length - 1]\n if (string.slice(0, lastLine.length) != lastLine) continue search\n for (var i = 1, start = line - lines.length + 1; i < lines.length - 1; i++)\n if (fold(doc.getLine(start + i)) != lines[i]) continue search\n var top = doc.getLine(line + 1 - lines.length), topString = fold(top)\n if (topString.slice(topString.length - lines[0].length) != lines[0]) continue search\n return {from: Pos(line + 1 - lines.length, adjustPos(top, topString, top.length - lines[0].length, fold)),\n to: Pos(line, adjustPos(orig, string, lastLine.length, fold))}\n }\n }\n }\n\n function SearchCursor(doc, query, pos, options) {\n this.atOccurrence = false\n this.doc = doc\n pos = pos ? doc.clipPos(pos) : Pos(0, 0)\n this.pos = {from: pos, to: pos}\n\n var caseFold\n if (typeof options == \"object\") {\n caseFold = options.caseFold\n } else { // Backwards compat for when caseFold was the 4th argument\n caseFold = options\n options = null\n }\n\n if (typeof query == \"string\") {\n if (caseFold == null) caseFold = false\n this.matches = function(reverse, pos) {\n return (reverse ? searchStringBackward : searchStringForward)(doc, query, pos, caseFold)\n }\n } else {\n query = ensureFlags(query, \"gm\")\n if (!options || options.multiline !== false)\n this.matches = function(reverse, pos) {\n return (reverse ? searchRegexpBackwardMultiline : searchRegexpForwardMultiline)(doc, query, pos)\n }\n else\n this.matches = function(reverse, pos) {\n return (reverse ? searchRegexpBackward : searchRegexpForward)(doc, query, pos)\n }\n }\n }\n\n SearchCursor.prototype = {\n findNext: function() {return this.find(false)},\n findPrevious: function() {return this.find(true)},\n\n find: function(reverse) {\n var result = this.matches(reverse, this.doc.clipPos(reverse ? this.pos.from : this.pos.to))\n\n // Implements weird auto-growing behavior on null-matches for\n // backwards-compatibility with the vim code (unfortunately)\n while (result && CodeMirror.cmpPos(result.from, result.to) == 0) {\n if (reverse) {\n if (result.from.ch) result.from = Pos(result.from.line, result.from.ch - 1)\n else if (result.from.line == this.doc.firstLine()) result = null\n else result = this.matches(reverse, this.doc.clipPos(Pos(result.from.line - 1)))\n } else {\n if (result.to.ch < this.doc.getLine(result.to.line).length) result.to = Pos(result.to.line, result.to.ch + 1)\n else if (result.to.line == this.doc.lastLine()) result = null\n else result = this.matches(reverse, Pos(result.to.line + 1, 0))\n }\n }\n\n if (result) {\n this.pos = result\n this.atOccurrence = true\n return this.pos.match || true\n } else {\n var end = Pos(reverse ? this.doc.firstLine() : this.doc.lastLine() + 1, 0)\n this.pos = {from: end, to: end}\n return this.atOccurrence = false\n }\n },\n\n from: function() {if (this.atOccurrence) return this.pos.from},\n to: function() {if (this.atOccurrence) return this.pos.to},\n\n replace: function(newText, origin) {\n if (!this.atOccurrence) return\n var lines = CodeMirror.splitLines(newText)\n this.doc.replaceRange(lines, this.pos.from, this.pos.to, origin)\n this.pos.to = Pos(this.pos.from.line + lines.length - 1,\n lines[lines.length - 1].length + (lines.length == 1 ? this.pos.from.ch : 0))\n }\n }\n\n CodeMirror.defineExtension(\"getSearchCursor\", function(query, pos, caseFold) {\n return new SearchCursor(this.doc, query, pos, caseFold)\n })\n CodeMirror.defineDocExtension(\"getSearchCursor\", function(query, pos, caseFold) {\n return new SearchCursor(this, query, pos, caseFold)\n })\n\n CodeMirror.defineExtension(\"selectMatches\", function(query, caseFold) {\n var ranges = []\n var cur = this.getSearchCursor(query, this.getCursor(\"from\"), caseFold)\n while (cur.findNext()) {\n if (CodeMirror.cmpPos(cur.to(), this.getCursor(\"to\")) > 0) break\n ranges.push({anchor: cur.from(), head: cur.to()})\n }\n if (ranges.length)\n this.setSelections(ranges, 0)\n })\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Open simple dialogs on top of an editor. Relies on dialog.css.\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n function dialogDiv(cm, template, bottom) {\n var wrap = cm.getWrapperElement();\n var dialog;\n dialog = wrap.appendChild(document.createElement(\"div\"));\n if (bottom)\n dialog.className = \"CodeMirror-dialog CodeMirror-dialog-bottom\";\n else\n dialog.className = \"CodeMirror-dialog CodeMirror-dialog-top\";\n\n if (typeof template == \"string\") {\n dialog.innerHTML = template;\n } else { // Assuming it's a detached DOM element.\n dialog.appendChild(template);\n }\n CodeMirror.addClass(wrap, 'dialog-opened');\n return dialog;\n }\n\n function closeNotification(cm, newVal) {\n if (cm.state.currentNotificationClose)\n cm.state.currentNotificationClose();\n cm.state.currentNotificationClose = newVal;\n }\n\n CodeMirror.defineExtension(\"openDialog\", function(template, callback, options) {\n if (!options) options = {};\n\n closeNotification(this, null);\n\n var dialog = dialogDiv(this, template, options.bottom);\n var closed = false, me = this;\n function close(newVal) {\n if (typeof newVal == 'string') {\n inp.value = newVal;\n } else {\n if (closed) return;\n closed = true;\n CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');\n dialog.parentNode.removeChild(dialog);\n me.focus();\n\n if (options.onClose) options.onClose(dialog);\n }\n }\n\n var inp = dialog.getElementsByTagName(\"input\")[0], button;\n if (inp) {\n inp.focus();\n\n if (options.value) {\n inp.value = options.value;\n if (options.selectValueOnOpen !== false) {\n inp.select();\n }\n }\n\n if (options.onInput)\n CodeMirror.on(inp, \"input\", function(e) { options.onInput(e, inp.value, close);});\n if (options.onKeyUp)\n CodeMirror.on(inp, \"keyup\", function(e) {options.onKeyUp(e, inp.value, close);});\n\n CodeMirror.on(inp, \"keydown\", function(e) {\n if (options && options.onKeyDown && options.onKeyDown(e, inp.value, close)) { return; }\n if (e.keyCode == 27 || (options.closeOnEnter !== false && e.keyCode == 13)) {\n inp.blur();\n CodeMirror.e_stop(e);\n close();\n }\n if (e.keyCode == 13) callback(inp.value, e);\n });\n\n if (options.closeOnBlur !== false) CodeMirror.on(dialog, \"focusout\", function (evt) {\n if (evt.relatedTarget !== null) close();\n });\n } else if (button = dialog.getElementsByTagName(\"button\")[0]) {\n CodeMirror.on(button, \"click\", function() {\n close();\n me.focus();\n });\n\n if (options.closeOnBlur !== false) CodeMirror.on(button, \"blur\", close);\n\n button.focus();\n }\n return close;\n });\n\n CodeMirror.defineExtension(\"openConfirm\", function(template, callbacks, options) {\n closeNotification(this, null);\n var dialog = dialogDiv(this, template, options && options.bottom);\n var buttons = dialog.getElementsByTagName(\"button\");\n var closed = false, me = this, blurring = 1;\n function close() {\n if (closed) return;\n closed = true;\n CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');\n dialog.parentNode.removeChild(dialog);\n me.focus();\n }\n buttons[0].focus();\n for (var i = 0; i < buttons.length; ++i) {\n var b = buttons[i];\n (function(callback) {\n CodeMirror.on(b, \"click\", function(e) {\n CodeMirror.e_preventDefault(e);\n close();\n if (callback) callback(me);\n });\n })(callbacks[i]);\n CodeMirror.on(b, \"blur\", function() {\n --blurring;\n setTimeout(function() { if (blurring <= 0) close(); }, 200);\n });\n CodeMirror.on(b, \"focus\", function() { ++blurring; });\n }\n });\n\n /*\n * openNotification\n * Opens a notification, that can be closed with an optional timer\n * (default 5000ms timer) and always closes on click.\n *\n * If a notification is opened while another is opened, it will close the\n * currently opened one and open the new one immediately.\n */\n CodeMirror.defineExtension(\"openNotification\", function(template, options) {\n closeNotification(this, close);\n var dialog = dialogDiv(this, template, options && options.bottom);\n var closed = false, doneTimer;\n var duration = options && typeof options.duration !== \"undefined\" ? options.duration : 5000;\n\n function close() {\n if (closed) return;\n closed = true;\n clearTimeout(doneTimer);\n CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');\n dialog.parentNode.removeChild(dialog);\n }\n\n CodeMirror.on(dialog, 'click', function(e) {\n CodeMirror.e_preventDefault(e);\n close();\n });\n\n if (duration)\n doneTimer = setTimeout(close, duration);\n\n return close;\n });\n});\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _graphql = require(\"graphql\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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\nclass TypeLink extends _react.default.Component {\n shouldComponentUpdate(nextProps) {\n return this.props.type !== nextProps.type;\n }\n\n render() {\n return renderType(this.props.type, this.props.onClick);\n }\n\n}\n\nexports.default = TypeLink;\n\n_defineProperty(TypeLink, \"propTypes\", {\n type: _propTypes.default.object,\n onClick: _propTypes.default.func\n});\n\nfunction renderType(type, onClick) {\n if (type instanceof _graphql.GraphQLNonNull) {\n return _react.default.createElement(\"span\", null, renderType(type.ofType, onClick), '!');\n }\n\n if (type instanceof _graphql.GraphQLList) {\n return _react.default.createElement(\"span\", null, '[', renderType(type.ofType, onClick), ']');\n }\n\n return _react.default.createElement(\"a\", {\n className: \"type-name\",\n onClick: event => {\n event.preventDefault();\n onClick(type, event);\n },\n href: \"#\"\n }, type.name);\n}","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * var result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n date.setDate(date.getDate() + amount);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * var result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\n\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n var dayOfMonth = date.getDate(); // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 1, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","function stylis_min (W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {\n }\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;\n","import { StyleSheet } from '@emotion/sheet';\nimport Stylis from '@emotion/stylis';\nimport '@emotion/weak-memoize';\n\n// https://github.com/thysultan/stylis.js/tree/master/plugins/rule-sheet\n// inlined to avoid umd wrapper and peerDep warnings/installing stylis\n// since we use stylis after closure compiler\nvar delimiter = '/*|*/';\nvar needle = delimiter + '}';\n\nfunction toSheet(block) {\n if (block) {\n Sheet.current.insert(block + '}');\n }\n}\n\nvar Sheet = {\n current: null\n};\nvar ruleSheet = function ruleSheet(context, content, selectors, parents, line, column, length, ns, depth, at) {\n switch (context) {\n // property\n case 1:\n {\n switch (content.charCodeAt(0)) {\n case 64:\n {\n // @import\n Sheet.current.insert(content + ';');\n return '';\n }\n // charcode for l\n\n case 108:\n {\n // charcode for b\n // this ignores label\n if (content.charCodeAt(2) === 98) {\n return '';\n }\n }\n }\n\n break;\n }\n // selector\n\n case 2:\n {\n if (ns === 0) return content + delimiter;\n break;\n }\n // at-rule\n\n case 3:\n {\n switch (ns) {\n // @font-face, @page\n case 102:\n case 112:\n {\n Sheet.current.insert(selectors[0] + content);\n return '';\n }\n\n default:\n {\n return content + (at === 0 ? delimiter : '');\n }\n }\n }\n\n case -2:\n {\n content.split(needle).forEach(toSheet);\n }\n }\n};\n\nvar createCache = function createCache(options) {\n if (options === undefined) options = {};\n var key = options.key || 'css';\n var stylisOptions;\n\n if (options.prefix !== undefined) {\n stylisOptions = {\n prefix: options.prefix\n };\n }\n\n var stylis = new Stylis(stylisOptions);\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {}; // $FlowFixMe\n\n var container;\n\n {\n container = options.container || document.head;\n var nodes = document.querySelectorAll(\"style[data-emotion-\" + key + \"]\");\n Array.prototype.forEach.call(nodes, function (node) {\n var attrib = node.getAttribute(\"data-emotion-\" + key); // $FlowFixMe\n\n attrib.split(' ').forEach(function (id) {\n inserted[id] = true;\n });\n\n if (node.parentNode !== container) {\n container.appendChild(node);\n }\n });\n }\n\n var _insert;\n\n {\n stylis.use(options.stylisPlugins)(ruleSheet);\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n var name = serialized.name;\n Sheet.current = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n var map = serialized.map;\n Sheet.current = {\n insert: function insert(rule) {\n sheet.insert(rule + map);\n }\n };\n }\n\n stylis(selector, serialized.styles);\n\n if (shouldCache) {\n cache.inserted[name] = true;\n }\n };\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // https://esbench.com/bench/5bf7371a4cd7e6009ef61d0a\n var commentStart = /\\/\\*/g;\n var commentEnd = /\\*\\//g;\n stylis.use(function (context, content) {\n switch (context) {\n case -1:\n {\n while (commentStart.test(content)) {\n commentEnd.lastIndex = commentStart.lastIndex;\n\n if (commentEnd.test(content)) {\n commentStart.lastIndex = commentEnd.lastIndex;\n continue;\n }\n\n throw new Error('Your styles have an unterminated comment (\"/*\" without corresponding \"*/\").');\n }\n\n commentStart.lastIndex = 0;\n break;\n }\n }\n });\n stylis.use(function (context, content, selectors) {\n switch (context) {\n case -1:\n {\n var flag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n var unsafePseudoClasses = content.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses && cache.compat !== true) {\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n var ignoreRegExp = new RegExp(unsafePseudoClass + \".*\\\\/\\\\* \" + flag + \" \\\\*\\\\/\");\n var ignore = ignoreRegExp.test(content);\n\n if (unsafePseudoClass && !ignore) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n }\n });\n }\n\n break;\n }\n }\n });\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n return cache;\n};\n\nexport default createCache;\n","/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv(): boolean {\n return Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport function dynamicRequire(mod: any, request: string): any {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n","var nodejsCustomInspectSymbol = typeof Symbol === 'function' && typeof Symbol.for === 'function' ? Symbol.for('nodejs.util.inspect.custom') : undefined;\nexport default nodejsCustomInspectSymbol;\n","import defineToJSON from '../jsutils/defineToJSON';\nimport { syntaxError } from '../error/syntaxError';\nimport { dedentBlockStringValue } from './blockString';\nimport { TokenKind } from './tokenKind';\n/**\n * Given a Source object, this returns 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 function createLexer(source, options) {\n var startOfFileToken = new Tok(TokenKind.SOF, 0, 0, 0, 0, null);\n var lexer = {\n source: source,\n options: options,\n lastToken: startOfFileToken,\n token: startOfFileToken,\n line: 1,\n lineStart: 0,\n advance: advanceLexer,\n lookahead: lookahead\n };\n return lexer;\n}\n\nfunction advanceLexer() {\n this.lastToken = this.token;\n var token = this.token = this.lookahead();\n return token;\n}\n\nfunction lookahead() {\n var token = this.token;\n\n if (token.kind !== TokenKind.EOF) {\n do {\n // Note: next is only mutable during parsing, so we cast to allow this.\n token = token.next || (token.next = readToken(this, token));\n } while (token.kind === TokenKind.COMMENT);\n }\n\n return token;\n}\n/**\n * The return type of createLexer.\n */\n\n\n// @internal\nexport function isPunctuatorToken(token) {\n var kind = token.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/**\n * Helper function for constructing the Token object.\n */\n\nfunction Tok(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\n\ndefineToJSON(Tok, function () {\n return {\n kind: this.kind,\n value: this.value,\n line: this.line,\n column: this.column\n };\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 Tok(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 Tok(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 Tok(TokenKind.DOLLAR, pos, pos + 1, line, col, prev);\n // &\n\n case 38:\n return new Tok(TokenKind.AMP, pos, pos + 1, line, col, prev);\n // (\n\n case 40:\n return new Tok(TokenKind.PAREN_L, pos, pos + 1, line, col, prev);\n // )\n\n case 41:\n return new Tok(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 Tok(TokenKind.SPREAD, pos, pos + 3, line, col, prev);\n }\n\n break;\n // :\n\n case 58:\n return new Tok(TokenKind.COLON, pos, pos + 1, line, col, prev);\n // =\n\n case 61:\n return new Tok(TokenKind.EQUALS, pos, pos + 1, line, col, prev);\n // @\n\n case 64:\n return new Tok(TokenKind.AT, pos, pos + 1, line, col, prev);\n // [\n\n case 91:\n return new Tok(TokenKind.BRACKET_L, pos, pos + 1, line, col, prev);\n // ]\n\n case 93:\n return new Tok(TokenKind.BRACKET_R, pos, pos + 1, line, col, prev);\n // {\n\n case 123:\n return new Tok(TokenKind.BRACE_L, pos, pos + 1, line, col, prev);\n // |\n\n case 124:\n return new Tok(TokenKind.PIPE, pos, pos + 1, line, col, prev);\n // }\n\n case 125:\n return new Tok(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 Tok(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 e\n\n\n if (code === 46 || code === 69 || code === 101) {\n throw syntaxError(source, position, \"Invalid number, expected digit but got: \".concat(printCharCode(code), \".\"));\n }\n\n return new Tok(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 Tok(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 Tok(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 Tok(TokenKind.NAME, start, position, line, col, prev, body.slice(start, position));\n}\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","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","export default function _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 _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nimport { Kind } from '../language/kinds';\nimport { visit, visitWithTypeInfo } from '../language/visitor';\nimport { TypeInfo } from '../utilities/TypeInfo';\n\n/**\n * An instance of this class is passed as the \"this\" context to all validators,\n * allowing access to commonly useful contextual information from within a\n * validation rule.\n */\nexport var ASTValidationContext =\n/*#__PURE__*/\nfunction () {\n function ASTValidationContext(ast, onError) {\n this._ast = ast;\n this._errors = [];\n this._fragments = undefined;\n this._fragmentSpreads = new Map();\n this._recursivelyReferencedFragments = new Map();\n this._onError = onError;\n }\n\n var _proto = ASTValidationContext.prototype;\n\n _proto.reportError = function reportError(error) {\n this._errors.push(error);\n\n if (this._onError) {\n this._onError(error);\n }\n } // @deprecated: use onError callback instead - will be removed in v15.\n ;\n\n _proto.getErrors = function getErrors() {\n return this._errors;\n };\n\n _proto.getDocument = function getDocument() {\n return this._ast;\n };\n\n _proto.getFragment = function getFragment(name) {\n var fragments = this._fragments;\n\n if (!fragments) {\n this._fragments = fragments = this.getDocument().definitions.reduce(function (frags, statement) {\n if (statement.kind === Kind.FRAGMENT_DEFINITION) {\n frags[statement.name.value] = statement;\n }\n\n return frags;\n }, Object.create(null));\n }\n\n return fragments[name];\n };\n\n _proto.getFragmentSpreads = function getFragmentSpreads(node) {\n var spreads = this._fragmentSpreads.get(node);\n\n if (!spreads) {\n spreads = [];\n var setsToVisit = [node];\n\n while (setsToVisit.length !== 0) {\n var set = setsToVisit.pop();\n\n for (var _i2 = 0, _set$selections2 = set.selections; _i2 < _set$selections2.length; _i2++) {\n var selection = _set$selections2[_i2];\n\n if (selection.kind === Kind.FRAGMENT_SPREAD) {\n spreads.push(selection);\n } else if (selection.selectionSet) {\n setsToVisit.push(selection.selectionSet);\n }\n }\n }\n\n this._fragmentSpreads.set(node, spreads);\n }\n\n return spreads;\n };\n\n _proto.getRecursivelyReferencedFragments = function getRecursivelyReferencedFragments(operation) {\n var fragments = this._recursivelyReferencedFragments.get(operation);\n\n if (!fragments) {\n fragments = [];\n var collectedNames = Object.create(null);\n var nodesToVisit = [operation.selectionSet];\n\n while (nodesToVisit.length !== 0) {\n var node = nodesToVisit.pop();\n\n for (var _i4 = 0, _this$getFragmentSpre2 = this.getFragmentSpreads(node); _i4 < _this$getFragmentSpre2.length; _i4++) {\n var spread = _this$getFragmentSpre2[_i4];\n var fragName = spread.name.value;\n\n if (collectedNames[fragName] !== true) {\n collectedNames[fragName] = true;\n var fragment = this.getFragment(fragName);\n\n if (fragment) {\n fragments.push(fragment);\n nodesToVisit.push(fragment.selectionSet);\n }\n }\n }\n }\n\n this._recursivelyReferencedFragments.set(operation, fragments);\n }\n\n return fragments;\n };\n\n return ASTValidationContext;\n}();\nexport var SDLValidationContext =\n/*#__PURE__*/\nfunction (_ASTValidationContext) {\n _inheritsLoose(SDLValidationContext, _ASTValidationContext);\n\n function SDLValidationContext(ast, schema, onError) {\n var _this;\n\n _this = _ASTValidationContext.call(this, ast, onError) || this;\n _this._schema = schema;\n return _this;\n }\n\n var _proto2 = SDLValidationContext.prototype;\n\n _proto2.getSchema = function getSchema() {\n return this._schema;\n };\n\n return SDLValidationContext;\n}(ASTValidationContext);\nexport var ValidationContext =\n/*#__PURE__*/\nfunction (_ASTValidationContext2) {\n _inheritsLoose(ValidationContext, _ASTValidationContext2);\n\n function ValidationContext(schema, ast, typeInfo, onError) {\n var _this2;\n\n _this2 = _ASTValidationContext2.call(this, ast, onError) || this;\n _this2._schema = schema;\n _this2._typeInfo = typeInfo;\n _this2._variableUsages = new Map();\n _this2._recursiveVariableUsages = new Map();\n return _this2;\n }\n\n var _proto3 = ValidationContext.prototype;\n\n _proto3.getSchema = function getSchema() {\n return this._schema;\n };\n\n _proto3.getVariableUsages = function getVariableUsages(node) {\n var usages = this._variableUsages.get(node);\n\n if (!usages) {\n var newUsages = [];\n var typeInfo = new TypeInfo(this._schema);\n visit(node, visitWithTypeInfo(typeInfo, {\n VariableDefinition: function VariableDefinition() {\n return false;\n },\n Variable: function Variable(variable) {\n newUsages.push({\n node: variable,\n type: typeInfo.getInputType(),\n defaultValue: typeInfo.getDefaultValue()\n });\n }\n }));\n usages = newUsages;\n\n this._variableUsages.set(node, usages);\n }\n\n return usages;\n };\n\n _proto3.getRecursiveVariableUsages = function getRecursiveVariableUsages(operation) {\n var usages = this._recursiveVariableUsages.get(operation);\n\n if (!usages) {\n usages = this.getVariableUsages(operation);\n\n for (var _i6 = 0, _this$getRecursivelyR2 = this.getRecursivelyReferencedFragments(operation); _i6 < _this$getRecursivelyR2.length; _i6++) {\n var frag = _this$getRecursivelyR2[_i6];\n usages = usages.concat(this.getVariableUsages(frag));\n }\n\n this._recursiveVariableUsages.set(operation, usages);\n }\n\n return usages;\n };\n\n _proto3.getType = function getType() {\n return this._typeInfo.getType();\n };\n\n _proto3.getParentType = function getParentType() {\n return this._typeInfo.getParentType();\n };\n\n _proto3.getInputType = function getInputType() {\n return this._typeInfo.getInputType();\n };\n\n _proto3.getParentInputType = function getParentInputType() {\n return this._typeInfo.getParentInputType();\n };\n\n _proto3.getFieldDef = function getFieldDef() {\n return this._typeInfo.getFieldDef();\n };\n\n _proto3.getDirective = function getDirective() {\n return this._typeInfo.getDirective();\n };\n\n _proto3.getArgument = function getArgument() {\n return this._typeInfo.getArgument();\n };\n\n return ValidationContext;\n}(ASTValidationContext);\n","// TinyColor v1.4.2\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","import defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nexport default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? Object(arguments[i]) : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { createElement, Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { findDOMNode } from 'react-dom';\nimport invariant from 'invariant';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\n\nvar Manager = function () {\n function Manager() {\n _classCallCheck(this, Manager);\n\n _defineProperty(this, \"refs\", {});\n }\n\n _createClass(Manager, [{\n key: \"add\",\n value: function add(collection, ref) {\n if (!this.refs[collection]) {\n this.refs[collection] = [];\n }\n\n this.refs[collection].push(ref);\n }\n }, {\n key: \"remove\",\n value: function remove(collection, ref) {\n var index = this.getIndex(collection, ref);\n\n if (index !== -1) {\n this.refs[collection].splice(index, 1);\n }\n }\n }, {\n key: \"isActive\",\n value: function isActive() {\n return this.active;\n }\n }, {\n key: \"getActive\",\n value: function getActive() {\n var _this = this;\n\n return this.refs[this.active.collection].find(function (_ref) {\n var node = _ref.node;\n return node.sortableInfo.index == _this.active.index;\n });\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(collection, ref) {\n return this.refs[collection].indexOf(ref);\n }\n }, {\n key: \"getOrderedRefs\",\n value: function getOrderedRefs() {\n var collection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.active.collection;\n return this.refs[collection].sort(sortByIndex);\n }\n }]);\n\n return Manager;\n}();\n\nfunction sortByIndex(_ref2, _ref3) {\n var index1 = _ref2.node.sortableInfo.index;\n var index2 = _ref3.node.sortableInfo.index;\n return index1 - index2;\n}\n\nfunction arrayMove(array, from, to) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof console !== 'undefined') {\n console.warn(\"Deprecation warning: arrayMove will no longer be exported by 'react-sortable-hoc' in the next major release. Please install the `array-move` package locally instead. https://www.npmjs.com/package/array-move\");\n }\n }\n\n array = array.slice();\n array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);\n return array;\n}\nfunction omit(obj, keysToOmit) {\n return Object.keys(obj).reduce(function (acc, key) {\n if (keysToOmit.indexOf(key) === -1) {\n acc[key] = obj[key];\n }\n\n return acc;\n }, {});\n}\nvar events = {\n end: ['touchend', 'touchcancel', 'mouseup'],\n move: ['touchmove', 'mousemove'],\n start: ['touchstart', 'mousedown']\n};\nvar vendorPrefix = function () {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return '';\n }\n\n var styles = window.getComputedStyle(document.documentElement, '') || ['-moz-hidden-iframe'];\n var pre = (Array.prototype.slice.call(styles).join('').match(/-(moz|webkit|ms)-/) || styles.OLink === '' && ['', 'o'])[1];\n\n switch (pre) {\n case 'ms':\n return 'ms';\n\n default:\n return pre && pre.length ? pre[0].toUpperCase() + pre.substr(1) : '';\n }\n}();\nfunction setInlineStyles(node, styles) {\n Object.keys(styles).forEach(function (key) {\n node.style[key] = styles[key];\n });\n}\nfunction setTranslate3d(node, translate) {\n node.style[\"\".concat(vendorPrefix, \"Transform\")] = translate == null ? '' : \"translate3d(\".concat(translate.x, \"px,\").concat(translate.y, \"px,0)\");\n}\nfunction setTransitionDuration(node, duration) {\n node.style[\"\".concat(vendorPrefix, \"TransitionDuration\")] = duration == null ? '' : \"\".concat(duration, \"ms\");\n}\nfunction closest(el, fn) {\n while (el) {\n if (fn(el)) {\n return el;\n }\n\n el = el.parentNode;\n }\n\n return null;\n}\nfunction limit(min, max, value) {\n return Math.max(min, Math.min(value, max));\n}\n\nfunction getPixelValue(stringValue) {\n if (stringValue.substr(-2) === 'px') {\n return parseFloat(stringValue);\n }\n\n return 0;\n}\n\nfunction getElementMargin(element) {\n var style = window.getComputedStyle(element);\n return {\n bottom: getPixelValue(style.marginBottom),\n left: getPixelValue(style.marginLeft),\n right: getPixelValue(style.marginRight),\n top: getPixelValue(style.marginTop)\n };\n}\nfunction provideDisplayName(prefix, Component$$1) {\n var componentName = Component$$1.displayName || Component$$1.name;\n return componentName ? \"\".concat(prefix, \"(\").concat(componentName, \")\") : prefix;\n}\nfunction getScrollAdjustedBoundingClientRect(node, scrollDelta) {\n var boundingClientRect = node.getBoundingClientRect();\n return {\n top: boundingClientRect.top + scrollDelta.top,\n left: boundingClientRect.left + scrollDelta.left\n };\n}\nfunction getPosition(event) {\n if (event.touches && event.touches.length) {\n return {\n x: event.touches[0].pageX,\n y: event.touches[0].pageY\n };\n } else if (event.changedTouches && event.changedTouches.length) {\n return {\n x: event.changedTouches[0].pageX,\n y: event.changedTouches[0].pageY\n };\n } else {\n return {\n x: event.pageX,\n y: event.pageY\n };\n }\n}\nfunction isTouchEvent(event) {\n return event.touches && event.touches.length || event.changedTouches && event.changedTouches.length;\n}\nfunction getEdgeOffset(node, parent) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n left: 0,\n top: 0\n };\n\n if (!node) {\n return undefined;\n }\n\n var nodeOffset = {\n left: offset.left + node.offsetLeft,\n top: offset.top + node.offsetTop\n };\n\n if (node.parentNode === parent) {\n return nodeOffset;\n }\n\n return getEdgeOffset(node.parentNode, parent, nodeOffset);\n}\nfunction getTargetIndex(newIndex, prevIndex, oldIndex) {\n if (newIndex < oldIndex && newIndex > prevIndex) {\n return newIndex - 1;\n } else if (newIndex > oldIndex && newIndex < prevIndex) {\n return newIndex + 1;\n } else {\n return newIndex;\n }\n}\nfunction getLockPixelOffset(_ref) {\n var lockOffset = _ref.lockOffset,\n width = _ref.width,\n height = _ref.height;\n var offsetX = lockOffset;\n var offsetY = lockOffset;\n var unit = 'px';\n\n if (typeof lockOffset === 'string') {\n var match = /^[+-]?\\d*(?:\\.\\d*)?(px|%)$/.exec(lockOffset);\n invariant(match !== null, 'lockOffset value should be a number or a string of a ' + 'number followed by \"px\" or \"%\". Given %s', lockOffset);\n offsetX = parseFloat(lockOffset);\n offsetY = parseFloat(lockOffset);\n unit = match[1];\n }\n\n invariant(isFinite(offsetX) && isFinite(offsetY), 'lockOffset value should be a finite. Given %s', lockOffset);\n\n if (unit === '%') {\n offsetX = offsetX * width / 100;\n offsetY = offsetY * height / 100;\n }\n\n return {\n x: offsetX,\n y: offsetY\n };\n}\nfunction getLockPixelOffsets(_ref2) {\n var height = _ref2.height,\n width = _ref2.width,\n lockOffset = _ref2.lockOffset;\n var offsets = Array.isArray(lockOffset) ? lockOffset : [lockOffset, lockOffset];\n invariant(offsets.length === 2, 'lockOffset prop of SortableContainer should be a single ' + 'value or an array of exactly two values. Given %s', lockOffset);\n\n var _offsets = _slicedToArray(offsets, 2),\n minLockOffset = _offsets[0],\n maxLockOffset = _offsets[1];\n\n return [getLockPixelOffset({\n height: height,\n lockOffset: minLockOffset,\n width: width\n }), getLockPixelOffset({\n height: height,\n lockOffset: maxLockOffset,\n width: width\n })];\n}\n\nfunction isScrollable(el) {\n var computedStyle = window.getComputedStyle(el);\n var overflowRegex = /(auto|scroll)/;\n var properties = ['overflow', 'overflowX', 'overflowY'];\n return properties.find(function (property) {\n return overflowRegex.test(computedStyle[property]);\n });\n}\n\nfunction getScrollingParent(el) {\n if (!(el instanceof HTMLElement)) {\n return null;\n } else if (isScrollable(el)) {\n return el;\n } else {\n return getScrollingParent(el.parentNode);\n }\n}\nfunction getContainerGridGap(element) {\n var style = window.getComputedStyle(element);\n\n if (style.display === 'grid') {\n return {\n x: getPixelValue(style.gridColumnGap),\n y: getPixelValue(style.gridRowGap)\n };\n }\n\n return {\n x: 0,\n y: 0\n };\n}\nvar KEYCODE = {\n TAB: 9,\n ESC: 27,\n SPACE: 32,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40\n};\nvar NodeType = {\n Anchor: 'A',\n Button: 'BUTTON',\n Canvas: 'CANVAS',\n Input: 'INPUT',\n Option: 'OPTION',\n Textarea: 'TEXTAREA',\n Select: 'SELECT'\n};\nfunction cloneNode(node) {\n var selector = 'input, textarea, select, canvas, [contenteditable]';\n var fields = node.querySelectorAll(selector);\n var clonedNode = node.cloneNode(true);\n\n var clonedFields = _toConsumableArray(clonedNode.querySelectorAll(selector));\n\n clonedFields.forEach(function (field, i) {\n if (field.type !== 'file') {\n field.value = fields[i].value;\n }\n\n if (field.type === 'radio' && field.name) {\n field.name = \"__sortableClone__\".concat(field.name);\n }\n\n if (field.tagName === NodeType.Canvas && fields[i].width > 0 && fields[i].height > 0) {\n var destCtx = field.getContext('2d');\n destCtx.drawImage(fields[i], 0, 0);\n }\n });\n return clonedNode;\n}\n\nfunction sortableHandle(WrappedComponent) {\n var _class, _temp;\n\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n withRef: false\n };\n return _temp = _class = function (_React$Component) {\n _inherits(WithSortableHandle, _React$Component);\n\n function WithSortableHandle() {\n _classCallCheck(this, WithSortableHandle);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(WithSortableHandle).apply(this, arguments));\n }\n\n _createClass(WithSortableHandle, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var node = findDOMNode(this);\n node.sortableHandle = true;\n }\n }, {\n key: \"getWrappedInstance\",\n value: function getWrappedInstance() {\n invariant(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableHandle() call');\n return this.refs.wrappedInstance;\n }\n }, {\n key: \"render\",\n value: function render() {\n var ref = config.withRef ? 'wrappedInstance' : null;\n return createElement(WrappedComponent, _extends({\n ref: ref\n }, this.props));\n }\n }]);\n\n return WithSortableHandle;\n }(Component), _defineProperty(_class, \"displayName\", provideDisplayName('sortableHandle', WrappedComponent)), _temp;\n}\nfunction isSortableHandle(node) {\n return node.sortableHandle != null;\n}\n\nvar AutoScroller = function () {\n function AutoScroller(container, onScrollCallback) {\n _classCallCheck(this, AutoScroller);\n\n this.container = container;\n this.onScrollCallback = onScrollCallback;\n }\n\n _createClass(AutoScroller, [{\n key: \"clear\",\n value: function clear() {\n if (this.interval == null) {\n return;\n }\n\n clearInterval(this.interval);\n this.interval = null;\n }\n }, {\n key: \"update\",\n value: function update(_ref) {\n var _this = this;\n\n var translate = _ref.translate,\n minTranslate = _ref.minTranslate,\n maxTranslate = _ref.maxTranslate,\n width = _ref.width,\n height = _ref.height;\n var direction = {\n x: 0,\n y: 0\n };\n var speed = {\n x: 1,\n y: 1\n };\n var acceleration = {\n x: 10,\n y: 10\n };\n var _this$container = this.container,\n scrollTop = _this$container.scrollTop,\n scrollLeft = _this$container.scrollLeft,\n scrollHeight = _this$container.scrollHeight,\n scrollWidth = _this$container.scrollWidth,\n clientHeight = _this$container.clientHeight,\n clientWidth = _this$container.clientWidth;\n var isTop = scrollTop === 0;\n var isBottom = scrollHeight - scrollTop - clientHeight === 0;\n var isLeft = scrollLeft === 0;\n var isRight = scrollWidth - scrollLeft - clientWidth === 0;\n\n if (translate.y >= maxTranslate.y - height / 2 && !isBottom) {\n direction.y = 1;\n speed.y = acceleration.y * Math.abs((maxTranslate.y - height / 2 - translate.y) / height);\n } else if (translate.x >= maxTranslate.x - width / 2 && !isRight) {\n direction.x = 1;\n speed.x = acceleration.x * Math.abs((maxTranslate.x - width / 2 - translate.x) / width);\n } else if (translate.y <= minTranslate.y + height / 2 && !isTop) {\n direction.y = -1;\n speed.y = acceleration.y * Math.abs((translate.y - height / 2 - minTranslate.y) / height);\n } else if (translate.x <= minTranslate.x + width / 2 && !isLeft) {\n direction.x = -1;\n speed.x = acceleration.x * Math.abs((translate.x - width / 2 - minTranslate.x) / width);\n }\n\n if (this.interval) {\n this.clear();\n this.isAutoScrolling = false;\n }\n\n if (direction.x !== 0 || direction.y !== 0) {\n this.interval = setInterval(function () {\n _this.isAutoScrolling = true;\n var offset = {\n left: speed.x * direction.x,\n top: speed.y * direction.y\n };\n _this.container.scrollTop += offset.top;\n _this.container.scrollLeft += offset.left;\n\n _this.onScrollCallback(offset);\n }, 5);\n }\n }\n }]);\n\n return AutoScroller;\n}();\n\nfunction defaultGetHelperDimensions(_ref) {\n var node = _ref.node;\n return {\n height: node.offsetHeight,\n width: node.offsetWidth\n };\n}\n\nfunction defaultShouldCancelStart(event) {\n var interactiveElements = [NodeType.Input, NodeType.Textarea, NodeType.Select, NodeType.Option, NodeType.Button];\n\n if (interactiveElements.indexOf(event.target.tagName) !== -1) {\n return true;\n }\n\n if (closest(event.target, function (el) {\n return el.contentEditable === 'true';\n })) {\n return true;\n }\n\n return false;\n}\n\nvar propTypes = {\n axis: PropTypes.oneOf(['x', 'y', 'xy']),\n contentWindow: PropTypes.any,\n disableAutoscroll: PropTypes.bool,\n distance: PropTypes.number,\n getContainer: PropTypes.func,\n getHelperDimensions: PropTypes.func,\n helperClass: PropTypes.string,\n helperContainer: PropTypes.oneOfType([PropTypes.func, typeof HTMLElement === 'undefined' ? PropTypes.any : PropTypes.instanceOf(HTMLElement)]),\n hideSortableGhost: PropTypes.bool,\n keyboardSortingTransitionDuration: PropTypes.number,\n lockAxis: PropTypes.string,\n lockOffset: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string]))]),\n lockToContainerEdges: PropTypes.bool,\n onSortEnd: PropTypes.func,\n onSortMove: PropTypes.func,\n onSortOver: PropTypes.func,\n onSortStart: PropTypes.func,\n pressDelay: PropTypes.number,\n pressThreshold: PropTypes.number,\n keyCodes: PropTypes.shape({\n lift: PropTypes.arrayOf(PropTypes.number),\n drop: PropTypes.arrayOf(PropTypes.number),\n cancel: PropTypes.arrayOf(PropTypes.number),\n up: PropTypes.arrayOf(PropTypes.number),\n down: PropTypes.arrayOf(PropTypes.number)\n }),\n shouldCancelStart: PropTypes.func,\n transitionDuration: PropTypes.number,\n updateBeforeSortStart: PropTypes.func,\n useDragHandle: PropTypes.bool,\n useWindowAsScrollContainer: PropTypes.bool\n};\nvar defaultKeyCodes = {\n lift: [KEYCODE.SPACE],\n drop: [KEYCODE.SPACE],\n cancel: [KEYCODE.ESC],\n up: [KEYCODE.UP, KEYCODE.LEFT],\n down: [KEYCODE.DOWN, KEYCODE.RIGHT]\n};\nvar defaultProps = {\n axis: 'y',\n disableAutoscroll: false,\n distance: 0,\n getHelperDimensions: defaultGetHelperDimensions,\n hideSortableGhost: true,\n lockOffset: '50%',\n lockToContainerEdges: false,\n pressDelay: 0,\n pressThreshold: 5,\n keyCodes: defaultKeyCodes,\n shouldCancelStart: defaultShouldCancelStart,\n transitionDuration: 300,\n useWindowAsScrollContainer: false\n};\nvar omittedProps = Object.keys(propTypes);\nfunction validateProps(props) {\n invariant(!(props.distance && props.pressDelay), 'Attempted to set both `pressDelay` and `distance` on SortableContainer, you may only use one or the other, not both at the same time.');\n}\n\nfunction _finallyRethrows(body, finalizer) {\n try {\n var result = body();\n } catch (e) {\n return finalizer(true, e);\n }\n\n if (result && result.then) {\n return result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n }\n\n return finalizer(false, value);\n}\nfunction sortableContainer(WrappedComponent) {\n var _class, _temp;\n\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n withRef: false\n };\n return _temp = _class = function (_React$Component) {\n _inherits(WithSortableContainer, _React$Component);\n\n function WithSortableContainer(props) {\n var _this;\n\n _classCallCheck(this, WithSortableContainer);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(WithSortableContainer).call(this, props));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {});\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleStart\", function (event) {\n var _this$props = _this.props,\n distance = _this$props.distance,\n shouldCancelStart = _this$props.shouldCancelStart;\n\n if (event.button === 2 || shouldCancelStart(event)) {\n return;\n }\n\n _this.touched = true;\n _this.position = getPosition(event);\n var node = closest(event.target, function (el) {\n return el.sortableInfo != null;\n });\n\n if (node && node.sortableInfo && _this.nodeIsChild(node) && !_this.state.sorting) {\n var useDragHandle = _this.props.useDragHandle;\n var _node$sortableInfo = node.sortableInfo,\n index = _node$sortableInfo.index,\n collection = _node$sortableInfo.collection,\n disabled = _node$sortableInfo.disabled;\n\n if (disabled) {\n return;\n }\n\n if (useDragHandle && !closest(event.target, isSortableHandle)) {\n return;\n }\n\n _this.manager.active = {\n collection: collection,\n index: index\n };\n\n if (!isTouchEvent(event) && event.target.tagName === NodeType.Anchor) {\n event.preventDefault();\n }\n\n if (!distance) {\n if (_this.props.pressDelay === 0) {\n _this.handlePress(event);\n } else {\n _this.pressTimer = setTimeout(function () {\n return _this.handlePress(event);\n }, _this.props.pressDelay);\n }\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"nodeIsChild\", function (node) {\n return node.sortableInfo.manager === _this.manager;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleMove\", function (event) {\n var _this$props2 = _this.props,\n distance = _this$props2.distance,\n pressThreshold = _this$props2.pressThreshold;\n\n if (!_this.state.sorting && _this.touched && !_this._awaitingUpdateBeforeSortStart) {\n var position = getPosition(event);\n var delta = {\n x: _this.position.x - position.x,\n y: _this.position.y - position.y\n };\n var combinedDelta = Math.abs(delta.x) + Math.abs(delta.y);\n _this.delta = delta;\n\n if (!distance && (!pressThreshold || combinedDelta >= pressThreshold)) {\n clearTimeout(_this.cancelTimer);\n _this.cancelTimer = setTimeout(_this.cancel, 0);\n } else if (distance && combinedDelta >= distance && _this.manager.isActive()) {\n _this.handlePress(event);\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleEnd\", function () {\n _this.touched = false;\n\n _this.cancel();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"cancel\", function () {\n var distance = _this.props.distance;\n var sorting = _this.state.sorting;\n\n if (!sorting) {\n if (!distance) {\n clearTimeout(_this.pressTimer);\n }\n\n _this.manager.active = null;\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handlePress\", function (event) {\n try {\n var active = _this.manager.getActive();\n\n var _temp6 = function () {\n if (active) {\n var _temp7 = function _temp7() {\n var index = _node.sortableInfo.index;\n var margin = getElementMargin(_node);\n var gridGap = getContainerGridGap(_this.container);\n\n var containerBoundingRect = _this.scrollContainer.getBoundingClientRect();\n\n var dimensions = _getHelperDimensions({\n index: index,\n node: _node,\n collection: _collection\n });\n\n _this.node = _node;\n _this.margin = margin;\n _this.gridGap = gridGap;\n _this.width = dimensions.width;\n _this.height = dimensions.height;\n _this.marginOffset = {\n x: _this.margin.left + _this.margin.right + _this.gridGap.x,\n y: Math.max(_this.margin.top, _this.margin.bottom, _this.gridGap.y)\n };\n _this.boundingClientRect = _node.getBoundingClientRect();\n _this.containerBoundingRect = containerBoundingRect;\n _this.index = index;\n _this.newIndex = index;\n _this.axis = {\n x: _axis.indexOf('x') >= 0,\n y: _axis.indexOf('y') >= 0\n };\n _this.offsetEdge = getEdgeOffset(_node, _this.container);\n\n if (_isKeySorting) {\n _this.initialOffset = getPosition(_objectSpread({}, event, {\n pageX: _this.boundingClientRect.left,\n pageY: _this.boundingClientRect.top\n }));\n } else {\n _this.initialOffset = getPosition(event);\n }\n\n _this.initialScroll = {\n left: _this.scrollContainer.scrollLeft,\n top: _this.scrollContainer.scrollTop\n };\n _this.initialWindowScroll = {\n left: window.pageXOffset,\n top: window.pageYOffset\n };\n _this.helper = _this.helperContainer.appendChild(cloneNode(_node));\n setInlineStyles(_this.helper, {\n boxSizing: 'border-box',\n height: \"\".concat(_this.height, \"px\"),\n left: \"\".concat(_this.boundingClientRect.left - margin.left, \"px\"),\n pointerEvents: 'none',\n position: 'fixed',\n top: \"\".concat(_this.boundingClientRect.top - margin.top, \"px\"),\n width: \"\".concat(_this.width, \"px\")\n });\n\n if (_isKeySorting) {\n _this.helper.focus();\n }\n\n if (_hideSortableGhost) {\n _this.sortableGhost = _node;\n setInlineStyles(_node, {\n opacity: 0,\n visibility: 'hidden'\n });\n }\n\n _this.minTranslate = {};\n _this.maxTranslate = {};\n\n if (_isKeySorting) {\n var _ref = _useWindowAsScrollContainer ? {\n top: 0,\n left: 0,\n width: _this.contentWindow.innerWidth,\n height: _this.contentWindow.innerHeight\n } : _this.containerBoundingRect,\n containerTop = _ref.top,\n containerLeft = _ref.left,\n containerWidth = _ref.width,\n containerHeight = _ref.height;\n\n var containerBottom = containerTop + containerHeight;\n var containerRight = containerLeft + containerWidth;\n\n if (_this.axis.x) {\n _this.minTranslate.x = containerLeft - _this.boundingClientRect.left;\n _this.maxTranslate.x = containerRight - (_this.boundingClientRect.left + _this.width);\n }\n\n if (_this.axis.y) {\n _this.minTranslate.y = containerTop - _this.boundingClientRect.top;\n _this.maxTranslate.y = containerBottom - (_this.boundingClientRect.top + _this.height);\n }\n } else {\n if (_this.axis.x) {\n _this.minTranslate.x = (_useWindowAsScrollContainer ? 0 : containerBoundingRect.left) - _this.boundingClientRect.left - _this.width / 2;\n _this.maxTranslate.x = (_useWindowAsScrollContainer ? _this.contentWindow.innerWidth : containerBoundingRect.left + containerBoundingRect.width) - _this.boundingClientRect.left - _this.width / 2;\n }\n\n if (_this.axis.y) {\n _this.minTranslate.y = (_useWindowAsScrollContainer ? 0 : containerBoundingRect.top) - _this.boundingClientRect.top - _this.height / 2;\n _this.maxTranslate.y = (_useWindowAsScrollContainer ? _this.contentWindow.innerHeight : containerBoundingRect.top + containerBoundingRect.height) - _this.boundingClientRect.top - _this.height / 2;\n }\n }\n\n if (_helperClass) {\n _helperClass.split(' ').forEach(function (className) {\n return _this.helper.classList.add(className);\n });\n }\n\n _this.listenerNode = event.touches ? _node : _this.contentWindow;\n\n if (_isKeySorting) {\n _this.listenerNode.addEventListener('wheel', _this.handleKeyEnd, true);\n\n _this.listenerNode.addEventListener('mousedown', _this.handleKeyEnd, true);\n\n _this.listenerNode.addEventListener('keydown', _this.handleKeyDown);\n } else {\n events.move.forEach(function (eventName) {\n return _this.listenerNode.addEventListener(eventName, _this.handleSortMove, false);\n });\n events.end.forEach(function (eventName) {\n return _this.listenerNode.addEventListener(eventName, _this.handleSortEnd, false);\n });\n }\n\n _this.setState({\n sorting: true,\n sortingIndex: index\n });\n\n if (_onSortStart) {\n _onSortStart({\n node: _node,\n index: index,\n collection: _collection,\n isKeySorting: _isKeySorting,\n nodes: _this.manager.getOrderedRefs(),\n helper: _this.helper\n }, event);\n }\n\n if (_isKeySorting) {\n _this.keyMove(0);\n }\n };\n\n var _this$props3 = _this.props,\n _axis = _this$props3.axis,\n _getHelperDimensions = _this$props3.getHelperDimensions,\n _helperClass = _this$props3.helperClass,\n _hideSortableGhost = _this$props3.hideSortableGhost,\n updateBeforeSortStart = _this$props3.updateBeforeSortStart,\n _onSortStart = _this$props3.onSortStart,\n _useWindowAsScrollContainer = _this$props3.useWindowAsScrollContainer;\n var _node = active.node,\n _collection = active.collection;\n var _isKeySorting = _this.manager.isKeySorting;\n\n var _temp8 = function () {\n if (typeof updateBeforeSortStart === 'function') {\n _this._awaitingUpdateBeforeSortStart = true;\n\n var _temp9 = _finallyRethrows(function () {\n var index = _node.sortableInfo.index;\n return Promise.resolve(updateBeforeSortStart({\n collection: _collection,\n index: index,\n node: _node,\n isKeySorting: _isKeySorting\n }, event)).then(function () {});\n }, function (_wasThrown, _result) {\n _this._awaitingUpdateBeforeSortStart = false;\n if (_wasThrown) throw _result;\n return _result;\n });\n\n if (_temp9 && _temp9.then) return _temp9.then(function () {});\n }\n }();\n\n return _temp8 && _temp8.then ? _temp8.then(_temp7) : _temp7(_temp8);\n }\n }();\n\n return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);\n } catch (e) {\n return Promise.reject(e);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleSortMove\", function (event) {\n var onSortMove = _this.props.onSortMove;\n\n if (typeof event.preventDefault === 'function') {\n event.preventDefault();\n }\n\n _this.updateHelperPosition(event);\n\n _this.animateNodes();\n\n _this.autoscroll();\n\n if (onSortMove) {\n onSortMove(event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleSortEnd\", function (event) {\n var _this$props4 = _this.props,\n hideSortableGhost = _this$props4.hideSortableGhost,\n onSortEnd = _this$props4.onSortEnd;\n var _this$manager = _this.manager,\n collection = _this$manager.active.collection,\n isKeySorting = _this$manager.isKeySorting;\n\n var nodes = _this.manager.getOrderedRefs();\n\n if (_this.listenerNode) {\n if (isKeySorting) {\n _this.listenerNode.removeEventListener('wheel', _this.handleKeyEnd, true);\n\n _this.listenerNode.removeEventListener('mousedown', _this.handleKeyEnd, true);\n\n _this.listenerNode.removeEventListener('keydown', _this.handleKeyDown);\n } else {\n events.move.forEach(function (eventName) {\n return _this.listenerNode.removeEventListener(eventName, _this.handleSortMove);\n });\n events.end.forEach(function (eventName) {\n return _this.listenerNode.removeEventListener(eventName, _this.handleSortEnd);\n });\n }\n }\n\n _this.helper.parentNode.removeChild(_this.helper);\n\n if (hideSortableGhost && _this.sortableGhost) {\n setInlineStyles(_this.sortableGhost, {\n opacity: '',\n visibility: ''\n });\n }\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n var _node2 = nodes[i];\n var el = _node2.node;\n _node2.edgeOffset = null;\n _node2.boundingClientRect = null;\n setTranslate3d(el, null);\n setTransitionDuration(el, null);\n _node2.translate = null;\n }\n\n _this.autoScroller.clear();\n\n _this.manager.active = null;\n _this.manager.isKeySorting = false;\n\n _this.setState({\n sorting: false,\n sortingIndex: null\n });\n\n if (typeof onSortEnd === 'function') {\n onSortEnd({\n collection: collection,\n newIndex: _this.newIndex,\n oldIndex: _this.index,\n isKeySorting: isKeySorting,\n nodes: nodes\n }, event);\n }\n\n _this.touched = false;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"autoscroll\", function () {\n var disableAutoscroll = _this.props.disableAutoscroll;\n var isKeySorting = _this.manager.isKeySorting;\n\n if (disableAutoscroll) {\n _this.autoScroller.clear();\n\n return;\n }\n\n if (isKeySorting) {\n var translate = _objectSpread({}, _this.translate);\n\n var scrollX = 0;\n var scrollY = 0;\n\n if (_this.axis.x) {\n translate.x = Math.min(_this.maxTranslate.x, Math.max(_this.minTranslate.x, _this.translate.x));\n scrollX = _this.translate.x - translate.x;\n }\n\n if (_this.axis.y) {\n translate.y = Math.min(_this.maxTranslate.y, Math.max(_this.minTranslate.y, _this.translate.y));\n scrollY = _this.translate.y - translate.y;\n }\n\n _this.translate = translate;\n setTranslate3d(_this.helper, _this.translate);\n _this.scrollContainer.scrollLeft += scrollX;\n _this.scrollContainer.scrollTop += scrollY;\n return;\n }\n\n _this.autoScroller.update({\n height: _this.height,\n maxTranslate: _this.maxTranslate,\n minTranslate: _this.minTranslate,\n translate: _this.translate,\n width: _this.width\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onAutoScroll\", function (offset) {\n _this.translate.x += offset.left;\n _this.translate.y += offset.top;\n\n _this.animateNodes();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleKeyDown\", function (event) {\n var keyCode = event.keyCode;\n var _this$props5 = _this.props,\n shouldCancelStart = _this$props5.shouldCancelStart,\n _this$props5$keyCodes = _this$props5.keyCodes,\n customKeyCodes = _this$props5$keyCodes === void 0 ? {} : _this$props5$keyCodes;\n\n var keyCodes = _objectSpread({}, defaultKeyCodes, customKeyCodes);\n\n if (_this.manager.active && !_this.manager.isKeySorting || !_this.manager.active && (!keyCodes.lift.includes(keyCode) || shouldCancelStart(event) || !_this.isValidSortingTarget(event))) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n if (keyCodes.lift.includes(keyCode) && !_this.manager.active) {\n _this.keyLift(event);\n } else if (keyCodes.drop.includes(keyCode) && _this.manager.active) {\n _this.keyDrop(event);\n } else if (keyCodes.cancel.includes(keyCode)) {\n _this.newIndex = _this.manager.active.index;\n\n _this.keyDrop(event);\n } else if (keyCodes.up.includes(keyCode)) {\n _this.keyMove(-1);\n } else if (keyCodes.down.includes(keyCode)) {\n _this.keyMove(1);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"keyLift\", function (event) {\n var target = event.target;\n var node = closest(target, function (el) {\n return el.sortableInfo != null;\n });\n var _node$sortableInfo2 = node.sortableInfo,\n index = _node$sortableInfo2.index,\n collection = _node$sortableInfo2.collection;\n _this.initialFocusedNode = target;\n _this.manager.isKeySorting = true;\n _this.manager.active = {\n index: index,\n collection: collection\n };\n\n _this.handlePress(event);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"keyMove\", function (shift) {\n var nodes = _this.manager.getOrderedRefs();\n\n var lastIndex = nodes[nodes.length - 1].node.sortableInfo.index;\n var newIndex = _this.newIndex + shift;\n var prevIndex = _this.newIndex;\n\n if (newIndex < 0 || newIndex > lastIndex) {\n return;\n }\n\n _this.prevIndex = prevIndex;\n _this.newIndex = newIndex;\n var targetIndex = getTargetIndex(_this.newIndex, _this.prevIndex, _this.index);\n var target = nodes.find(function (_ref2) {\n var node = _ref2.node;\n return node.sortableInfo.index === targetIndex;\n });\n var targetNode = target.node;\n var scrollDelta = _this.containerScrollDelta;\n var targetBoundingClientRect = target.boundingClientRect || getScrollAdjustedBoundingClientRect(targetNode, scrollDelta);\n var targetTranslate = target.translate || {\n x: 0,\n y: 0\n };\n var targetPosition = {\n top: targetBoundingClientRect.top + targetTranslate.y - scrollDelta.top,\n left: targetBoundingClientRect.left + targetTranslate.x - scrollDelta.left\n };\n var shouldAdjustForSize = prevIndex < newIndex;\n var sizeAdjustment = {\n x: shouldAdjustForSize && _this.axis.x ? targetNode.offsetWidth - _this.width : 0,\n y: shouldAdjustForSize && _this.axis.y ? targetNode.offsetHeight - _this.height : 0\n };\n\n _this.handleSortMove({\n pageX: targetPosition.left + sizeAdjustment.x,\n pageY: targetPosition.top + sizeAdjustment.y,\n ignoreTransition: shift === 0\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"keyDrop\", function (event) {\n _this.handleSortEnd(event);\n\n if (_this.initialFocusedNode) {\n _this.initialFocusedNode.focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleKeyEnd\", function (event) {\n if (_this.manager.active) {\n _this.keyDrop(event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"isValidSortingTarget\", function (event) {\n var useDragHandle = _this.props.useDragHandle;\n var target = event.target;\n var node = closest(target, function (el) {\n return el.sortableInfo != null;\n });\n return node && node.sortableInfo && !node.sortableInfo.disabled && (useDragHandle ? isSortableHandle(target) : target.sortableInfo);\n });\n\n validateProps(props);\n _this.manager = new Manager();\n _this.events = {\n end: _this.handleEnd,\n move: _this.handleMove,\n start: _this.handleStart\n };\n return _this;\n }\n\n _createClass(WithSortableContainer, [{\n key: \"getChildContext\",\n value: function getChildContext() {\n return {\n manager: this.manager\n };\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n var useWindowAsScrollContainer = this.props.useWindowAsScrollContainer;\n var container = this.getContainer();\n Promise.resolve(container).then(function (containerNode) {\n _this2.container = containerNode;\n _this2.document = _this2.container.ownerDocument || document;\n var contentWindow = _this2.props.contentWindow || _this2.document.defaultView || window;\n _this2.contentWindow = typeof contentWindow === 'function' ? contentWindow() : contentWindow;\n _this2.scrollContainer = useWindowAsScrollContainer ? _this2.document.scrollingElement || _this2.document.documentElement : getScrollingParent(_this2.container) || _this2.container;\n _this2.autoScroller = new AutoScroller(_this2.scrollContainer, _this2.onAutoScroll);\n Object.keys(_this2.events).forEach(function (key) {\n return events[key].forEach(function (eventName) {\n return _this2.container.addEventListener(eventName, _this2.events[key], false);\n });\n });\n\n _this2.container.addEventListener('keydown', _this2.handleKeyDown);\n });\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var _this3 = this;\n\n if (this.helper && this.helper.parentNode) {\n this.helper.parentNode.removeChild(this.helper);\n }\n\n if (!this.container) {\n return;\n }\n\n Object.keys(this.events).forEach(function (key) {\n return events[key].forEach(function (eventName) {\n return _this3.container.removeEventListener(eventName, _this3.events[key]);\n });\n });\n this.container.removeEventListener('keydown', this.handleKeyDown);\n }\n }, {\n key: \"updateHelperPosition\",\n value: function updateHelperPosition(event) {\n var _this$props6 = this.props,\n lockAxis = _this$props6.lockAxis,\n lockOffset = _this$props6.lockOffset,\n lockToContainerEdges = _this$props6.lockToContainerEdges,\n transitionDuration = _this$props6.transitionDuration,\n _this$props6$keyboard = _this$props6.keyboardSortingTransitionDuration,\n keyboardSortingTransitionDuration = _this$props6$keyboard === void 0 ? transitionDuration : _this$props6$keyboard;\n var isKeySorting = this.manager.isKeySorting;\n var ignoreTransition = event.ignoreTransition;\n var offset = getPosition(event);\n var translate = {\n x: offset.x - this.initialOffset.x,\n y: offset.y - this.initialOffset.y\n };\n translate.y -= window.pageYOffset - this.initialWindowScroll.top;\n translate.x -= window.pageXOffset - this.initialWindowScroll.left;\n this.translate = translate;\n\n if (lockToContainerEdges) {\n var _getLockPixelOffsets = getLockPixelOffsets({\n height: this.height,\n lockOffset: lockOffset,\n width: this.width\n }),\n _getLockPixelOffsets2 = _slicedToArray(_getLockPixelOffsets, 2),\n minLockOffset = _getLockPixelOffsets2[0],\n maxLockOffset = _getLockPixelOffsets2[1];\n\n var minOffset = {\n x: this.width / 2 - minLockOffset.x,\n y: this.height / 2 - minLockOffset.y\n };\n var maxOffset = {\n x: this.width / 2 - maxLockOffset.x,\n y: this.height / 2 - maxLockOffset.y\n };\n translate.x = limit(this.minTranslate.x + minOffset.x, this.maxTranslate.x - maxOffset.x, translate.x);\n translate.y = limit(this.minTranslate.y + minOffset.y, this.maxTranslate.y - maxOffset.y, translate.y);\n }\n\n if (lockAxis === 'x') {\n translate.y = 0;\n } else if (lockAxis === 'y') {\n translate.x = 0;\n }\n\n if (isKeySorting && keyboardSortingTransitionDuration && !ignoreTransition) {\n setTransitionDuration(this.helper, keyboardSortingTransitionDuration);\n }\n\n setTranslate3d(this.helper, translate);\n }\n }, {\n key: \"animateNodes\",\n value: function animateNodes() {\n var _this$props7 = this.props,\n transitionDuration = _this$props7.transitionDuration,\n hideSortableGhost = _this$props7.hideSortableGhost,\n onSortOver = _this$props7.onSortOver;\n var containerScrollDelta = this.containerScrollDelta,\n windowScrollDelta = this.windowScrollDelta;\n var nodes = this.manager.getOrderedRefs();\n var sortingOffset = {\n left: this.offsetEdge.left + this.translate.x + containerScrollDelta.left,\n top: this.offsetEdge.top + this.translate.y + containerScrollDelta.top\n };\n var isKeySorting = this.manager.isKeySorting;\n var prevIndex = this.newIndex;\n this.newIndex = null;\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n var _node3 = nodes[i].node;\n var index = _node3.sortableInfo.index;\n var width = _node3.offsetWidth;\n var height = _node3.offsetHeight;\n var offset = {\n height: this.height > height ? height / 2 : this.height / 2,\n width: this.width > width ? width / 2 : this.width / 2\n };\n var mustShiftBackward = isKeySorting && index > this.index && index <= prevIndex;\n var mustShiftForward = isKeySorting && index < this.index && index >= prevIndex;\n var translate = {\n x: 0,\n y: 0\n };\n var edgeOffset = nodes[i].edgeOffset;\n\n if (!edgeOffset) {\n edgeOffset = getEdgeOffset(_node3, this.container);\n nodes[i].edgeOffset = edgeOffset;\n\n if (isKeySorting) {\n nodes[i].boundingClientRect = getScrollAdjustedBoundingClientRect(_node3, containerScrollDelta);\n }\n }\n\n var nextNode = i < nodes.length - 1 && nodes[i + 1];\n var prevNode = i > 0 && nodes[i - 1];\n\n if (nextNode && !nextNode.edgeOffset) {\n nextNode.edgeOffset = getEdgeOffset(nextNode.node, this.container);\n\n if (isKeySorting) {\n nextNode.boundingClientRect = getScrollAdjustedBoundingClientRect(nextNode.node, containerScrollDelta);\n }\n }\n\n if (index === this.index) {\n if (hideSortableGhost) {\n this.sortableGhost = _node3;\n setInlineStyles(_node3, {\n opacity: 0,\n visibility: 'hidden'\n });\n }\n\n continue;\n }\n\n if (transitionDuration) {\n setTransitionDuration(_node3, transitionDuration);\n }\n\n if (this.axis.x) {\n if (this.axis.y) {\n if (mustShiftForward || index < this.index && (sortingOffset.left + windowScrollDelta.left - offset.width <= edgeOffset.left && sortingOffset.top + windowScrollDelta.top <= edgeOffset.top + offset.height || sortingOffset.top + windowScrollDelta.top + offset.height <= edgeOffset.top)) {\n translate.x = this.width + this.marginOffset.x;\n\n if (edgeOffset.left + translate.x > this.containerBoundingRect.width - offset.width) {\n if (nextNode) {\n translate.x = nextNode.edgeOffset.left - edgeOffset.left;\n translate.y = nextNode.edgeOffset.top - edgeOffset.top;\n }\n }\n\n if (this.newIndex === null) {\n this.newIndex = index;\n }\n } else if (mustShiftBackward || index > this.index && (sortingOffset.left + windowScrollDelta.left + offset.width >= edgeOffset.left && sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top || sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top + height)) {\n translate.x = -(this.width + this.marginOffset.x);\n\n if (edgeOffset.left + translate.x < this.containerBoundingRect.left + offset.width) {\n if (prevNode) {\n translate.x = prevNode.edgeOffset.left - edgeOffset.left;\n translate.y = prevNode.edgeOffset.top - edgeOffset.top;\n }\n }\n\n this.newIndex = index;\n }\n } else {\n if (mustShiftBackward || index > this.index && sortingOffset.left + windowScrollDelta.left + offset.width >= edgeOffset.left) {\n translate.x = -(this.width + this.marginOffset.x);\n this.newIndex = index;\n } else if (mustShiftForward || index < this.index && sortingOffset.left + windowScrollDelta.left <= edgeOffset.left + offset.width) {\n translate.x = this.width + this.marginOffset.x;\n\n if (this.newIndex == null) {\n this.newIndex = index;\n }\n }\n }\n } else if (this.axis.y) {\n if (mustShiftBackward || index > this.index && sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top) {\n translate.y = -(this.height + this.marginOffset.y);\n this.newIndex = index;\n } else if (mustShiftForward || index < this.index && sortingOffset.top + windowScrollDelta.top <= edgeOffset.top + offset.height) {\n translate.y = this.height + this.marginOffset.y;\n\n if (this.newIndex == null) {\n this.newIndex = index;\n }\n }\n }\n\n setTranslate3d(_node3, translate);\n nodes[i].translate = translate;\n }\n\n if (this.newIndex == null) {\n this.newIndex = this.index;\n }\n\n if (isKeySorting) {\n this.newIndex = prevIndex;\n }\n\n var oldIndex = isKeySorting ? this.prevIndex : prevIndex;\n\n if (onSortOver && this.newIndex !== oldIndex) {\n onSortOver({\n collection: this.manager.active.collection,\n index: this.index,\n newIndex: this.newIndex,\n oldIndex: oldIndex,\n isKeySorting: isKeySorting,\n nodes: nodes,\n helper: this.helper\n });\n }\n }\n }, {\n key: \"getWrappedInstance\",\n value: function getWrappedInstance() {\n invariant(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableContainer() call');\n return this.refs.wrappedInstance;\n }\n }, {\n key: \"getContainer\",\n value: function getContainer() {\n var getContainer = this.props.getContainer;\n\n if (typeof getContainer !== 'function') {\n return findDOMNode(this);\n }\n\n return getContainer(config.withRef ? this.getWrappedInstance() : undefined);\n }\n }, {\n key: \"render\",\n value: function render() {\n var ref = config.withRef ? 'wrappedInstance' : null;\n return createElement(WrappedComponent, _extends({\n ref: ref\n }, omit(this.props, omittedProps)));\n }\n }, {\n key: \"helperContainer\",\n get: function get() {\n var helperContainer = this.props.helperContainer;\n\n if (typeof helperContainer === 'function') {\n return helperContainer();\n }\n\n return this.props.helperContainer || this.document.body;\n }\n }, {\n key: \"containerScrollDelta\",\n get: function get() {\n var useWindowAsScrollContainer = this.props.useWindowAsScrollContainer;\n\n if (useWindowAsScrollContainer) {\n return {\n left: 0,\n top: 0\n };\n }\n\n return {\n left: this.scrollContainer.scrollLeft - this.initialScroll.left,\n top: this.scrollContainer.scrollTop - this.initialScroll.top\n };\n }\n }, {\n key: \"windowScrollDelta\",\n get: function get() {\n return {\n left: this.contentWindow.pageXOffset - this.initialWindowScroll.left,\n top: this.contentWindow.pageYOffset - this.initialWindowScroll.top\n };\n }\n }]);\n\n return WithSortableContainer;\n }(Component), _defineProperty(_class, \"displayName\", provideDisplayName('sortableList', WrappedComponent)), _defineProperty(_class, \"defaultProps\", defaultProps), _defineProperty(_class, \"propTypes\", propTypes), _defineProperty(_class, \"childContextTypes\", {\n manager: PropTypes.object.isRequired\n }), _temp;\n}\n\nvar propTypes$1 = {\n index: PropTypes.number.isRequired,\n collection: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n disabled: PropTypes.bool\n};\nvar omittedProps$1 = Object.keys(propTypes$1);\nfunction sortableElement(WrappedComponent) {\n var _class, _temp;\n\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n withRef: false\n };\n return _temp = _class = function (_React$Component) {\n _inherits(WithSortableElement, _React$Component);\n\n function WithSortableElement() {\n _classCallCheck(this, WithSortableElement);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(WithSortableElement).apply(this, arguments));\n }\n\n _createClass(WithSortableElement, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.register();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.node) {\n if (prevProps.index !== this.props.index) {\n this.node.sortableInfo.index = this.props.index;\n }\n\n if (prevProps.disabled !== this.props.disabled) {\n this.node.sortableInfo.disabled = this.props.disabled;\n }\n }\n\n if (prevProps.collection !== this.props.collection) {\n this.unregister(prevProps.collection);\n this.register();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unregister();\n }\n }, {\n key: \"register\",\n value: function register() {\n var _this$props = this.props,\n collection = _this$props.collection,\n disabled = _this$props.disabled,\n index = _this$props.index;\n var node = findDOMNode(this);\n node.sortableInfo = {\n collection: collection,\n disabled: disabled,\n index: index,\n manager: this.context.manager\n };\n this.node = node;\n this.ref = {\n node: node\n };\n this.context.manager.add(collection, this.ref);\n }\n }, {\n key: \"unregister\",\n value: function unregister() {\n var collection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.collection;\n this.context.manager.remove(collection, this.ref);\n }\n }, {\n key: \"getWrappedInstance\",\n value: function getWrappedInstance() {\n invariant(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableElement() call');\n return this.refs.wrappedInstance;\n }\n }, {\n key: \"render\",\n value: function render() {\n var ref = config.withRef ? 'wrappedInstance' : null;\n return createElement(WrappedComponent, _extends({\n ref: ref\n }, omit(this.props, omittedProps$1)));\n }\n }]);\n\n return WithSortableElement;\n }(Component), _defineProperty(_class, \"displayName\", provideDisplayName('sortableElement', WrappedComponent)), _defineProperty(_class, \"contextTypes\", {\n manager: PropTypes.object.isRequired\n }), _defineProperty(_class, \"propTypes\", propTypes$1), _defineProperty(_class, \"defaultProps\", {\n collection: 0\n }), _temp;\n}\n\nexport { sortableContainer as SortableContainer, sortableContainer, sortableElement as SortableElement, sortableElement, sortableHandle as SortableHandle, sortableHandle, arrayMove };\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","exports.f = Object.getOwnPropertySymbols;\n","'use strict';\n// Forced replacement prototype accessors methods\nmodule.exports = require('./_library') || !require('./_fails')(function () {\n var K = Math.random();\n // In FF throws only define methods\n // eslint-disable-next-line no-undef, no-useless-call\n __defineSetter__.call(null, K, function () { /* empty */ });\n delete require('./_global')[K];\n});\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport deepEqual from \"deep-equal\";\nimport * as React from 'react';\nimport PopperJS from 'popper.js';\nimport { ManagerReferenceNodeContext } from './Manager';\nimport { unwrapArray, setRef, shallowEqual } from './utils';\nvar initialStyle = {\n position: 'absolute',\n top: 0,\n left: 0,\n opacity: 0,\n pointerEvents: 'none'\n};\nvar initialArrowStyle = {};\nexport var InnerPopper =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(InnerPopper, _React$Component);\n\n function InnerPopper() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n data: undefined,\n placement: undefined\n });\n\n _defineProperty(_assertThisInitialized(_this), \"popperInstance\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"popperNode\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"arrowNode\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"setPopperNode\", function (popperNode) {\n if (!popperNode || _this.popperNode === popperNode) return;\n setRef(_this.props.innerRef, popperNode);\n _this.popperNode = popperNode;\n\n _this.updatePopperInstance();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setArrowNode\", function (arrowNode) {\n _this.arrowNode = arrowNode;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateStateModifier\", {\n enabled: true,\n order: 900,\n fn: function fn(data) {\n var placement = data.placement;\n\n _this.setState({\n data: data,\n placement: placement\n });\n\n return data;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getOptions\", function () {\n return {\n placement: _this.props.placement,\n eventsEnabled: _this.props.eventsEnabled,\n positionFixed: _this.props.positionFixed,\n modifiers: _extends({}, _this.props.modifiers, {\n arrow: _extends({}, _this.props.modifiers && _this.props.modifiers.arrow, {\n enabled: !!_this.arrowNode,\n element: _this.arrowNode\n }),\n applyStyle: {\n enabled: false\n },\n updateStateModifier: _this.updateStateModifier\n })\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getPopperStyle\", function () {\n return !_this.popperNode || !_this.state.data ? initialStyle : _extends({\n position: _this.state.data.offsets.popper.position\n }, _this.state.data.styles);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getPopperPlacement\", function () {\n return !_this.state.data ? undefined : _this.state.placement;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getArrowStyle\", function () {\n return !_this.arrowNode || !_this.state.data ? initialArrowStyle : _this.state.data.arrowStyles;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getOutOfBoundariesState\", function () {\n return _this.state.data ? _this.state.data.hide : undefined;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"destroyPopperInstance\", function () {\n if (!_this.popperInstance) return;\n\n _this.popperInstance.destroy();\n\n _this.popperInstance = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updatePopperInstance\", function () {\n _this.destroyPopperInstance();\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n popperNode = _assertThisInitialize.popperNode;\n\n var referenceElement = _this.props.referenceElement;\n if (!referenceElement || !popperNode) return;\n _this.popperInstance = new PopperJS(referenceElement, popperNode, _this.getOptions());\n });\n\n _defineProperty(_assertThisInitialized(_this), \"scheduleUpdate\", function () {\n if (_this.popperInstance) {\n _this.popperInstance.scheduleUpdate();\n }\n });\n\n return _this;\n }\n\n var _proto = InnerPopper.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // If the Popper.js options have changed, update the instance (destroy + create)\n if (this.props.placement !== prevProps.placement || this.props.referenceElement !== prevProps.referenceElement || this.props.positionFixed !== prevProps.positionFixed || !deepEqual(this.props.modifiers, prevProps.modifiers, {\n strict: true\n })) {\n // develop only check that modifiers isn't being updated needlessly\n if (process.env.NODE_ENV === \"development\") {\n if (this.props.modifiers !== prevProps.modifiers && this.props.modifiers != null && prevProps.modifiers != null && shallowEqual(this.props.modifiers, prevProps.modifiers)) {\n console.warn(\"'modifiers' prop reference updated even though all values appear the same.\\nConsider memoizing the 'modifiers' object to avoid needless rendering.\");\n }\n }\n\n this.updatePopperInstance();\n } else if (this.props.eventsEnabled !== prevProps.eventsEnabled && this.popperInstance) {\n this.props.eventsEnabled ? this.popperInstance.enableEventListeners() : this.popperInstance.disableEventListeners();\n } // A placement difference in state means popper determined a new placement\n // apart from the props value. By the time the popper element is rendered with\n // the new position Popper has already measured it, if the place change triggers\n // a size change it will result in a misaligned popper. So we schedule an update to be sure.\n\n\n if (prevState.placement !== this.state.placement) {\n this.scheduleUpdate();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n setRef(this.props.innerRef, null);\n this.destroyPopperInstance();\n };\n\n _proto.render = function render() {\n return unwrapArray(this.props.children)({\n ref: this.setPopperNode,\n style: this.getPopperStyle(),\n placement: this.getPopperPlacement(),\n outOfBoundaries: this.getOutOfBoundariesState(),\n scheduleUpdate: this.scheduleUpdate,\n arrowProps: {\n ref: this.setArrowNode,\n style: this.getArrowStyle()\n }\n });\n };\n\n return InnerPopper;\n}(React.Component);\n\n_defineProperty(InnerPopper, \"defaultProps\", {\n placement: 'bottom',\n eventsEnabled: true,\n referenceElement: undefined,\n positionFixed: false\n});\n\nvar placements = PopperJS.placements;\nexport { placements };\nexport default function Popper(_ref) {\n var referenceElement = _ref.referenceElement,\n props = _objectWithoutPropertiesLoose(_ref, [\"referenceElement\"]);\n\n return React.createElement(ManagerReferenceNodeContext.Consumer, null, function (referenceNode) {\n return React.createElement(InnerPopper, _extends({\n referenceElement: referenceElement !== undefined ? referenceElement : referenceNode\n }, props));\n });\n}","import 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}","import _curry1 from './_curry1.js';\nimport _isArray from './_isArray.js';\nimport _isString from './_isString.js';\n\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n */\nvar _isArrayLike = /*#__PURE__*/_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n if (!x) {\n return false;\n }\n if (typeof x !== 'object') {\n return false;\n }\n if (_isString(x)) {\n return false;\n }\n if (x.nodeType === 1) {\n return !!x.length;\n }\n if (x.length === 0) {\n return true;\n }\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n return false;\n});\nexport default _isArrayLike;","const defaultFunctionName = '';\n\n/**\n * Safely extract function name from itself\n */\nexport function getFunctionName(fn: unknown): string {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports,require(\"react\"),require(\"prop-types\"),require(\"classnames\"),require(\"date-fns/isDate\"),require(\"date-fns/isValid\"),require(\"date-fns/format\"),require(\"date-fns/addMinutes\"),require(\"date-fns/addHours\"),require(\"date-fns/addDays\"),require(\"date-fns/addWeeks\"),require(\"date-fns/addMonths\"),require(\"date-fns/addYears\"),require(\"date-fns/subMinutes\"),require(\"date-fns/subHours\"),require(\"date-fns/subDays\"),require(\"date-fns/subWeeks\"),require(\"date-fns/subMonths\"),require(\"date-fns/subYears\"),require(\"date-fns/getSeconds\"),require(\"date-fns/getMinutes\"),require(\"date-fns/getHours\"),require(\"date-fns/getDay\"),require(\"date-fns/getDate\"),require(\"date-fns/getWeek\"),require(\"date-fns/getMonth\"),require(\"date-fns/getQuarter\"),require(\"date-fns/getYear\"),require(\"date-fns/getTime\"),require(\"date-fns/setSeconds\"),require(\"date-fns/setMinutes\"),require(\"date-fns/setHours\"),require(\"date-fns/setMonth\"),require(\"date-fns/setQuarter\"),require(\"date-fns/setYear\"),require(\"date-fns/min\"),require(\"date-fns/max\"),require(\"date-fns/differenceInCalendarDays\"),require(\"date-fns/differenceInCalendarMonths\"),require(\"date-fns/differenceInCalendarWeeks\"),require(\"date-fns/differenceInCalendarYears\"),require(\"date-fns/startOfDay\"),require(\"date-fns/startOfWeek\"),require(\"date-fns/startOfMonth\"),require(\"date-fns/startOfQuarter\"),require(\"date-fns/startOfYear\"),require(\"date-fns/endOfDay\"),require(\"date-fns/endOfWeek\"),require(\"date-fns/endOfMonth\"),require(\"date-fns/isEqual\"),require(\"date-fns/isSameDay\"),require(\"date-fns/isSameMonth\"),require(\"date-fns/isSameYear\"),require(\"date-fns/isSameQuarter\"),require(\"date-fns/isAfter\"),require(\"date-fns/isBefore\"),require(\"date-fns/isWithinInterval\"),require(\"date-fns/toDate\"),require(\"date-fns/parse\"),require(\"date-fns/parseISO\"),require(\"react-onclickoutside\"),require(\"react-popper\"),require(\"react-dom\")):\"function\"==typeof define&&define.amd?define([\"exports\",\"react\",\"prop-types\",\"classnames\",\"date-fns/isDate\",\"date-fns/isValid\",\"date-fns/format\",\"date-fns/addMinutes\",\"date-fns/addHours\",\"date-fns/addDays\",\"date-fns/addWeeks\",\"date-fns/addMonths\",\"date-fns/addYears\",\"date-fns/subMinutes\",\"date-fns/subHours\",\"date-fns/subDays\",\"date-fns/subWeeks\",\"date-fns/subMonths\",\"date-fns/subYears\",\"date-fns/getSeconds\",\"date-fns/getMinutes\",\"date-fns/getHours\",\"date-fns/getDay\",\"date-fns/getDate\",\"date-fns/getWeek\",\"date-fns/getMonth\",\"date-fns/getQuarter\",\"date-fns/getYear\",\"date-fns/getTime\",\"date-fns/setSeconds\",\"date-fns/setMinutes\",\"date-fns/setHours\",\"date-fns/setMonth\",\"date-fns/setQuarter\",\"date-fns/setYear\",\"date-fns/min\",\"date-fns/max\",\"date-fns/differenceInCalendarDays\",\"date-fns/differenceInCalendarMonths\",\"date-fns/differenceInCalendarWeeks\",\"date-fns/differenceInCalendarYears\",\"date-fns/startOfDay\",\"date-fns/startOfWeek\",\"date-fns/startOfMonth\",\"date-fns/startOfQuarter\",\"date-fns/startOfYear\",\"date-fns/endOfDay\",\"date-fns/endOfWeek\",\"date-fns/endOfMonth\",\"date-fns/isEqual\",\"date-fns/isSameDay\",\"date-fns/isSameMonth\",\"date-fns/isSameYear\",\"date-fns/isSameQuarter\",\"date-fns/isAfter\",\"date-fns/isBefore\",\"date-fns/isWithinInterval\",\"date-fns/toDate\",\"date-fns/parse\",\"date-fns/parseISO\",\"react-onclickoutside\",\"react-popper\",\"react-dom\"],t):t((e=e||self).DatePicker={},e.React,e.PropTypes,e.classNames,e.isDate,e.isValidDate,e.format,e.addMinutes,e.addHours,e.utils,e.utils$1,e.addMonths,e.addYears,e.subMinutes,e.subHours,e.subDays,e.subWeeks,e.subMonths,e.subYears,e.getSeconds,e.getMinutes,e.getHours,e.getDay,e.getDate,e.dfgetWeek,e.getMonth,e.getQuarter,e.getYear,e.getTime,e.setSeconds,e.setMinutes,e.setHours,e.utils$2,e.utils$3,e.utils$4,e.min,e.max,e.differenceInCalendarDays,e.differenceInCalendarMonths,e.differenceInCalendarWeeks,e.differenceInCalendarYears,e.startOfDay,e.startOfWeek,e.startOfMonth,e.startOfQuarter,e.startOfYear,e.endOfDay,e.endOfWeek,e.endOfMonth,e.dfIsEqual,e.dfIsSameDay,e.dfIsSameMonth,e.dfIsSameYear,e.dfIsSameQuarter,e.isAfter,e.isBefore,e.isWithinInterval,e.toDate,e.parse,e.parseISO,e.onClickOutside,e.ReactPopper,e.ReactDOM)}(this,(function(e,t,r,n,a,o,s,p,i,c,l,d,u,h,f,m,y,v,w,D,k,g,b,C,_,S,O,P,M,E,N,x,Y,T,I,L,j,R,F,q,W,A,B,H,K,Q,V,U,$,z,G,J,X,Z,ee,te,re,ne,ae,oe,se,pe,ie){\"use strict\";function ce(e){return(ce=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function le(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function de(e,t){for(var r=0;r0&&(a=ae(e,t.slice(0,e.length),new Date)),Ee(a)||(a=new Date(e))),Ee(a)&&p?a:null)}function Ee(e){return o(e)&&ee(e,new Date(\"1/1/1000\"))}function Ne(e,t,r){if(\"en\"===r)return s(e,t,{awareOfUnicodeTokens:!0});var n=Ve(r);return r&&!n&&console.warn('A locale object was not found for the provided string [\"'.concat(r,'\"].')),!n&&Qe()&&Ve(Qe())&&(n=Ve(Qe())),s(e,t,{locale:n||null,awareOfUnicodeTokens:!0})}function xe(e,t){var r=t.hour,n=void 0===r?0:r,a=t.minute,o=void 0===a?0:a,s=t.second;return x(N(E(e,void 0===s?0:s),o),n)}function Ye(e,t){var r=t&&Ve(t)||Qe()&&Ve(Qe());return _(e,r?{locale:r}:null)}function Te(e,t){return Ne(e,\"ddd\",t)}function Ie(e){return A(e)}function Le(e,t){var r=Ve(t||Qe());return B(e,{locale:r})}function je(e){return H(e)}function Re(e){return Q(e)}function Fe(e){return K(e)}function qe(e,t){return e&&t?X(e,t):!e&&!t}function We(e,t){return e&&t?J(e,t):!e&&!t}function Ae(e,t){return e&&t?Z(e,t):!e&&!t}function Be(e,t){return e&&t?G(e,t):!e&&!t}function He(e,t){return e&&t?z(e,t):!e&&!t}function Ke(e,t,r){var n,a=A(t),o=V(r);try{n=re(e,{start:a,end:o})}catch(e){n=!1}return n}function Qe(){return(\"undefined\"!=typeof window?window:global).__localeId__}function Ve(e){if(\"string\"==typeof e){var t=\"undefined\"!=typeof window?window:global;return t.__localeData__?t.__localeData__[e]:null}return e}function Ue(e,t){return Ne(Y(Pe(),e),\"LLLL\",t)}function $e(e,t){return Ne(Y(Pe(),e),\"LLL\",t)}function ze(e,t){return Ne(T(Pe(),e),\"QQQ\",t)}function Ge(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate,a=t.excludeDates,o=t.includeDates,s=t.filterDate;return nt(e,{minDate:r,maxDate:n})||a&&a.some((function(t){return Be(e,t)}))||o&&!o.some((function(t){return Be(e,t)}))||s&&!s(Pe(e))||!1}function Je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeDates;return r&&r.some((function(t){return Be(e,t)}))||!1}function Xe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate,a=t.excludeDates,o=t.includeDates,s=t.filterDate;return nt(e,{minDate:r,maxDate:n})||a&&a.some((function(t){return We(e,t)}))||o&&!o.some((function(t){return We(e,t)}))||s&&!s(Pe(e))||!1}function Ze(e,t,r,n){var a=P(e),o=S(e),s=P(t),p=S(t),i=P(n);return a===s&&a===i?o<=r&&r<=p:a=r||ia:void 0}function et(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate,a=t.excludeDates,o=t.includeDates,s=t.filterDate;return nt(e,{minDate:r,maxDate:n})||a&&a.some((function(t){return Ae(e,t)}))||o&&!o.some((function(t){return Ae(e,t)}))||s&&!s(Pe(e))||!1}function tt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate,a=new Date(e,0,1);return nt(a,{minDate:r,maxDate:n})||!1}function rt(e,t,r,n){var a=P(e),o=O(e),s=P(t),p=O(t),i=P(n);return a===s&&a===i?o<=r&&r<=p:a=r||ia:void 0}function nt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate;return r&&R(e,r)<0||n&&R(e,n)>0}function at(e,t){return t.some((function(t){return g(t)===g(e)&&k(t)===k(e)}))}function ot(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeTimes,n=t.includeTimes,a=t.filterTime;return r&&at(e,r)||n&&!at(e,n)||a&&!a(e)||!1}function st(e,t){var r=t.minTime,n=t.maxTime;if(!r||!n)throw new Error(\"Both minTime and maxTime props required\");var a,o=Pe(),s=x(N(o,k(e)),g(e)),p=x(N(o,k(r)),g(r)),i=x(N(o,k(n)),g(n));try{a=!re(s,{start:p,end:i})}catch(e){a=!1}return a}function pt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.includeDates,a=v(e,1);return r&&F(r,a)>0||n&&n.every((function(e){return F(e,a)>0}))||!1}function it(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,n=t.includeDates,a=d(e,1);return r&&F(a,r)>0||n&&n.every((function(e){return F(a,e)>0}))||!1}function ct(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.includeDates,a=w(e,1);return r&&W(r,a)>0||n&&n.every((function(e){return W(e,a)>0}))||!1}function lt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,n=t.includeDates,a=u(e,1);return r&&W(a,r)>0||n&&n.every((function(e){return W(a,e)>0}))||!1}function dt(e){var t=e.minDate,r=e.includeDates;if(r&&t){var n=r.filter((function(e){return R(e,t)>=0}));return L(n)}return r?L(r):t}function ut(e){var t=e.maxDate,r=e.includeDates;if(r&&t){var n=r.filter((function(e){return R(e,t)<=0}));return j(n)}return r?j(r):t}function ht(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"react-datepicker__day--highlighted\",r=new Map,n=0,o=e.length;n1&&void 0!==arguments[1]?arguments[1]:12,r=Math.ceil(P(e)/t)*t,n=r-(t-1);return{startPeriod:n,endPeriod:r}}function vt(e,t,r,n){for(var a=[],o=0;o<2*t+1;o++){var s=e+t-o,p=!0;r&&(p=P(r)<=s),n&&p&&(p=P(n)>=s),p&&a.push(s)}return a}var wt=se(function(e){ve(a,e);var r=be(a);function a(e){var n;le(this,a),he(ke(n=r.call(this,e)),\"renderOptions\",(function(){var e=n.props.year,r=n.state.yearsList.map((function(r){return t.createElement(\"div\",{className:e===r?\"react-datepicker__year-option react-datepicker__year-option--selected_year\":\"react-datepicker__year-option\",key:r,onClick:n.onChange.bind(ke(n),r)},e===r?t.createElement(\"span\",{className:\"react-datepicker__year-option--selected\"},\"✓\"):\"\",r)})),a=n.props.minDate?P(n.props.minDate):null,o=n.props.maxDate?P(n.props.maxDate):null;return o&&n.state.yearsList.find((function(e){return e===o}))||r.unshift(t.createElement(\"div\",{className:\"react-datepicker__year-option\",key:\"upcoming\",onClick:n.incrementYears},t.createElement(\"a\",{className:\"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-upcoming\"}))),a&&n.state.yearsList.find((function(e){return e===a}))||r.push(t.createElement(\"div\",{className:\"react-datepicker__year-option\",key:\"previous\",onClick:n.decrementYears},t.createElement(\"a\",{className:\"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-previous\"}))),r})),he(ke(n),\"onChange\",(function(e){n.props.onChange(e)})),he(ke(n),\"handleClickOutside\",(function(){n.props.onCancel()})),he(ke(n),\"shiftYears\",(function(e){var t=n.state.yearsList.map((function(t){return t+e}));n.setState({yearsList:t})})),he(ke(n),\"incrementYears\",(function(){return n.shiftYears(1)})),he(ke(n),\"decrementYears\",(function(){return n.shiftYears(-1)}));var o=e.yearDropdownItemNumber,s=e.scrollableYearDropdown,p=o||(s?10:5);return n.state={yearsList:vt(n.props.year,p,n.props.minDate,n.props.maxDate)},n}return ue(a,[{key:\"render\",value:function(){var e=n({\"react-datepicker__year-dropdown\":!0,\"react-datepicker__year-dropdown--scrollable\":this.props.scrollableYearDropdown});return t.createElement(\"div\",{className:e},this.renderOptions())}}]),a}(t.Component)),Dt=function(e){ve(n,e);var r=be(n);function n(){var e;le(this,n);for(var a=arguments.length,o=new Array(a),s=0;s0&&void 0!==arguments[0]?arguments[0]:{},r=!1;0===e.getTabIndex()&&!t.isInputFocused&&e.isSameDay(e.props.preSelection)&&(document.activeElement&&document.activeElement!==document.body||e.props.inline||(r=!0),e.props.containerRef&&e.props.containerRef.current&&e.props.containerRef.current.contains(document.activeElement)&&document.activeElement.classList.contains(\"react-datepicker__day\")&&(r=!0)),r&&e.dayEl.current.focus({preventScroll:!0})})),he(ke(e),\"renderDayContents\",(function(){if(e.isOutsideMonth()){if(e.props.monthShowsDuplicateDaysEnd&&C(e.props.day)<10)return null;if(e.props.monthShowsDuplicateDaysStart&&C(e.props.day)>20)return null}return e.props.renderDayContents?e.props.renderDayContents(C(e.props.day),e.props.day):C(e.props.day)})),he(ke(e),\"render\",(function(){return t.createElement(\"div\",{ref:e.dayEl,className:e.getClassNames(e.props.day),onKeyDown:e.handleOnKeyDown,onClick:e.handleClick,onMouseEnter:e.handleMouseEnter,tabIndex:e.getTabIndex(),\"aria-label\":e.getAriaLabel(),role:\"button\",\"aria-disabled\":e.isDisabled()},e.renderDayContents())})),e}return ue(a,[{key:\"componentDidMount\",value:function(){this.handleFocusDay()}},{key:\"componentDidUpdate\",value:function(e){this.handleFocusDay(e)}}]),a}(t.Component),Ot=function(e){ve(a,e);var r=be(a);function a(){var e;le(this,a);for(var t=arguments.length,n=new Array(t),o=0;o=6,i=!n&&!e.isWeekInMonth(a);if(p||i){if(!e.props.peekNextMonth)break;s=!0}}return r})),he(ke(e),\"onMonthClick\",(function(t,r){e.handleDayClick(je(Y(e.props.day,r)),t)})),he(ke(e),\"handleMonthNavigation\",(function(t,r){e.isDisabled(r)||e.isExcluded(r)||(e.props.setPreSelection(r),e.MONTH_REFS[t].current&&e.MONTH_REFS[t].current.focus())})),he(ke(e),\"onMonthKeyDown\",(function(t,r){var n=t.key;if(!e.props.disabledKeyboardNavigation)switch(n){case\"Enter\":e.onMonthClick(t,r),e.props.setPreSelection(e.props.selected);break;case\"ArrowRight\":e.handleMonthNavigation(11===r?0:r+1,d(e.props.preSelection,1));break;case\"ArrowLeft\":e.handleMonthNavigation(0===r?11:r-1,v(e.props.preSelection,1))}})),he(ke(e),\"onQuarterClick\",(function(t,r){e.handleDayClick(Fe(T(e.props.day,r)),t)})),he(ke(e),\"getMonthClassNames\",(function(t){var r=e.props,a=r.day,o=r.startDate,s=r.endDate,p=r.selected,i=r.minDate,c=r.maxDate,l=r.preSelection;return n(\"react-datepicker__month-text\",\"react-datepicker__month-\".concat(t),{\"react-datepicker__month--disabled\":(i||c)&&Xe(Y(a,t),e.props),\"react-datepicker__month--selected\":S(a)===t&&P(a)===P(p),\"react-datepicker__month-text--keyboard-selected\":S(l)===t,\"react-datepicker__month--in-range\":Ze(o,s,t,a),\"react-datepicker__month--range-start\":e.isRangeStartMonth(t),\"react-datepicker__month--range-end\":e.isRangeEndMonth(t)})})),he(ke(e),\"getTabIndex\",(function(t){var r=S(e.props.preSelection);return e.props.disabledKeyboardNavigation||t!==r?\"-1\":\"0\"})),he(ke(e),\"getAriaLabel\",(function(t){var r=e.props,n=r.ariaLabelPrefix,a=void 0===n?\"Choose\":n,o=r.disabledDayAriaLabelPrefix,s=void 0===o?\"Not available\":o,p=r.day,i=Y(p,t),c=e.isDisabled(i)||e.isExcluded(i)?s:a;return\"\".concat(c,\" \").concat(Ne(i,\"MMMM yyyy\"))})),he(ke(e),\"getQuarterClassNames\",(function(t){var r=e.props,a=r.day,o=r.startDate,s=r.endDate,p=r.selected,i=r.minDate,c=r.maxDate;return n(\"react-datepicker__quarter-text\",\"react-datepicker__quarter-\".concat(t),{\"react-datepicker__quarter--disabled\":(i||c)&&et(T(a,t),e.props),\"react-datepicker__quarter--selected\":O(a)===t&&P(a)===P(p),\"react-datepicker__quarter--in-range\":rt(o,s,t,a),\"react-datepicker__quarter--range-start\":e.isRangeStartQuarter(t),\"react-datepicker__quarter--range-end\":e.isRangeEndQuarter(t)})})),he(ke(e),\"renderMonths\",(function(){var r=e.props,n=r.showFullMonthYearPicker,a=r.showTwoColumnMonthYearPicker,o=r.locale;return(a?[[0,1],[2,3],[4,5],[6,7],[8,9],[10,11]]:[[0,1,2],[3,4,5],[6,7,8],[9,10,11]]).map((function(r,a){return t.createElement(\"div\",{className:\"react-datepicker__month-wrapper\",key:a},r.map((function(r,a){return t.createElement(\"div\",{ref:e.MONTH_REFS[r],key:a,onClick:function(t){e.onMonthClick(t,r)},onKeyDown:function(t){e.onMonthKeyDown(t,r)},tabIndex:e.getTabIndex(r),className:e.getMonthClassNames(r),role:\"button\",\"aria-label\":e.getAriaLabel(r)},n?Ue(r,o):$e(r,o))})))}))})),he(ke(e),\"renderQuarters\",(function(){return t.createElement(\"div\",{className:\"react-datepicker__quarter-wrapper\"},[1,2,3,4].map((function(r,n){return t.createElement(\"div\",{key:n,onClick:function(t){e.onQuarterClick(t,r)},className:e.getQuarterClassNames(r)},ze(r,e.props.locale))})))})),he(ke(e),\"getClassNames\",(function(){var t=e.props,r=t.day,a=t.selectingDate,o=t.selectsStart,s=t.selectsEnd,p=t.showMonthYearPicker,i=t.showQuarterYearPicker,c=t.monthClassName,l=c?c(r):void 0;return n(\"react-datepicker__month\",l,{\"react-datepicker__month--selecting-range\":a&&(o||s)},{\"react-datepicker__monthPicker\":p},{\"react-datepicker__quarterPicker\":i})})),e}return ue(a,[{key:\"render\",value:function(){var e=this.props,r=e.showMonthYearPicker,n=e.showQuarterYearPicker,a=e.day,o=e.ariaLabelPrefix,s=void 0===o?\"month \":o;return t.createElement(\"div\",{className:this.getClassNames(),onMouseLeave:this.handleMouseLeave,\"aria-label\":\"\".concat(s,\" \").concat(Ne(a,\"yyyy-MM\"))},r?this.renderMonths():n?this.renderQuarters():this.renderWeeks())}}]),a}(t.Component),Et=function(e){ve(n,e);var r=be(n);function n(){var e;le(this,n);for(var a=arguments.length,o=new Array(a),s=0;s0&&void 0!==arguments[0]?arguments[0]:{},t=(e.className||\"\").split(/\\s+/);return Tt.some((function(e){return t.indexOf(e)>=0}))})(e.target)&&o.props.onDropdownFocus()})),he(ke(o),\"getDateInView\",(function(){var e=o.props,t=e.preSelection,r=e.selected,n=e.openToDate,a=dt(o.props),s=ut(o.props),p=Pe(),i=n||r||t;return i||(a&&te(p,a)?a:s&&ee(p,s)?s:p)})),he(ke(o),\"increaseMonth\",(function(){o.setState((function(e){var t=e.date;return{date:d(t,1)}}),(function(){return o.handleMonthChange(o.state.date)}))})),he(ke(o),\"decreaseMonth\",(function(){o.setState((function(e){var t=e.date;return{date:v(t,1)}}),(function(){return o.handleMonthChange(o.state.date)}))})),he(ke(o),\"handleDayClick\",(function(e,t,r){o.props.onSelect(e,t,r),o.props.setPreSelection&&o.props.setPreSelection(e)})),he(ke(o),\"handleDayMouseEnter\",(function(e){o.setState({selectingDate:e}),o.props.onDayMouseEnter&&o.props.onDayMouseEnter(e)})),he(ke(o),\"handleMonthMouseLeave\",(function(){o.setState({selectingDate:null}),o.props.onMonthMouseLeave&&o.props.onMonthMouseLeave()})),he(ke(o),\"handleYearChange\",(function(e){o.props.onYearChange&&o.props.onYearChange(e),o.props.adjustDateOnChange&&(o.props.onSelect&&o.props.onSelect(e),o.props.setOpen&&o.props.setOpen(!0)),o.props.setPreSelection&&o.props.setPreSelection(e)})),he(ke(o),\"handleMonthChange\",(function(e){o.props.onMonthChange&&o.props.onMonthChange(e),o.props.adjustDateOnChange&&(o.props.onSelect&&o.props.onSelect(e),o.props.setOpen&&o.props.setOpen(!0)),o.props.setPreSelection&&o.props.setPreSelection(e)})),he(ke(o),\"handleMonthYearChange\",(function(e){o.handleYearChange(e),o.handleMonthChange(e)})),he(ke(o),\"changeYear\",(function(e){o.setState((function(t){var r=t.date;return{date:I(r,e)}}),(function(){return o.handleYearChange(o.state.date)}))})),he(ke(o),\"changeMonth\",(function(e){o.setState((function(t){var r=t.date;return{date:Y(r,e)}}),(function(){return o.handleMonthChange(o.state.date)}))})),he(ke(o),\"changeMonthYear\",(function(e){o.setState((function(t){var r=t.date;return{date:I(Y(r,S(e)),P(e))}}),(function(){return o.handleMonthYearChange(o.state.date)}))})),he(ke(o),\"header\",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o.state.date,r=Le(e,o.props.locale),a=[];return o.props.showWeekNumbers&&a.push(t.createElement(\"div\",{key:\"W\",className:\"react-datepicker__day-name\"},o.props.weekLabel||\"#\")),a.concat([0,1,2,3,4,5,6].map((function(e){var a=c(r,e),s=o.formatWeekday(a,o.props.locale),p=o.props.weekDayClassName?o.props.weekDayClassName(a):void 0;return t.createElement(\"div\",{key:e,className:n(\"react-datepicker__day-name\",p)},s)})))})),he(ke(o),\"formatWeekday\",(function(e,t){return o.props.formatWeekDay?function(e,t,r){return t(Ne(e,\"EEEE\",r))}(e,o.props.formatWeekDay,t):o.props.useWeekdaysShort?function(e,t){return Ne(e,\"EEE\",t)}(e,t):function(e,t){return Ne(e,\"EEEEEE\",t)}(e,t)})),he(ke(o),\"decreaseYear\",(function(){o.setState((function(e){var t=e.date;return{date:w(t,o.props.showYearPicker?o.props.yearItemNumber:1)}}),(function(){return o.handleYearChange(o.state.date)}))})),he(ke(o),\"renderPreviousButton\",(function(){if(!o.props.renderCustomHeader){var e;switch(!0){case o.props.showMonthYearPicker:e=ct(o.state.date,o.props);break;case o.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.yearItemNumber,a=void 0===n?12:n,o=Re(w(e,a)),s=yt(o,a),p=s.endPeriod,i=r&&P(r);return i&&i>p||!1}(o.state.date,o.props);break;default:e=pt(o.state.date,o.props)}if((o.props.forceShowMonthNavigation||o.props.showDisabledMonthNavigation||!e)&&!o.props.showTimeSelectOnly){var r=[\"react-datepicker__navigation\",\"react-datepicker__navigation--previous\"],n=o.decreaseMonth;(o.props.showMonthYearPicker||o.props.showQuarterYearPicker||o.props.showYearPicker)&&(n=o.decreaseYear),e&&o.props.showDisabledMonthNavigation&&(r.push(\"react-datepicker__navigation--previous--disabled\"),n=null);var a=o.props.showMonthYearPicker||o.props.showQuarterYearPicker||o.props.showYearPicker,s=o.props,p=s.previousMonthAriaLabel,i=void 0===p?\"Previous Month\":p,c=s.previousYearAriaLabel,l=void 0===c?\"Previous Year\":c;return t.createElement(\"button\",{type:\"button\",className:r.join(\" \"),onClick:n,\"aria-label\":a?l:i},a?o.props.previousYearButtonLabel:o.props.previousMonthButtonLabel)}}})),he(ke(o),\"increaseYear\",(function(){o.setState((function(e){var t=e.date;return{date:u(t,o.props.showYearPicker?o.props.yearItemNumber:1)}}),(function(){return o.handleYearChange(o.state.date)}))})),he(ke(o),\"renderNextButton\",(function(){if(!o.props.renderCustomHeader){var e;switch(!0){case o.props.showMonthYearPicker:e=lt(o.state.date,o.props);break;case o.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,n=t.yearItemNumber,a=void 0===n?12:n,o=u(e,a),s=yt(o,a),p=s.startPeriod,i=r&&P(r);return i&&i0&&void 0!==arguments[0]?arguments[0]:o.state.date,r=[\"react-datepicker__current-month\"];return o.props.showYearDropdown&&r.push(\"react-datepicker__current-month--hasYearDropdown\"),o.props.showMonthDropdown&&r.push(\"react-datepicker__current-month--hasMonthDropdown\"),o.props.showMonthYearDropdown&&r.push(\"react-datepicker__current-month--hasMonthYearDropdown\"),t.createElement(\"div\",{className:r.join(\" \")},Ne(e,o.props.dateFormat,o.props.locale))})),he(ke(o),\"renderYearDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(o.props.showYearDropdown&&!e)return t.createElement(Dt,{adjustDateOnChange:o.props.adjustDateOnChange,date:o.state.date,onSelect:o.props.onSelect,setOpen:o.props.setOpen,dropdownMode:o.props.dropdownMode,onChange:o.changeYear,minDate:o.props.minDate,maxDate:o.props.maxDate,year:P(o.state.date),scrollableYearDropdown:o.props.scrollableYearDropdown,yearDropdownItemNumber:o.props.yearDropdownItemNumber})})),he(ke(o),\"renderMonthDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(o.props.showMonthDropdown&&!e)return t.createElement(gt,{dropdownMode:o.props.dropdownMode,locale:o.props.locale,onChange:o.changeMonth,month:S(o.state.date),useShortMonthInDropdown:o.props.useShortMonthInDropdown})})),he(ke(o),\"renderMonthYearDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(o.props.showMonthYearDropdown&&!e)return t.createElement(_t,{dropdownMode:o.props.dropdownMode,locale:o.props.locale,dateFormat:o.props.dateFormat,onChange:o.changeMonthYear,minDate:o.props.minDate,maxDate:o.props.maxDate,date:o.state.date,scrollableMonthYearDropdown:o.props.scrollableMonthYearDropdown})})),he(ke(o),\"renderTodayButton\",(function(){if(o.props.todayButton&&!o.props.showTimeSelectOnly)return t.createElement(\"div\",{className:\"react-datepicker__today-button\",onClick:function(e){return o.props.onSelect(A(Pe()),e)}},o.props.todayButton)})),he(ke(o),\"renderDefaultHeader\",(function(e){var r=e.monthDate,n=e.i;return t.createElement(\"div\",{className:\"react-datepicker__header \".concat(o.props.showTimeSelect?\"react-datepicker__header--has-time-select\":\"\")},o.renderCurrentMonth(r),t.createElement(\"div\",{className:\"react-datepicker__header__dropdown react-datepicker__header__dropdown--\".concat(o.props.dropdownMode),onFocus:o.handleDropdownFocus},o.renderMonthDropdown(0!==n),o.renderMonthYearDropdown(0!==n),o.renderYearDropdown(0!==n)),t.createElement(\"div\",{className:\"react-datepicker__day-names\"},o.header(r)))})),he(ke(o),\"renderCustomHeader\",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.monthDate,n=e.i;if(0!==n&&void 0!==n)return null;var a=pt(o.state.date,o.props),s=it(o.state.date,o.props),p=ct(o.state.date,o.props),i=lt(o.state.date,o.props),c=!o.props.showMonthYearPicker&&!o.props.showQuarterYearPicker&&!o.props.showYearPicker;return t.createElement(\"div\",{className:\"react-datepicker__header react-datepicker__header--custom\",onFocus:o.props.onDropdownFocus},o.props.renderCustomHeader(ye(ye({},o.state),{},{changeMonth:o.changeMonth,changeYear:o.changeYear,decreaseMonth:o.decreaseMonth,increaseMonth:o.increaseMonth,decreaseYear:o.decreaseYear,increaseYear:o.increaseYear,prevMonthButtonDisabled:a,nextMonthButtonDisabled:s,prevYearButtonDisabled:p,nextYearButtonDisabled:i})),c&&t.createElement(\"div\",{className:\"react-datepicker__day-names\"},o.header(r)))})),he(ke(o),\"renderYearHeader\",(function(){var e=o.state.date,r=o.props,n=r.showYearPicker,a=yt(e,r.yearItemNumber),s=a.startPeriod,p=a.endPeriod;return t.createElement(\"div\",{className:\"react-datepicker__header react-datepicker-year-header\"},n?\"\".concat(s,\" - \").concat(p):P(e))})),he(ke(o),\"renderHeader\",(function(e){switch(!0){case void 0!==o.props.renderCustomHeader:return o.renderCustomHeader(e);case o.props.showMonthYearPicker||o.props.showQuarterYearPicker||o.props.showYearPicker:return o.renderYearHeader(e);default:return o.renderDefaultHeader(e)}})),he(ke(o),\"renderMonths\",(function(){if(!o.props.showTimeSelectOnly&&!o.props.showYearPicker){for(var e=[],r=o.props.showPreviousMonths?o.props.monthsShown-1:0,n=v(o.state.date,r),a=0;a0;e.push(t.createElement(\"div\",{key:i,ref:function(e){o.monthContainer=e},className:\"react-datepicker__month-container\"},o.renderHeader({monthDate:p,i:a}),t.createElement(Mt,{chooseDayAriaLabelPrefix:o.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:o.props.disabledDayAriaLabelPrefix,weekAriaLabelPrefix:o.props.weekAriaLabelPrefix,onChange:o.changeMonthYear,day:p,dayClassName:o.props.dayClassName,monthClassName:o.props.monthClassName,onDayClick:o.handleDayClick,handleOnKeyDown:o.props.handleOnKeyDown,onDayMouseEnter:o.handleDayMouseEnter,onMouseLeave:o.handleMonthMouseLeave,onWeekSelect:o.props.onWeekSelect,orderInDisplay:a,formatWeekNumber:o.props.formatWeekNumber,locale:o.props.locale,minDate:o.props.minDate,maxDate:o.props.maxDate,excludeDates:o.props.excludeDates,highlightDates:o.props.highlightDates,selectingDate:o.state.selectingDate,includeDates:o.props.includeDates,inline:o.props.inline,fixedHeight:o.props.fixedHeight,filterDate:o.props.filterDate,preSelection:o.props.preSelection,setPreSelection:o.props.setPreSelection,selected:o.props.selected,selectsStart:o.props.selectsStart,selectsEnd:o.props.selectsEnd,selectsRange:o.props.selectsRange,showWeekNumbers:o.props.showWeekNumbers,startDate:o.props.startDate,endDate:o.props.endDate,peekNextMonth:o.props.peekNextMonth,setOpen:o.props.setOpen,shouldCloseOnSelect:o.props.shouldCloseOnSelect,renderDayContents:o.props.renderDayContents,disabledKeyboardNavigation:o.props.disabledKeyboardNavigation,showMonthYearPicker:o.props.showMonthYearPicker,showFullMonthYearPicker:o.props.showFullMonthYearPicker,showTwoColumnMonthYearPicker:o.props.showTwoColumnMonthYearPicker,showYearPicker:o.props.showYearPicker,showQuarterYearPicker:o.props.showQuarterYearPicker,isInputFocused:o.props.isInputFocused,containerRef:o.containerRef,monthShowsDuplicateDaysEnd:c,monthShowsDuplicateDaysStart:l})))}return e}})),he(ke(o),\"renderYears\",(function(){if(!o.props.showTimeSelectOnly)return o.props.showYearPicker?t.createElement(\"div\",{className:\"react-datepicker__year--container\"},o.renderHeader(),t.createElement(Nt,fe({onDayClick:o.handleDayClick,date:o.state.date},o.props))):void 0})),he(ke(o),\"renderTimeSection\",(function(){if(o.props.showTimeSelect&&(o.state.monthContainer||o.props.showTimeSelectOnly))return t.createElement(Et,{selected:o.props.selected,openToDate:o.props.openToDate,onChange:o.props.onTimeChange,timeClassName:o.props.timeClassName,format:o.props.timeFormat,includeTimes:o.props.includeTimes,intervals:o.props.timeIntervals,minTime:o.props.minTime,maxTime:o.props.maxTime,excludeTimes:o.props.excludeTimes,filterTime:o.props.filterTime,timeCaption:o.props.timeCaption,todayButton:o.props.todayButton,showMonthDropdown:o.props.showMonthDropdown,showMonthYearDropdown:o.props.showMonthYearDropdown,showYearDropdown:o.props.showYearDropdown,withPortal:o.props.withPortal,monthRef:o.state.monthContainer,injectTimes:o.props.injectTimes,locale:o.props.locale,showTimeSelectOnly:o.props.showTimeSelectOnly})})),he(ke(o),\"renderInputTimeSection\",(function(){var e=new Date(o.props.selected),r=Ee(e)&&Boolean(o.props.selected)?\"\".concat(mt(e.getHours()),\":\").concat(mt(e.getMinutes())):\"\";if(o.props.showTimeInput)return t.createElement(xt,{date:e,timeString:r,timeInputLabel:o.props.timeInputLabel,onChange:o.props.onTimeChange,customTimeInput:o.props.customTimeInput})})),o.containerRef=t.createRef(),o.state={date:o.getDateInView(),selectingDate:null,monthContainer:null},o}return ue(a,null,[{key:\"defaultProps\",get:function(){return{onDropdownFocus:function(){},monthsShown:1,monthSelectedIn:0,forceShowMonthNavigation:!1,timeCaption:\"Time\",previousYearButtonLabel:\"Previous Year\",nextYearButtonLabel:\"Next Year\",previousMonthButtonLabel:\"Previous Month\",nextMonthButtonLabel:\"Next Month\",customTimeInput:null,yearItemNumber:12}}}]),ue(a,[{key:\"componentDidMount\",value:function(){var e=this;this.props.showTimeSelect&&(this.assignMonthContainer=void e.setState({monthContainer:e.monthContainer}))}},{key:\"componentDidUpdate\",value:function(e){this.props.preSelection&&!Be(this.props.preSelection,e.preSelection)?this.setState({date:this.props.preSelection}):this.props.openToDate&&!Be(this.props.openToDate,e.openToDate)&&this.setState({date:this.props.openToDate})}},{key:\"render\",value:function(){var e=this.props.container||Yt;return t.createElement(\"div\",{ref:this.containerRef},t.createElement(e,{className:n(\"react-datepicker\",this.props.className,{\"react-datepicker--time-only\":this.props.showTimeSelectOnly}),showPopperArrow:this.props.showPopperArrow,arrowProps:this.props.arrowProps},this.renderPreviousButton(),this.renderNextButton(),this.renderMonths(),this.renderYears(),this.renderTodayButton(),this.renderTimeSection(),this.renderInputTimeSection(),this.props.children))}}]),a}(t.Component),Lt=function(e){return!e.disabled&&-1!==e.tabIndex},jt=function(e){ve(n,e);var r=be(n);function n(e){var a;return le(this,n),he(ke(a=r.call(this,e)),\"getTabChildren\",(function(){return Array.prototype.slice.call(a.tabLoopRef.current.querySelectorAll(\"[tabindex], a, button, input, select, textarea\"),1,-1).filter(Lt)})),he(ke(a),\"handleFocusStart\",(function(e){var t=a.getTabChildren();t&&t.length>1&&t[t.length-1].focus()})),he(ke(a),\"handleFocusEnd\",(function(e){var t=a.getTabChildren();t&&t.length>1&&t[0].focus()})),a.tabLoopRef=t.createRef(),a}return ue(n,null,[{key:\"defaultProps\",get:function(){return{enableTabLoop:!0}}}]),ue(n,[{key:\"render\",value:function(){return this.props.enableTabLoop?t.createElement(\"div\",{className:\"react-datepicker__tab-loop\",ref:this.tabLoopRef},t.createElement(\"div\",{className:\"react-datepicker__tab-loop__start\",tabIndex:\"0\",onFocus:this.handleFocusStart}),this.props.children,t.createElement(\"div\",{className:\"react-datepicker__tab-loop__end\",tabIndex:\"0\",onFocus:this.handleFocusEnd})):this.props.children}}]),n}(t.Component),Rt=function(e){ve(r,e);var t=be(r);function r(e){var n;return le(this,r),(n=t.call(this,e)).el=document.createElement(\"div\"),n}return ue(r,[{key:\"componentDidMount\",value:function(){this.portalRoot=document.getElementById(this.props.portalId),this.portalRoot||(this.portalRoot=document.createElement(\"div\"),this.portalRoot.setAttribute(\"id\",this.props.portalId),document.body.appendChild(this.portalRoot)),this.portalRoot.appendChild(this.el)}},{key:\"componentWillUnmount\",value:function(){this.portalRoot.removeChild(this.el)}},{key:\"render\",value:function(){return ie.createPortal(this.props.children,this.el)}}]),r}(t.Component),Ft=function(e){ve(a,e);var r=be(a);function a(){return le(this,a),r.apply(this,arguments)}return ue(a,[{key:\"render\",value:function(){var e,r=this.props,a=r.className,o=r.wrapperClassName,s=r.hidePopper,p=r.popperComponent,i=r.popperModifiers,c=r.popperPlacement,l=r.popperProps,d=r.targetComponent,u=r.enableTabLoop,h=r.popperOnKeyDown,f=r.portalId;if(!s){var m=n(\"react-datepicker-popper\",a);e=t.createElement(pe.Popper,fe({modifiers:i,placement:c},l),(function(e){var r=e.ref,n=e.style,a=e.placement,o=e.arrowProps;return t.createElement(jt,{enableTabLoop:u},t.createElement(\"div\",fe({ref:r,style:n},{className:m,\"data-placement\":a,onKeyDown:h}),t.cloneElement(p,{arrowProps:o})))}))}this.props.popperContainer&&(e=t.createElement(this.props.popperContainer,{},e)),f&&!s&&(e=t.createElement(Rt,{portalId:f},e));var y=n(\"react-datepicker-wrapper\",o);return t.createElement(pe.Manager,{className:\"react-datepicker-manager\"},t.createElement(pe.Reference,null,(function(e){var r=e.ref;return t.createElement(\"div\",{ref:r,className:y},d)})),e)}}],[{key:\"defaultProps\",get:function(){return{hidePopper:!0,popperModifiers:{preventOverflow:{enabled:!0,escapeWithReference:!0,boundariesElement:\"viewport\"}},popperProps:{},popperPlacement:\"bottom-start\"}}}]),a}(t.Component),qt=se(It);var Wt=function(e){ve(o,e);var r=be(o);function o(e){var s;return le(this,o),he(ke(s=r.call(this,e)),\"getPreSelection\",(function(){return s.props.openToDate?s.props.openToDate:s.props.selectsEnd&&s.props.startDate?s.props.startDate:s.props.selectsStart&&s.props.endDate?s.props.endDate:Pe()})),he(ke(s),\"calcInitialState\",(function(){var e=s.getPreSelection(),t=dt(s.props),r=ut(s.props),n=t&&te(e,t)?t:r&&ee(e,r)?r:e;return{open:s.props.startOpen||!1,preventFocus:!1,preSelection:s.props.selected?s.props.selected:n,highlightDates:ht(s.props.highlightDates),focused:!1}})),he(ke(s),\"clearPreventFocusTimeout\",(function(){s.preventFocusTimeout&&clearTimeout(s.preventFocusTimeout)})),he(ke(s),\"setFocus\",(function(){s.input&&s.input.focus&&s.input.focus({preventScroll:!0})})),he(ke(s),\"setBlur\",(function(){s.input&&s.input.blur&&s.input.blur(),s.cancelFocusInput()})),he(ke(s),\"setOpen\",(function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];s.setState({open:e,preSelection:e&&s.state.open?s.state.preSelection:s.calcInitialState().preSelection,lastPreSelectChange:Bt},(function(){e||s.setState((function(e){return{focused:!!t&&e.focused}}),(function(){!t&&s.setBlur(),s.setState({inputValue:null})}))}))})),he(ke(s),\"inputOk\",(function(){return a(s.state.preSelection)})),he(ke(s),\"isCalendarOpen\",(function(){return void 0===s.props.open?s.state.open&&!s.props.disabled&&!s.props.readOnly:s.props.open})),he(ke(s),\"handleFocus\",(function(e){s.state.preventFocus||(s.props.onFocus(e),s.props.preventOpenOnFocus||s.props.readOnly||s.setOpen(!0)),s.setState({focused:!0})})),he(ke(s),\"cancelFocusInput\",(function(){clearTimeout(s.inputFocusTimeout),s.inputFocusTimeout=null})),he(ke(s),\"deferFocusInput\",(function(){s.cancelFocusInput(),s.inputFocusTimeout=setTimeout((function(){return s.setFocus()}),1)})),he(ke(s),\"handleDropdownFocus\",(function(){s.cancelFocusInput()})),he(ke(s),\"handleBlur\",(function(e){(!s.state.open||s.props.withPortal||s.props.showTimeInput)&&s.props.onBlur(e),s.setState({focused:!1})})),he(ke(s),\"handleCalendarClickOutside\",(function(e){s.props.inline||s.setOpen(!1),s.props.onClickOutside(e),s.props.withPortal&&e.preventDefault()})),he(ke(s),\"handleChange\",(function(){for(var e=arguments.length,t=new Array(e),r=0;r Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/);\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","import toDate from '../../toDate/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfQuarter\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * var result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\n\nexport default function startOfQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var currentMonth = date.getMonth();\n var month = currentMonth - currentMonth % 3;\n date.setMonth(month, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n return tag;\n}\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n function StyleSheet(options) {\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n var _tag = createStyleElement(this);\n\n var before;\n\n if (this.tags.length === 0) {\n before = this.before;\n } else {\n before = this.tags[this.tags.length - 1].nextSibling;\n }\n\n this.container.insertBefore(_tag, before);\n this.tags.push(_tag);\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is a really hot path\n // we check the second character first because having \"i\"\n // as the second character will happen less often than\n // having \"@\" as the first character\n var isImportRule = rule.charCodeAt(1) === 105 && rule.charCodeAt(0) === 64; // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n\n sheet.insertRule(rule, // we need to insert @import rules before anything else\n // otherwise there will be an error\n // technically this means that the @import rules will\n // _usually_(not always since there could be multiple style tags)\n // be the first ones in prod and generally later in dev\n // this shouldn't really matter in the real world though\n // @import is generally only used for font faces from google fonts and etc.\n // so while this could be technically correct then it would be slower and larger\n // for a tiny bit of correctness that won't matter in the real world\n isImportRule ? 0 : sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","import arrayLikeToArray from \"@babel/runtime/helpers/esm/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(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import _curry3 from './internal/_curry3.js';\nimport _reduce from './internal/_reduce.js';\n\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\nvar reduce = /*#__PURE__*/_curry3(_reduce);\nexport default reduce;","import React from 'react';\n/**\n * TabContext\n * {\n * activeTabId: PropTypes.any\n * }\n */\n\nexport var TabContext = /*#__PURE__*/React.createContext({});","'use strict';\n\nfunction _extends() {\n _extends = Object.assign || function(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nfunction _typeof(obj) {\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 return _typeof(obj);\n}\n\nvar __extends = void 0 && (void 0).__extends || function() {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n }\n instanceof Array && function(d, b) {\n d.__proto__ = b;\n } || function(d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar React = require('react');\n\nvar SERVER_RENDERED = typeof navigator === 'undefined' || global['PREVENT_CODEMIRROR_RENDER'] === true;\nvar cm;\n\nif (!SERVER_RENDERED) {\n cm = require('codemirror');\n}\n\nvar Helper = function() {\n function Helper() {}\n\n Helper.equals = function(x, y) {\n var _this = this;\n\n var ok = Object.keys,\n tx = _typeof(x),\n ty = _typeof(y);\n\n return x && y && tx === 'object' && tx === ty ? ok(x).length === ok(y).length && ok(x).every(function(key) {\n return _this.equals(x[key], y[key]);\n }) : x === y;\n };\n\n return Helper;\n}();\n\nvar Shared = function() {\n function Shared(editor, props) {\n this.editor = editor;\n this.props = props;\n }\n\n Shared.prototype.delegateCursor = function(position, scroll, focus) {\n var doc = this.editor.getDoc();\n\n if (focus) {\n this.editor.focus();\n }\n\n scroll ? doc.setCursor(position) : doc.setCursor(position, null, {\n scroll: false\n });\n };\n\n Shared.prototype.delegateScroll = function(coordinates) {\n this.editor.scrollTo(coordinates.x, coordinates.y);\n };\n\n Shared.prototype.delegateSelection = function(ranges, focus) {\n var doc = this.editor.getDoc();\n doc.setSelections(ranges);\n\n if (focus) {\n this.editor.focus();\n }\n };\n\n Shared.prototype.apply = function(props) {\n if (props && props.selection && props.selection.ranges) {\n this.delegateSelection(props.selection.ranges, props.selection.focus || false);\n }\n\n if (props && props.cursor) {\n this.delegateCursor(props.cursor, props.autoScroll || false, this.editor.getOption('autofocus') || false);\n }\n\n if (props && props.scroll) {\n this.delegateScroll(props.scroll);\n }\n };\n\n Shared.prototype.applyNext = function(props, next, preserved) {\n if (props && props.selection && props.selection.ranges) {\n if (next && next.selection && next.selection.ranges && !Helper.equals(props.selection.ranges, next.selection.ranges)) {\n this.delegateSelection(next.selection.ranges, next.selection.focus || false);\n }\n }\n\n if (props && props.cursor) {\n if (next && next.cursor && !Helper.equals(props.cursor, next.cursor)) {\n this.delegateCursor(preserved.cursor || next.cursor, next.autoScroll || false, next.autoCursor || false);\n }\n }\n\n if (props && props.scroll) {\n if (next && next.scroll && !Helper.equals(props.scroll, next.scroll)) {\n this.delegateScroll(next.scroll);\n }\n }\n };\n\n Shared.prototype.applyUserDefined = function(props, preserved) {\n if (preserved && preserved.cursor) {\n this.delegateCursor(preserved.cursor, props.autoScroll || false, this.editor.getOption('autofocus') || false);\n }\n };\n\n Shared.prototype.wire = function(props) {\n var _this = this;\n\n Object.keys(props || {}).filter(function(p) {\n return /^on/.test(p);\n }).forEach(function(prop) {\n switch (prop) {\n case 'onBlur':\n {\n _this.editor.on('blur', function(cm, event) {\n _this.props.onBlur(_this.editor, event);\n });\n }\n break;\n\n case 'onContextMenu':\n {\n _this.editor.on('contextmenu', function(cm, event) {\n _this.props.onContextMenu(_this.editor, event);\n });\n\n break;\n }\n\n case 'onCopy':\n {\n _this.editor.on('copy', function(cm, event) {\n _this.props.onCopy(_this.editor, event);\n });\n\n break;\n }\n\n case 'onCursor':\n {\n _this.editor.on('cursorActivity', function(cm) {\n _this.props.onCursor(_this.editor, _this.editor.getDoc().getCursor());\n });\n }\n break;\n\n case 'onCursorActivity':\n {\n _this.editor.on('cursorActivity', function(cm) {\n _this.props.onCursorActivity(_this.editor);\n });\n }\n break;\n\n case 'onCut':\n {\n _this.editor.on('cut', function(cm, event) {\n _this.props.onCut(_this.editor, event);\n });\n\n break;\n }\n\n case 'onDblClick':\n {\n _this.editor.on('dblclick', function(cm, event) {\n _this.props.onDblClick(_this.editor, event);\n });\n\n break;\n }\n\n case 'onDragEnter':\n {\n _this.editor.on('dragenter', function(cm, event) {\n _this.props.onDragEnter(_this.editor, event);\n });\n }\n break;\n\n case 'onDragLeave':\n {\n _this.editor.on('dragleave', function(cm, event) {\n _this.props.onDragLeave(_this.editor, event);\n });\n\n break;\n }\n\n case 'onDragOver':\n {\n _this.editor.on('dragover', function(cm, event) {\n _this.props.onDragOver(_this.editor, event);\n });\n }\n break;\n\n case 'onDragStart':\n {\n _this.editor.on('dragstart', function(cm, event) {\n _this.props.onDragStart(_this.editor, event);\n });\n\n break;\n }\n\n case 'onDrop':\n {\n _this.editor.on('drop', function(cm, event) {\n _this.props.onDrop(_this.editor, event);\n });\n }\n break;\n\n case 'onFocus':\n {\n _this.editor.on('focus', function(cm, event) {\n _this.props.onFocus(_this.editor, event);\n });\n }\n break;\n\n case 'onGutterClick':\n {\n _this.editor.on('gutterClick', function(cm, lineNumber, gutter, event) {\n _this.props.onGutterClick(_this.editor, lineNumber, gutter, event);\n });\n }\n break;\n\n case 'onKeyDown':\n {\n _this.editor.on('keydown', function(cm, event) {\n _this.props.onKeyDown(_this.editor, event);\n });\n }\n break;\n\n case 'onKeyPress':\n {\n _this.editor.on('keypress', function(cm, event) {\n _this.props.onKeyPress(_this.editor, event);\n });\n }\n break;\n\n case 'onKeyUp':\n {\n _this.editor.on('keyup', function(cm, event) {\n _this.props.onKeyUp(_this.editor, event);\n });\n }\n break;\n\n case 'onMouseDown':\n {\n _this.editor.on('mousedown', function(cm, event) {\n _this.props.onMouseDown(_this.editor, event);\n });\n\n break;\n }\n\n case 'onPaste':\n {\n _this.editor.on('paste', function(cm, event) {\n _this.props.onPaste(_this.editor, event);\n });\n\n break;\n }\n\n case 'onRenderLine':\n {\n _this.editor.on('renderLine', function(cm, line, element) {\n _this.props.onRenderLine(_this.editor, line, element);\n });\n\n break;\n }\n\n case 'onScroll':\n {\n _this.editor.on('scroll', function(cm) {\n _this.props.onScroll(_this.editor, _this.editor.getScrollInfo());\n });\n }\n break;\n\n case 'onSelection':\n {\n _this.editor.on('beforeSelectionChange', function(cm, data) {\n _this.props.onSelection(_this.editor, data);\n });\n }\n break;\n\n case 'onTouchStart':\n {\n _this.editor.on('touchstart', function(cm, event) {\n _this.props.onTouchStart(_this.editor, event);\n });\n\n break;\n }\n\n case 'onUpdate':\n {\n _this.editor.on('update', function(cm) {\n _this.props.onUpdate(_this.editor);\n });\n }\n break;\n\n case 'onViewportChange':\n {\n _this.editor.on('viewportChange', function(cm, from, to) {\n _this.props.onViewportChange(_this.editor, from, to);\n });\n }\n break;\n }\n });\n };\n\n return Shared;\n}();\n\nvar Controlled = function(_super) {\n __extends(Controlled, _super);\n\n function Controlled(props) {\n var _this = _super.call(this, props) || this;\n\n if (SERVER_RENDERED) return _this;\n _this.applied = false;\n _this.appliedNext = false;\n _this.appliedUserDefined = false;\n _this.deferred = null;\n _this.emulating = false;\n _this.hydrated = false;\n\n _this.initCb = function() {\n if (_this.props.editorDidConfigure) {\n _this.props.editorDidConfigure(_this.editor);\n }\n };\n\n _this.mounted = false;\n return _this;\n }\n\n Controlled.prototype.hydrate = function(props) {\n var _this = this;\n\n var _options = props && props.options ? props.options : {};\n\n var userDefinedOptions = _extends({}, cm.defaults, this.editor.options, _options);\n\n var optionDelta = Object.keys(userDefinedOptions).some(function(key) {\n return _this.editor.getOption(key) !== userDefinedOptions[key];\n });\n\n if (optionDelta) {\n Object.keys(userDefinedOptions).forEach(function(key) {\n if (_options.hasOwnProperty(key)) {\n if (_this.editor.getOption(key) !== userDefinedOptions[key]) {\n _this.editor.setOption(key, userDefinedOptions[key]);\n\n _this.mirror.setOption(key, userDefinedOptions[key]);\n }\n }\n });\n }\n\n if (!this.hydrated) {\n this.deferred ? this.resolveChange() : this.initChange(props.value || '');\n }\n\n this.hydrated = true;\n };\n\n Controlled.prototype.initChange = function(value) {\n this.emulating = true;\n var doc = this.editor.getDoc();\n var lastLine = doc.lastLine();\n var lastChar = doc.getLine(doc.lastLine()).length;\n doc.replaceRange(value || '', {\n line: 0,\n ch: 0\n }, {\n line: lastLine,\n ch: lastChar\n });\n this.mirror.setValue(value);\n doc.clearHistory();\n this.mirror.clearHistory();\n this.emulating = false;\n };\n\n Controlled.prototype.resolveChange = function() {\n this.emulating = true;\n var doc = this.editor.getDoc();\n\n if (this.deferred.origin === 'undo') {\n doc.undo();\n } else if (this.deferred.origin === 'redo') {\n doc.redo();\n } else {\n doc.replaceRange(this.deferred.text, this.deferred.from, this.deferred.to, this.deferred.origin);\n }\n\n this.emulating = false;\n this.deferred = null;\n };\n\n Controlled.prototype.mirrorChange = function(deferred) {\n var doc = this.editor.getDoc();\n\n if (deferred.origin === 'undo') {\n doc.setHistory(this.mirror.getHistory());\n this.mirror.undo();\n } else if (deferred.origin === 'redo') {\n doc.setHistory(this.mirror.getHistory());\n this.mirror.redo();\n } else {\n this.mirror.replaceRange(deferred.text, deferred.from, deferred.to, deferred.origin);\n }\n\n return this.mirror.getValue();\n };\n\n Controlled.prototype.componentDidMount = function() {\n var _this = this;\n\n if (SERVER_RENDERED) return;\n\n if (this.props.defineMode) {\n if (this.props.defineMode.name && this.props.defineMode.fn) {\n cm.defineMode(this.props.defineMode.name, this.props.defineMode.fn);\n }\n }\n\n this.editor = cm(this.ref);\n this.shared = new Shared(this.editor, this.props);\n this.mirror = cm(function() {});\n this.editor.on('electricInput', function() {\n _this.mirror.setHistory(_this.editor.getDoc().getHistory());\n });\n this.editor.on('cursorActivity', function() {\n _this.mirror.setCursor(_this.editor.getDoc().getCursor());\n });\n this.editor.on('beforeChange', function(cm, data) {\n if (_this.emulating) {\n return;\n }\n\n data.cancel();\n _this.deferred = data;\n\n var phantomChange = _this.mirrorChange(_this.deferred);\n\n if (_this.props.onBeforeChange) _this.props.onBeforeChange(_this.editor, _this.deferred, phantomChange);\n });\n this.editor.on('change', function(cm, data) {\n if (!_this.mounted) {\n return;\n }\n\n if (_this.props.onChange) {\n _this.props.onChange(_this.editor, data, _this.editor.getValue());\n }\n });\n this.hydrate(this.props);\n this.shared.apply(this.props);\n this.applied = true;\n this.mounted = true;\n this.shared.wire(this.props);\n\n if (this.editor.getOption('autofocus')) {\n this.editor.focus();\n }\n\n if (this.props.editorDidMount) {\n this.props.editorDidMount(this.editor, this.editor.getValue(), this.initCb);\n }\n };\n\n Controlled.prototype.componentDidUpdate = function(prevProps) {\n if (SERVER_RENDERED) return;\n var preserved = {\n cursor: null\n };\n\n if (this.props.value !== prevProps.value) {\n this.hydrated = false;\n }\n\n if (!this.props.autoCursor && this.props.autoCursor !== undefined) {\n preserved.cursor = this.editor.getDoc().getCursor();\n }\n\n this.hydrate(this.props);\n\n if (!this.appliedNext) {\n this.shared.applyNext(prevProps, this.props, preserved);\n this.appliedNext = true;\n }\n\n this.shared.applyUserDefined(prevProps, preserved);\n this.appliedUserDefined = true;\n };\n\n Controlled.prototype.componentWillUnmount = function() {\n if (SERVER_RENDERED) return;\n\n if (this.props.editorWillUnmount) {\n this.props.editorWillUnmount(cm);\n }\n };\n\n Controlled.prototype.shouldComponentUpdate = function(nextProps, nextState) {\n return !SERVER_RENDERED;\n };\n\n Controlled.prototype.render = function() {\n var _this = this;\n\n if (SERVER_RENDERED) return null;\n var className = this.props.className ? 'react-codemirror2 ' + this.props.className : 'react-codemirror2';\n return React.createElement('div', {\n className: className,\n ref: function ref(self) {\n return _this.ref = self;\n }\n });\n };\n\n return Controlled;\n}(React.Component);\n\nexports.Controlled = Controlled;\n\nvar UnControlled = function(_super) {\n __extends(UnControlled, _super);\n\n function UnControlled(props) {\n var _this = _super.call(this, props) || this;\n\n if (SERVER_RENDERED) return _this;\n _this.applied = false;\n _this.appliedUserDefined = false;\n _this.continueChange = false;\n _this.detached = false;\n _this.hydrated = false;\n\n _this.initCb = function() {\n if (_this.props.editorDidConfigure) {\n _this.props.editorDidConfigure(_this.editor);\n }\n };\n\n _this.mounted = false;\n\n _this.onBeforeChangeCb = function() {\n _this.continueChange = true;\n };\n\n return _this;\n }\n\n UnControlled.prototype.hydrate = function(props) {\n var _this = this;\n\n var _options = props && props.options ? props.options : {};\n\n var userDefinedOptions = _extends({}, cm.defaults, this.editor.options, _options);\n\n var optionDelta = Object.keys(userDefinedOptions).some(function(key) {\n return _this.editor.getOption(key) !== userDefinedOptions[key];\n });\n\n if (optionDelta) {\n Object.keys(userDefinedOptions).forEach(function(key) {\n if (_options.hasOwnProperty(key)) {\n if (_this.editor.getOption(key) !== userDefinedOptions[key]) {\n _this.editor.setOption(key, userDefinedOptions[key]);\n }\n }\n });\n }\n\n if (!this.hydrated) {\n var doc = this.editor.getDoc();\n var lastLine = doc.lastLine();\n var lastChar = doc.getLine(doc.lastLine()).length;\n doc.replaceRange(props.value || '', {\n line: 0,\n ch: 0\n }, {\n line: lastLine,\n ch: lastChar\n });\n }\n\n this.hydrated = true;\n };\n\n UnControlled.prototype.componentDidMount = function() {\n var _this = this;\n\n if (SERVER_RENDERED) return;\n this.detached = this.props.detach === true;\n\n if (this.props.defineMode) {\n if (this.props.defineMode.name && this.props.defineMode.fn) {\n cm.defineMode(this.props.defineMode.name, this.props.defineMode.fn);\n }\n }\n\n this.editor = cm(this.ref);\n this.shared = new Shared(this.editor, this.props);\n this.editor.on('beforeChange', function(cm, data) {\n if (_this.props.onBeforeChange) {\n _this.props.onBeforeChange(_this.editor, data, _this.editor.getValue(), _this.onBeforeChangeCb);\n }\n });\n this.editor.on('change', function(cm, data) {\n if (!_this.mounted || !_this.props.onChange) {\n return;\n }\n\n if (_this.props.onBeforeChange) {\n if (_this.continueChange) {\n _this.props.onChange(_this.editor, data, _this.editor.getValue());\n }\n } else {\n _this.props.onChange(_this.editor, data, _this.editor.getValue());\n }\n });\n this.hydrate(this.props);\n this.shared.apply(this.props);\n this.applied = true;\n this.mounted = true;\n this.shared.wire(this.props);\n this.editor.getDoc().clearHistory();\n\n if (this.props.editorDidMount) {\n this.props.editorDidMount(this.editor, this.editor.getValue(), this.initCb);\n }\n };\n\n UnControlled.prototype.componentDidUpdate = function(prevProps) {\n if (this.detached && this.props.detach === false) {\n this.detached = false;\n\n if (prevProps.editorDidAttach) {\n prevProps.editorDidAttach(this.editor);\n }\n }\n\n if (!this.detached && this.props.detach === true) {\n this.detached = true;\n\n if (prevProps.editorDidDetach) {\n prevProps.editorDidDetach(this.editor);\n }\n }\n\n if (SERVER_RENDERED || this.detached) return;\n var preserved = {\n cursor: null\n };\n\n if (this.props.value !== prevProps.value) {\n this.hydrated = false;\n this.applied = false;\n this.appliedUserDefined = false;\n }\n\n if (!prevProps.autoCursor && prevProps.autoCursor !== undefined) {\n preserved.cursor = this.editor.getDoc().getCursor();\n }\n\n this.hydrate(this.props);\n\n if (!this.applied) {\n this.shared.apply(prevProps);\n this.applied = true;\n }\n\n if (!this.appliedUserDefined) {\n this.shared.applyUserDefined(prevProps, preserved);\n this.appliedUserDefined = true;\n }\n };\n\n UnControlled.prototype.componentWillUnmount = function() {\n if (SERVER_RENDERED) return;\n\n if (this.props.editorWillUnmount) {\n this.props.editorWillUnmount(cm);\n }\n };\n\n UnControlled.prototype.shouldComponentUpdate = function(nextProps, nextState) {\n var update = true;\n if (SERVER_RENDERED) update = false;\n if (this.detached && nextProps.detach) update = false;\n return update;\n };\n\n UnControlled.prototype.render = function() {\n var _this = this;\n\n if (SERVER_RENDERED) return null;\n var className = this.props.className ? 'react-codemirror2 ' + this.props.className : 'react-codemirror2';\n return React.createElement('div', {\n className: className,\n ref: function ref(self) {\n return _this.ref = self;\n }\n });\n };\n\n return UnControlled;\n}(React.Component);\n\nexports.UnControlled = UnControlled;","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","/**\n * Returns true if a value is null, undefined, or NaN.\n */\nexport default function isNullish(value) {\n return value === null || value === undefined || value !== value;\n}\n","import { GraphQLError } from '../../error/GraphQLError';\nimport { Kind } from '../../language/kinds';\nimport { isExecutableDefinitionNode } from '../../language/predicates';\nexport function nonExecutableDefinitionMessage(defName) {\n return \"The \".concat(defName, \" definition is not executable.\");\n}\n/**\n * Executable definitions\n *\n * A GraphQL document is only valid for execution if all definitions are either\n * operation or fragment definitions.\n */\n\nexport function ExecutableDefinitions(context) {\n return {\n Document: function Document(node) {\n for (var _i2 = 0, _node$definitions2 = node.definitions; _i2 < _node$definitions2.length; _i2++) {\n var definition = _node$definitions2[_i2];\n\n if (!isExecutableDefinitionNode(definition)) {\n context.reportError(new GraphQLError(nonExecutableDefinitionMessage(definition.kind === Kind.SCHEMA_DEFINITION || definition.kind === Kind.SCHEMA_EXTENSION ? 'schema' : definition.name.value), definition));\n }\n }\n\n return false;\n }\n };\n}\n","import objectValues from '../../polyfills/objectValues';\nimport keyMap from '../../jsutils/keyMap';\nimport inspect from '../../jsutils/inspect';\nimport isInvalid from '../../jsutils/isInvalid';\nimport didYouMean from '../../jsutils/didYouMean';\nimport suggestionList from '../../jsutils/suggestionList';\nimport { GraphQLError } from '../../error/GraphQLError';\nimport { print } from '../../language/printer';\nimport { isScalarType, isEnumType, isInputObjectType, isListType, isNonNullType, isRequiredInputField, getNullableType, getNamedType } from '../../type/definition';\nexport function badValueMessage(typeName, valueName, message) {\n return \"Expected type \".concat(typeName, \", found \").concat(valueName) + (message ? \"; \".concat(message) : '.');\n}\nexport function badEnumValueMessage(typeName, valueName, suggestedValues) {\n return \"Expected type \".concat(typeName, \", found \").concat(valueName, \".\") + didYouMean('the enum value', suggestedValues);\n}\nexport function requiredFieldMessage(typeName, fieldName, fieldTypeName) {\n return \"Field \".concat(typeName, \".\").concat(fieldName, \" of required type \").concat(fieldTypeName, \" was not provided.\");\n}\nexport function unknownFieldMessage(typeName, fieldName, suggestedFields) {\n return \"Field \\\"\".concat(fieldName, \"\\\" is not defined by type \").concat(typeName, \".\") + didYouMean(suggestedFields);\n}\n/**\n * Value literals of correct type\n *\n * A GraphQL document is only valid if all value literals are of the type\n * expected at their position.\n */\n\nexport function ValuesOfCorrectType(context) {\n return {\n NullValue: function NullValue(node) {\n var type = context.getInputType();\n\n if (isNonNullType(type)) {\n context.reportError(new GraphQLError(badValueMessage(inspect(type), print(node)), node));\n }\n },\n ListValue: function ListValue(node) {\n // Note: TypeInfo will traverse into a list's item type, so look to the\n // parent input type to check if it is a list.\n var type = getNullableType(context.getParentInputType());\n\n if (!isListType(type)) {\n isValidScalar(context, node);\n return false; // Don't traverse further.\n }\n },\n ObjectValue: function ObjectValue(node) {\n var type = getNamedType(context.getInputType());\n\n if (!isInputObjectType(type)) {\n isValidScalar(context, node);\n return false; // Don't traverse further.\n } // Ensure every required field exists.\n\n\n var fieldNodeMap = keyMap(node.fields, function (field) {\n return field.name.value;\n });\n\n for (var _i2 = 0, _objectValues2 = objectValues(type.getFields()); _i2 < _objectValues2.length; _i2++) {\n var fieldDef = _objectValues2[_i2];\n var fieldNode = fieldNodeMap[fieldDef.name];\n\n if (!fieldNode && isRequiredInputField(fieldDef)) {\n var typeStr = inspect(fieldDef.type);\n context.reportError(new GraphQLError(requiredFieldMessage(type.name, fieldDef.name, typeStr), node));\n }\n }\n },\n ObjectField: function ObjectField(node) {\n var parentType = getNamedType(context.getParentInputType());\n var fieldType = context.getInputType();\n\n if (!fieldType && isInputObjectType(parentType)) {\n var suggestions = suggestionList(node.name.value, Object.keys(parentType.getFields()));\n context.reportError(new GraphQLError(unknownFieldMessage(parentType.name, node.name.value, suggestions), node));\n }\n },\n EnumValue: function EnumValue(node) {\n var type = getNamedType(context.getInputType());\n\n if (!isEnumType(type)) {\n isValidScalar(context, node);\n } else if (!type.getValue(node.value)) {\n context.reportError(new GraphQLError(badEnumValueMessage(type.name, print(node), enumTypeSuggestion(type, node)), node));\n }\n },\n IntValue: function IntValue(node) {\n return isValidScalar(context, node);\n },\n FloatValue: function FloatValue(node) {\n return isValidScalar(context, node);\n },\n StringValue: function StringValue(node) {\n return isValidScalar(context, node);\n },\n BooleanValue: function BooleanValue(node) {\n return isValidScalar(context, node);\n }\n };\n}\n/**\n * Any value literal may be a valid representation of a Scalar, depending on\n * that scalar type.\n */\n\nfunction isValidScalar(context, node) {\n // Report any error at the full type expected by the location.\n var locationType = context.getInputType();\n\n if (!locationType) {\n return;\n }\n\n var type = getNamedType(locationType);\n\n if (!isScalarType(type)) {\n var message = isEnumType(type) ? badEnumValueMessage(inspect(locationType), print(node), enumTypeSuggestion(type, node)) : badValueMessage(inspect(locationType), print(node));\n context.reportError(new GraphQLError(message, node));\n return;\n } // Scalars determine if a literal value is valid via parseLiteral() which\n // may throw or return an invalid value to indicate failure.\n\n\n try {\n var parseResult = type.parseLiteral(node, undefined\n /* variables */\n );\n\n if (isInvalid(parseResult)) {\n context.reportError(new GraphQLError(badValueMessage(inspect(locationType), print(node)), node));\n }\n } catch (error) {\n // Ensure a reference to the original error is maintained.\n context.reportError(new GraphQLError(badValueMessage(inspect(locationType), print(node), error.message), node, undefined, undefined, undefined, error));\n }\n}\n\nfunction enumTypeSuggestion(type, node) {\n var allNames = type.getValues().map(function (value) {\n return value.name;\n });\n return suggestionList(print(node), allNames);\n}\n","export var calculateChange = function calculateChange(e, hsl, direction, initialA, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (direction === 'vertical') {\n var a = void 0;\n if (top < 0) {\n a = 0;\n } else if (top > containerHeight) {\n a = 1;\n } else {\n a = Math.round(top * 100 / containerHeight) / 100;\n }\n\n if (hsl.a !== a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: a,\n source: 'rgb'\n };\n }\n } else {\n var _a = void 0;\n if (left < 0) {\n _a = 0;\n } else if (left > containerWidth) {\n _a = 1;\n } else {\n _a = Math.round(left * 100 / containerWidth) / 100;\n }\n\n if (initialA !== _a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: _a,\n source: 'rgb'\n };\n }\n }\n return null;\n};","var checkboardCache = {};\n\nexport var render = function render(c1, c2, size, serverCanvas) {\n if (typeof document === 'undefined' && !serverCanvas) {\n return null;\n }\n var canvas = serverCanvas ? new serverCanvas() : document.createElement('canvas');\n canvas.width = size * 2;\n canvas.height = size * 2;\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return null;\n } // If no context can be found, return early.\n ctx.fillStyle = c1;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.fillStyle = c2;\n ctx.fillRect(0, 0, size, size);\n ctx.translate(size, size);\n ctx.fillRect(0, 0, size, size);\n return canvas.toDataURL();\n};\n\nexport var get = function get(c1, c2, size, serverCanvas) {\n var key = c1 + '-' + c2 + '-' + size + (serverCanvas ? '-server' : '');\n\n if (checkboardCache[key]) {\n return checkboardCache[key];\n }\n\n var checkboard = render(c1, c2, size, serverCanvas);\n checkboardCache[key] = checkboard;\n return checkboard;\n};","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React, { isValidElement } from 'react';\nimport reactCSS from 'reactcss';\nimport * as checkboard from '../../helpers/checkboard';\n\nexport var Checkboard = function Checkboard(_ref) {\n var white = _ref.white,\n grey = _ref.grey,\n size = _ref.size,\n renderers = _ref.renderers,\n borderRadius = _ref.borderRadius,\n boxShadow = _ref.boxShadow,\n children = _ref.children;\n\n var styles = reactCSS({\n 'default': {\n grid: {\n borderRadius: borderRadius,\n boxShadow: boxShadow,\n absolute: '0px 0px 0px 0px',\n background: 'url(' + checkboard.get(white, grey, size, renderers.canvas) + ') center left'\n }\n }\n });\n return isValidElement(children) ? React.cloneElement(children, _extends({}, children.props, { style: _extends({}, children.props.style, styles.grid) })) : React.createElement('div', { style: styles.grid });\n};\n\nCheckboard.defaultProps = {\n size: 8,\n white: 'transparent',\n grey: 'rgba(0,0,0,.08)',\n renderers: {}\n};\n\nexport default Checkboard;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport * as alpha from '../../helpers/alpha';\n\nimport Checkboard from './Checkboard';\n\nexport var Alpha = function (_ref) {\n _inherits(Alpha, _ref);\n\n function Alpha() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Alpha);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Alpha.__proto__ || Object.getPrototypeOf(Alpha)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {\n var change = alpha.calculateChange(e, _this.props.hsl, _this.props.direction, _this.props.a, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n }, _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n }, _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleChange);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Alpha, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var rgb = this.props.rgb;\n var styles = reactCSS({\n 'default': {\n alpha: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n checkboard: {\n absolute: '0px 0px 0px 0px',\n overflow: 'hidden',\n borderRadius: this.props.radius\n },\n gradient: {\n absolute: '0px 0px 0px 0px',\n background: 'linear-gradient(to right, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n container: {\n position: 'relative',\n height: '100%',\n margin: '0 3px'\n },\n pointer: {\n position: 'absolute',\n left: rgb.a * 100 + '%'\n },\n slider: {\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n marginTop: '1px',\n transform: 'translateX(-2px)'\n }\n },\n 'vertical': {\n gradient: {\n background: 'linear-gradient(to bottom, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)'\n },\n pointer: {\n left: 0,\n top: rgb.a * 100 + '%'\n }\n },\n 'overwrite': _extends({}, this.props.style)\n }, {\n vertical: this.props.direction === 'vertical',\n overwrite: true\n });\n\n return React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(\n 'div',\n { style: styles.checkboard },\n React.createElement(Checkboard, { renderers: this.props.renderers })\n ),\n React.createElement('div', { style: styles.gradient }),\n React.createElement(\n 'div',\n {\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n React.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? React.createElement(this.props.pointer, this.props) : React.createElement('div', { style: styles.slider })\n )\n )\n );\n }\n }]);\n\n return Alpha;\n}(PureComponent || Component);\n\nexport default Alpha;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\n\nvar DEFAULT_ARROW_OFFSET = 1;\n\nvar UP_KEY_CODE = 38;\nvar DOWN_KEY_CODE = 40;\nvar VALID_KEY_CODES = [UP_KEY_CODE, DOWN_KEY_CODE];\nvar isValidKeyCode = function isValidKeyCode(keyCode) {\n return VALID_KEY_CODES.indexOf(keyCode) > -1;\n};\nvar getNumberValue = function getNumberValue(value) {\n return Number(String(value).replace(/%/g, ''));\n};\n\nvar idCounter = 1;\n\nexport var EditableInput = function (_ref) {\n _inherits(EditableInput, _ref);\n\n function EditableInput(props) {\n _classCallCheck(this, EditableInput);\n\n var _this = _possibleConstructorReturn(this, (EditableInput.__proto__ || Object.getPrototypeOf(EditableInput)).call(this));\n\n _this.handleBlur = function () {\n if (_this.state.blurValue) {\n _this.setState({ value: _this.state.blurValue, blurValue: null });\n }\n };\n\n _this.handleChange = function (e) {\n _this.setUpdatedValue(e.target.value, e);\n };\n\n _this.handleKeyDown = function (e) {\n // In case `e.target.value` is a percentage remove the `%` character\n // and update accordingly with a percentage\n // https://github.com/casesandberg/react-color/issues/383\n var value = getNumberValue(e.target.value);\n if (!isNaN(value) && isValidKeyCode(e.keyCode)) {\n var offset = _this.getArrowOffset();\n var updatedValue = e.keyCode === UP_KEY_CODE ? value + offset : value - offset;\n\n _this.setUpdatedValue(updatedValue, e);\n }\n };\n\n _this.handleDrag = function (e) {\n if (_this.props.dragLabel) {\n var newValue = Math.round(_this.props.value + e.movementX);\n if (newValue >= 0 && newValue <= _this.props.dragMax) {\n _this.props.onChange && _this.props.onChange(_this.getValueObjectWithLabel(newValue), e);\n }\n }\n };\n\n _this.handleMouseDown = function (e) {\n if (_this.props.dragLabel) {\n e.preventDefault();\n _this.handleDrag(e);\n window.addEventListener('mousemove', _this.handleDrag);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }\n };\n\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n\n _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleDrag);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n };\n\n _this.state = {\n value: String(props.value).toUpperCase(),\n blurValue: String(props.value).toUpperCase()\n };\n\n _this.inputId = 'rc-editable-input-' + idCounter++;\n return _this;\n }\n\n _createClass(EditableInput, [{\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.props.value !== this.state.value && (prevProps.value !== this.props.value || prevState.value !== this.state.value)) {\n if (this.input === document.activeElement) {\n this.setState({ blurValue: String(this.props.value).toUpperCase() });\n } else {\n this.setState({ value: String(this.props.value).toUpperCase(), blurValue: !this.state.blurValue && String(this.props.value).toUpperCase() });\n }\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'getValueObjectWithLabel',\n value: function getValueObjectWithLabel(value) {\n return _defineProperty({}, this.props.label, value);\n }\n }, {\n key: 'getArrowOffset',\n value: function getArrowOffset() {\n return this.props.arrowOffset || DEFAULT_ARROW_OFFSET;\n }\n }, {\n key: 'setUpdatedValue',\n value: function setUpdatedValue(value, e) {\n var onChangeValue = this.props.label ? this.getValueObjectWithLabel(value) : value;\n this.props.onChange && this.props.onChange(onChangeValue, e);\n\n this.setState({ value: value });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var styles = reactCSS({\n 'default': {\n wrap: {\n position: 'relative'\n }\n },\n 'user-override': {\n wrap: this.props.style && this.props.style.wrap ? this.props.style.wrap : {},\n input: this.props.style && this.props.style.input ? this.props.style.input : {},\n label: this.props.style && this.props.style.label ? this.props.style.label : {}\n },\n 'dragLabel-true': {\n label: {\n cursor: 'ew-resize'\n }\n }\n }, {\n 'user-override': true\n }, this.props);\n\n return React.createElement(\n 'div',\n { style: styles.wrap },\n React.createElement('input', {\n id: this.inputId,\n style: styles.input,\n ref: function ref(input) {\n return _this2.input = input;\n },\n value: this.state.value,\n onKeyDown: this.handleKeyDown,\n onChange: this.handleChange,\n onBlur: this.handleBlur,\n placeholder: this.props.placeholder,\n spellCheck: 'false'\n }),\n this.props.label && !this.props.hideLabel ? React.createElement(\n 'label',\n {\n htmlFor: this.inputId,\n style: styles.label,\n onMouseDown: this.handleMouseDown\n },\n this.props.label\n ) : null\n );\n }\n }]);\n\n return EditableInput;\n}(PureComponent || Component);\n\nexport default EditableInput;","export var calculateChange = function calculateChange(e, direction, hsl, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (direction === 'vertical') {\n var h = void 0;\n if (top < 0) {\n h = 359;\n } else if (top > containerHeight) {\n h = 0;\n } else {\n var percent = -(top * 100 / containerHeight) + 100;\n h = 360 * percent / 100;\n }\n\n if (hsl.h !== h) {\n return {\n h: h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'hsl'\n };\n }\n } else {\n var _h = void 0;\n if (left < 0) {\n _h = 0;\n } else if (left > containerWidth) {\n _h = 359;\n } else {\n var _percent = left * 100 / containerWidth;\n _h = 360 * _percent / 100;\n }\n\n if (hsl.h !== _h) {\n return {\n h: _h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'hsl'\n };\n }\n }\n return null;\n};","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport * as hue from '../../helpers/hue';\n\nexport var Hue = function (_ref) {\n _inherits(Hue, _ref);\n\n function Hue() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Hue);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Hue.__proto__ || Object.getPrototypeOf(Hue)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {\n var change = hue.calculateChange(e, _this.props.direction, _this.props.hsl, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n }, _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Hue, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'unbindEventListeners',\n value: function unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props$direction = this.props.direction,\n direction = _props$direction === undefined ? 'horizontal' : _props$direction;\n\n\n var styles = reactCSS({\n 'default': {\n hue: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius,\n boxShadow: this.props.shadow\n },\n container: {\n padding: '0 2px',\n position: 'relative',\n height: '100%',\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n left: this.props.hsl.h * 100 / 360 + '%'\n },\n slider: {\n marginTop: '1px',\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n transform: 'translateX(-2px)'\n }\n },\n 'vertical': {\n pointer: {\n left: '0px',\n top: -(this.props.hsl.h * 100 / 360) + 100 + '%'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(\n 'div',\n {\n className: 'hue-' + direction,\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n React.createElement(\n 'style',\n null,\n '\\n .hue-horizontal {\\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0\\n 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to right, #f00 0%, #ff0\\n 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n\\n .hue-vertical {\\n background: linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%,\\n #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to top, #f00 0%, #ff0 17%,\\n #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n '\n ),\n React.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? React.createElement(this.props.pointer, this.props) : React.createElement('div', { style: styles.slider })\n )\n )\n );\n }\n }]);\n\n return Hue;\n}(PureComponent || Component);\n\nexport default Hue;","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nexport var Raised = function Raised(_ref) {\n var zDepth = _ref.zDepth,\n radius = _ref.radius,\n background = _ref.background,\n children = _ref.children,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles;\n\n var styles = reactCSS(merge({\n 'default': {\n wrap: {\n position: 'relative',\n display: 'inline-block'\n },\n content: {\n position: 'relative'\n },\n bg: {\n absolute: '0px 0px 0px 0px',\n boxShadow: '0 ' + zDepth + 'px ' + zDepth * 4 + 'px rgba(0,0,0,.24)',\n borderRadius: radius,\n background: background\n }\n },\n 'zDepth-0': {\n bg: {\n boxShadow: 'none'\n }\n },\n\n 'zDepth-1': {\n bg: {\n boxShadow: '0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16)'\n }\n },\n 'zDepth-2': {\n bg: {\n boxShadow: '0 6px 20px rgba(0,0,0,.19), 0 8px 17px rgba(0,0,0,.2)'\n }\n },\n 'zDepth-3': {\n bg: {\n boxShadow: '0 17px 50px rgba(0,0,0,.19), 0 12px 15px rgba(0,0,0,.24)'\n }\n },\n 'zDepth-4': {\n bg: {\n boxShadow: '0 25px 55px rgba(0,0,0,.21), 0 16px 28px rgba(0,0,0,.22)'\n }\n },\n 'zDepth-5': {\n bg: {\n boxShadow: '0 40px 77px rgba(0,0,0,.22), 0 27px 24px rgba(0,0,0,.2)'\n }\n },\n 'square': {\n bg: {\n borderRadius: '0'\n }\n },\n 'circle': {\n bg: {\n borderRadius: '50%'\n }\n }\n }, passedStyles), { 'zDepth-1': zDepth === 1 });\n\n return React.createElement(\n 'div',\n { style: styles.wrap },\n React.createElement('div', { style: styles.bg }),\n React.createElement(\n 'div',\n { style: styles.content },\n children\n )\n );\n};\n\nRaised.propTypes = {\n background: PropTypes.string,\n zDepth: PropTypes.oneOf([0, 1, 2, 3, 4, 5]),\n radius: PropTypes.number,\n styles: PropTypes.object\n};\n\nRaised.defaultProps = {\n background: '#fff',\n zDepth: 1,\n radius: 2,\n styles: {}\n};\n\nexport default Raised;","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport throttle from 'lodash-es/throttle';\nimport * as saturation from '../../helpers/saturation';\n\nexport var Saturation = function (_ref) {\n _inherits(Saturation, _ref);\n\n function Saturation(props) {\n _classCallCheck(this, Saturation);\n\n var _this = _possibleConstructorReturn(this, (Saturation.__proto__ || Object.getPrototypeOf(Saturation)).call(this, props));\n\n _this.handleChange = function (e) {\n typeof _this.props.onChange === 'function' && _this.throttle(_this.props.onChange, saturation.calculateChange(e, _this.props.hsl, _this.container), e);\n };\n\n _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n var renderWindow = _this.getContainerRenderWindow();\n renderWindow.addEventListener('mousemove', _this.handleChange);\n renderWindow.addEventListener('mouseup', _this.handleMouseUp);\n };\n\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n\n _this.throttle = throttle(function (fn, data, e) {\n fn(data, e);\n }, 50);\n return _this;\n }\n\n _createClass(Saturation, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.throttle.cancel();\n this.unbindEventListeners();\n }\n }, {\n key: 'getContainerRenderWindow',\n value: function getContainerRenderWindow() {\n var container = this.container;\n\n var renderWindow = window;\n while (!renderWindow.document.contains(container) && renderWindow.parent !== renderWindow) {\n renderWindow = renderWindow.parent;\n }\n return renderWindow;\n }\n }, {\n key: 'unbindEventListeners',\n value: function unbindEventListeners() {\n var renderWindow = this.getContainerRenderWindow();\n renderWindow.removeEventListener('mousemove', this.handleChange);\n renderWindow.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _ref2 = this.props.style || {},\n color = _ref2.color,\n white = _ref2.white,\n black = _ref2.black,\n pointer = _ref2.pointer,\n circle = _ref2.circle;\n\n var styles = reactCSS({\n 'default': {\n color: {\n absolute: '0px 0px 0px 0px',\n background: 'hsl(' + this.props.hsl.h + ',100%, 50%)',\n borderRadius: this.props.radius\n },\n white: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n black: {\n absolute: '0px 0px 0px 0px',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n top: -(this.props.hsv.v * 100) + 100 + '%',\n left: this.props.hsv.s * 100 + '%',\n cursor: 'default'\n },\n circle: {\n width: '4px',\n height: '4px',\n boxShadow: '0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0,0,0,.3),\\n 0 0 1px 2px rgba(0,0,0,.4)',\n borderRadius: '50%',\n cursor: 'hand',\n transform: 'translate(-2px, -2px)'\n }\n },\n 'custom': {\n color: color,\n white: white,\n black: black,\n pointer: pointer,\n circle: circle\n }\n }, { 'custom': !!this.props.style });\n\n return React.createElement(\n 'div',\n {\n style: styles.color,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n React.createElement(\n 'style',\n null,\n '\\n .saturation-white {\\n background: -webkit-linear-gradient(to right, #fff, rgba(255,255,255,0));\\n background: linear-gradient(to right, #fff, rgba(255,255,255,0));\\n }\\n .saturation-black {\\n background: -webkit-linear-gradient(to top, #000, rgba(0,0,0,0));\\n background: linear-gradient(to top, #000, rgba(0,0,0,0));\\n }\\n '\n ),\n React.createElement(\n 'div',\n { style: styles.white, className: 'saturation-white' },\n React.createElement('div', { style: styles.black, className: 'saturation-black' }),\n React.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? React.createElement(this.props.pointer, this.props) : React.createElement('div', { style: styles.circle })\n )\n )\n );\n }\n }]);\n\n return Saturation;\n}(PureComponent || Component);\n\nexport default Saturation;","export var calculateChange = function calculateChange(e, hsl, container) {\n var _container$getBoundin = container.getBoundingClientRect(),\n containerWidth = _container$getBoundin.width,\n containerHeight = _container$getBoundin.height;\n\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (left < 0) {\n left = 0;\n } else if (left > containerWidth) {\n left = containerWidth;\n }\n\n if (top < 0) {\n top = 0;\n } else if (top > containerHeight) {\n top = containerHeight;\n }\n\n var saturation = left / containerWidth;\n var bright = 1 - top / containerHeight;\n\n return {\n h: hsl.h,\n s: saturation,\n v: bright,\n a: hsl.a,\n source: 'hsv'\n };\n};","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import identity from './identity.js';\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nexport default castFunction;\n","import arrayEach from './_arrayEach.js';\nimport baseEach from './_baseEach.js';\nimport castFunction from './_castFunction.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nexport default forEach;\n","import each from 'lodash-es/each';\nimport tinycolor from 'tinycolor2';\n\nexport var simpleCheckForValidColor = function simpleCheckForValidColor(data) {\n var keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'];\n var checked = 0;\n var passed = 0;\n each(keysToCheck, function (letter) {\n if (data[letter]) {\n checked += 1;\n if (!isNaN(data[letter])) {\n passed += 1;\n }\n if (letter === 's' || letter === 'l') {\n var percentPatt = /^\\d+%$/;\n if (percentPatt.test(data[letter])) {\n passed += 1;\n }\n }\n }\n });\n return checked === passed ? data : false;\n};\n\nexport var toState = function toState(data, oldHue) {\n var color = data.hex ? tinycolor(data.hex) : tinycolor(data);\n var hsl = color.toHsl();\n var hsv = color.toHsv();\n var rgb = color.toRgb();\n var hex = color.toHex();\n if (hsl.s === 0) {\n hsl.h = oldHue || 0;\n hsv.h = oldHue || 0;\n }\n var transparent = hex === '000000' && rgb.a === 0;\n\n return {\n hsl: hsl,\n hex: transparent ? 'transparent' : '#' + hex,\n rgb: rgb,\n hsv: hsv,\n oldHue: data.h || oldHue || hsl.h,\n source: data.source\n };\n};\n\nexport var isValidHex = function isValidHex(hex) {\n if (hex === 'transparent') {\n return true;\n }\n // disable hex4 and hex8\n var lh = String(hex).charAt(0) === '#' ? 1 : 0;\n return hex.length !== 4 + lh && hex.length < 7 + lh && tinycolor(hex).isValid();\n};\n\nexport var getContrastingColor = function getContrastingColor(data) {\n if (!data) {\n return '#fff';\n }\n var col = toState(data);\n if (col.hex === 'transparent') {\n return 'rgba(0,0,0,0.4)';\n }\n var yiq = (col.rgb.r * 299 + col.rgb.g * 587 + col.rgb.b * 114) / 1000;\n return yiq >= 128 ? '#000' : '#fff';\n};\n\nexport var red = {\n hsl: { a: 1, h: 0, l: 0.5, s: 1 },\n hex: '#ff0000',\n rgb: { r: 255, g: 0, b: 0, a: 1 },\n hsv: { h: 0, s: 1, v: 1, a: 1 }\n};\n\nexport var isvalidColorString = function isvalidColorString(string, type) {\n var stringWithoutDegree = string.replace('°', '');\n return tinycolor(type + ' (' + stringWithoutDegree + ')')._ok;\n};","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport debounce from 'lodash-es/debounce';\nimport * as color from '../../helpers/color';\n\nexport var ColorWrap = function ColorWrap(Picker) {\n var ColorPicker = function (_ref) {\n _inherits(ColorPicker, _ref);\n\n function ColorPicker(props) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this));\n\n _this.handleChange = function (data, event) {\n var isValidColor = color.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = color.toState(data, data.h || _this.state.oldHue);\n _this.setState(colors);\n _this.props.onChangeComplete && _this.debounce(_this.props.onChangeComplete, colors, event);\n _this.props.onChange && _this.props.onChange(colors, event);\n }\n };\n\n _this.handleSwatchHover = function (data, event) {\n var isValidColor = color.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = color.toState(data, data.h || _this.state.oldHue);\n _this.props.onSwatchHover && _this.props.onSwatchHover(colors, event);\n }\n };\n\n _this.state = _extends({}, color.toState(props.color, 0));\n\n _this.debounce = debounce(function (fn, data, event) {\n fn(data, event);\n }, 100);\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'render',\n value: function render() {\n var optionalEvents = {};\n if (this.props.onSwatchHover) {\n optionalEvents.onSwatchHover = this.handleSwatchHover;\n }\n\n return React.createElement(Picker, _extends({}, this.props, this.state, {\n onChange: this.handleChange\n }, optionalEvents));\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, state) {\n return _extends({}, color.toState(nextProps.color, state.oldHue));\n }\n }]);\n\n return ColorPicker;\n }(PureComponent || Component);\n\n ColorPicker.propTypes = _extends({}, Picker.propTypes);\n\n ColorPicker.defaultProps = _extends({}, Picker.defaultProps, {\n color: {\n h: 250,\n s: 0.50,\n l: 0.20,\n a: 1\n }\n });\n\n return ColorPicker;\n};\n\nexport default ColorWrap;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint-disable no-invalid-this */\nimport React from 'react';\n\nexport var handleFocus = function handleFocus(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n return function (_React$Component) {\n _inherits(Focus, _React$Component);\n\n function Focus() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Focus);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Focus.__proto__ || Object.getPrototypeOf(Focus)).call.apply(_ref, [this].concat(args))), _this), _this.state = { focus: false }, _this.handleFocus = function () {\n return _this.setState({ focus: true });\n }, _this.handleBlur = function () {\n return _this.setState({ focus: false });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Focus, [{\n key: 'render',\n value: function render() {\n return React.createElement(\n Span,\n { onFocus: this.handleFocus, onBlur: this.handleBlur },\n React.createElement(Component, _extends({}, this.props, this.state))\n );\n }\n }]);\n\n return Focus;\n }(React.Component);\n};","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport { handleFocus } from '../../helpers/interaction';\n\nimport Checkboard from './Checkboard';\n\nvar ENTER = 13;\n\nexport var Swatch = function Swatch(_ref) {\n var color = _ref.color,\n style = _ref.style,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onHover = _ref.onHover,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? color : _ref$title,\n children = _ref.children,\n focus = _ref.focus,\n _ref$focusStyle = _ref.focusStyle,\n focusStyle = _ref$focusStyle === undefined ? {} : _ref$focusStyle;\n\n var transparent = color === 'transparent';\n var styles = reactCSS({\n default: {\n swatch: _extends({\n background: color,\n height: '100%',\n width: '100%',\n cursor: 'pointer',\n position: 'relative',\n outline: 'none'\n }, style, focus ? focusStyle : {})\n }\n });\n\n var handleClick = function handleClick(e) {\n return onClick(color, e);\n };\n var handleKeyDown = function handleKeyDown(e) {\n return e.keyCode === ENTER && onClick(color, e);\n };\n var handleHover = function handleHover(e) {\n return onHover(color, e);\n };\n\n var optionalEvents = {};\n if (onHover) {\n optionalEvents.onMouseOver = handleHover;\n }\n\n return React.createElement(\n 'div',\n _extends({\n style: styles.swatch,\n onClick: handleClick,\n title: title,\n tabIndex: 0,\n onKeyDown: handleKeyDown\n }, optionalEvents),\n children,\n transparent && React.createElement(Checkboard, {\n borderRadius: styles.swatch.borderRadius,\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,0.1)'\n })\n );\n};\n\nexport default handleFocus(Swatch);","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var AlphaPointer = function AlphaPointer(_ref) {\n var direction = _ref.direction;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '18px',\n height: '18px',\n borderRadius: '50%',\n transform: 'translate(-9px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n },\n 'vertical': {\n picker: {\n transform: 'translate(-3px, -9px)'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default AlphaPointer;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\n\nimport { ColorWrap, Alpha } from '../common';\nimport AlphaPointer from './AlphaPointer';\n\nexport var AlphaPicker = function AlphaPicker(_ref) {\n var rgb = _ref.rgb,\n hsl = _ref.hsl,\n width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n direction = _ref.direction,\n style = _ref.style,\n renderers = _ref.renderers,\n pointer = _ref.pointer,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n position: 'relative',\n width: width,\n height: height\n },\n alpha: {\n radius: '2px',\n style: style\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'alpha-picker ' + className },\n React.createElement(Alpha, _extends({}, styles.alpha, {\n rgb: rgb,\n hsl: hsl,\n pointer: pointer,\n renderers: renderers,\n onChange: onChange,\n direction: direction\n }))\n );\n};\n\nAlphaPicker.defaultProps = {\n width: '316px',\n height: '16px',\n direction: 'horizontal',\n pointer: AlphaPointer\n};\n\nexport default ColorWrap(AlphaPicker);","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nexport default baseMap;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nexport default map;\n","import React from 'react';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\n\nimport { Swatch } from '../common';\n\nexport var BlockSwatches = function BlockSwatches(_ref) {\n var colors = _ref.colors,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var styles = reactCSS({\n 'default': {\n swatches: {\n marginRight: '-10px'\n },\n swatch: {\n width: '22px',\n height: '22px',\n float: 'left',\n marginRight: '10px',\n marginBottom: '10px',\n borderRadius: '4px'\n },\n clear: {\n clear: 'both'\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.swatches },\n map(colors, function (c) {\n return React.createElement(Swatch, {\n key: c,\n color: c,\n style: styles.swatch,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: '0 0 4px ' + c\n }\n });\n }),\n React.createElement('div', { style: styles.clear })\n );\n};\n\nexport default BlockSwatches;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, EditableInput, Checkboard } from '../common';\nimport BlockSwatches from './BlockSwatches';\n\nexport var Block = function Block(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n hex = _ref.hex,\n colors = _ref.colors,\n width = _ref.width,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var transparent = hex === 'transparent';\n var handleChange = function handleChange(hexCode, e) {\n color.isValidHex(hexCode) && onChange({\n hex: hexCode,\n source: 'hex'\n }, e);\n };\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n boxShadow: '0 1px rgba(0,0,0,.1)',\n borderRadius: '6px',\n position: 'relative'\n },\n head: {\n height: '110px',\n background: hex,\n borderRadius: '6px 6px 0 0',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative'\n },\n body: {\n padding: '10px'\n },\n label: {\n fontSize: '18px',\n color: color.getContrastingColor(hex),\n position: 'relative'\n },\n triangle: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 10px 10px 10px',\n borderColor: 'transparent transparent ' + hex + ' transparent',\n position: 'absolute',\n top: '-10px',\n left: '50%',\n marginLeft: '-10px'\n },\n input: {\n width: '100%',\n fontSize: '12px',\n color: '#666',\n border: '0px',\n outline: 'none',\n height: '22px',\n boxShadow: 'inset 0 0 0 1px #ddd',\n borderRadius: '4px',\n padding: '0 7px',\n boxSizing: 'border-box'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n }\n }\n }, passedStyles), { 'hide-triangle': triangle === 'hide' });\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'block-picker ' + className },\n React.createElement('div', { style: styles.triangle }),\n React.createElement(\n 'div',\n { style: styles.head },\n transparent && React.createElement(Checkboard, { borderRadius: '6px 6px 0 0' }),\n React.createElement(\n 'div',\n { style: styles.label },\n hex\n )\n ),\n React.createElement(\n 'div',\n { style: styles.body },\n React.createElement(BlockSwatches, { colors: colors, onClick: handleChange, onSwatchHover: onSwatchHover }),\n React.createElement(EditableInput, {\n style: { input: styles.input },\n value: hex,\n onChange: handleChange\n })\n )\n );\n};\n\nBlock.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n colors: PropTypes.arrayOf(PropTypes.string),\n triangle: PropTypes.oneOf(['top', 'hide']),\n styles: PropTypes.object\n};\n\nBlock.defaultProps = {\n width: 170,\n colors: ['#D9E3F0', '#F47373', '#697689', '#37D67A', '#2CCCE4', '#555555', '#dce775', '#ff8a65', '#ba68c8'],\n triangle: 'top',\n styles: {}\n};\n\nexport default ColorWrap(Block);","export var red = {\"50\":\"#ffebee\",\"100\":\"#ffcdd2\",\"200\":\"#ef9a9a\",\"300\":\"#e57373\",\"400\":\"#ef5350\",\"500\":\"#f44336\",\"600\":\"#e53935\",\"700\":\"#d32f2f\",\"800\":\"#c62828\",\"900\":\"#b71c1c\",\"a100\":\"#ff8a80\",\"a200\":\"#ff5252\",\"a400\":\"#ff1744\",\"a700\":\"#d50000\"};\nexport var pink = {\"50\":\"#fce4ec\",\"100\":\"#f8bbd0\",\"200\":\"#f48fb1\",\"300\":\"#f06292\",\"400\":\"#ec407a\",\"500\":\"#e91e63\",\"600\":\"#d81b60\",\"700\":\"#c2185b\",\"800\":\"#ad1457\",\"900\":\"#880e4f\",\"a100\":\"#ff80ab\",\"a200\":\"#ff4081\",\"a400\":\"#f50057\",\"a700\":\"#c51162\"};\nexport var purple = {\"50\":\"#f3e5f5\",\"100\":\"#e1bee7\",\"200\":\"#ce93d8\",\"300\":\"#ba68c8\",\"400\":\"#ab47bc\",\"500\":\"#9c27b0\",\"600\":\"#8e24aa\",\"700\":\"#7b1fa2\",\"800\":\"#6a1b9a\",\"900\":\"#4a148c\",\"a100\":\"#ea80fc\",\"a200\":\"#e040fb\",\"a400\":\"#d500f9\",\"a700\":\"#aa00ff\"};\nexport var deepPurple = {\"50\":\"#ede7f6\",\"100\":\"#d1c4e9\",\"200\":\"#b39ddb\",\"300\":\"#9575cd\",\"400\":\"#7e57c2\",\"500\":\"#673ab7\",\"600\":\"#5e35b1\",\"700\":\"#512da8\",\"800\":\"#4527a0\",\"900\":\"#311b92\",\"a100\":\"#b388ff\",\"a200\":\"#7c4dff\",\"a400\":\"#651fff\",\"a700\":\"#6200ea\"};\nexport var indigo = {\"50\":\"#e8eaf6\",\"100\":\"#c5cae9\",\"200\":\"#9fa8da\",\"300\":\"#7986cb\",\"400\":\"#5c6bc0\",\"500\":\"#3f51b5\",\"600\":\"#3949ab\",\"700\":\"#303f9f\",\"800\":\"#283593\",\"900\":\"#1a237e\",\"a100\":\"#8c9eff\",\"a200\":\"#536dfe\",\"a400\":\"#3d5afe\",\"a700\":\"#304ffe\"};\nexport var blue = {\"50\":\"#e3f2fd\",\"100\":\"#bbdefb\",\"200\":\"#90caf9\",\"300\":\"#64b5f6\",\"400\":\"#42a5f5\",\"500\":\"#2196f3\",\"600\":\"#1e88e5\",\"700\":\"#1976d2\",\"800\":\"#1565c0\",\"900\":\"#0d47a1\",\"a100\":\"#82b1ff\",\"a200\":\"#448aff\",\"a400\":\"#2979ff\",\"a700\":\"#2962ff\"};\nexport var lightBlue = {\"50\":\"#e1f5fe\",\"100\":\"#b3e5fc\",\"200\":\"#81d4fa\",\"300\":\"#4fc3f7\",\"400\":\"#29b6f6\",\"500\":\"#03a9f4\",\"600\":\"#039be5\",\"700\":\"#0288d1\",\"800\":\"#0277bd\",\"900\":\"#01579b\",\"a100\":\"#80d8ff\",\"a200\":\"#40c4ff\",\"a400\":\"#00b0ff\",\"a700\":\"#0091ea\"};\nexport var cyan = {\"50\":\"#e0f7fa\",\"100\":\"#b2ebf2\",\"200\":\"#80deea\",\"300\":\"#4dd0e1\",\"400\":\"#26c6da\",\"500\":\"#00bcd4\",\"600\":\"#00acc1\",\"700\":\"#0097a7\",\"800\":\"#00838f\",\"900\":\"#006064\",\"a100\":\"#84ffff\",\"a200\":\"#18ffff\",\"a400\":\"#00e5ff\",\"a700\":\"#00b8d4\"};\nexport var teal = {\"50\":\"#e0f2f1\",\"100\":\"#b2dfdb\",\"200\":\"#80cbc4\",\"300\":\"#4db6ac\",\"400\":\"#26a69a\",\"500\":\"#009688\",\"600\":\"#00897b\",\"700\":\"#00796b\",\"800\":\"#00695c\",\"900\":\"#004d40\",\"a100\":\"#a7ffeb\",\"a200\":\"#64ffda\",\"a400\":\"#1de9b6\",\"a700\":\"#00bfa5\"};\nexport var green = {\"50\":\"#e8f5e9\",\"100\":\"#c8e6c9\",\"200\":\"#a5d6a7\",\"300\":\"#81c784\",\"400\":\"#66bb6a\",\"500\":\"#4caf50\",\"600\":\"#43a047\",\"700\":\"#388e3c\",\"800\":\"#2e7d32\",\"900\":\"#1b5e20\",\"a100\":\"#b9f6ca\",\"a200\":\"#69f0ae\",\"a400\":\"#00e676\",\"a700\":\"#00c853\"};\nexport var lightGreen = {\"50\":\"#f1f8e9\",\"100\":\"#dcedc8\",\"200\":\"#c5e1a5\",\"300\":\"#aed581\",\"400\":\"#9ccc65\",\"500\":\"#8bc34a\",\"600\":\"#7cb342\",\"700\":\"#689f38\",\"800\":\"#558b2f\",\"900\":\"#33691e\",\"a100\":\"#ccff90\",\"a200\":\"#b2ff59\",\"a400\":\"#76ff03\",\"a700\":\"#64dd17\"};\nexport var lime = {\"50\":\"#f9fbe7\",\"100\":\"#f0f4c3\",\"200\":\"#e6ee9c\",\"300\":\"#dce775\",\"400\":\"#d4e157\",\"500\":\"#cddc39\",\"600\":\"#c0ca33\",\"700\":\"#afb42b\",\"800\":\"#9e9d24\",\"900\":\"#827717\",\"a100\":\"#f4ff81\",\"a200\":\"#eeff41\",\"a400\":\"#c6ff00\",\"a700\":\"#aeea00\"};\nexport var yellow = {\"50\":\"#fffde7\",\"100\":\"#fff9c4\",\"200\":\"#fff59d\",\"300\":\"#fff176\",\"400\":\"#ffee58\",\"500\":\"#ffeb3b\",\"600\":\"#fdd835\",\"700\":\"#fbc02d\",\"800\":\"#f9a825\",\"900\":\"#f57f17\",\"a100\":\"#ffff8d\",\"a200\":\"#ffff00\",\"a400\":\"#ffea00\",\"a700\":\"#ffd600\"};\nexport var amber = {\"50\":\"#fff8e1\",\"100\":\"#ffecb3\",\"200\":\"#ffe082\",\"300\":\"#ffd54f\",\"400\":\"#ffca28\",\"500\":\"#ffc107\",\"600\":\"#ffb300\",\"700\":\"#ffa000\",\"800\":\"#ff8f00\",\"900\":\"#ff6f00\",\"a100\":\"#ffe57f\",\"a200\":\"#ffd740\",\"a400\":\"#ffc400\",\"a700\":\"#ffab00\"};\nexport var orange = {\"50\":\"#fff3e0\",\"100\":\"#ffe0b2\",\"200\":\"#ffcc80\",\"300\":\"#ffb74d\",\"400\":\"#ffa726\",\"500\":\"#ff9800\",\"600\":\"#fb8c00\",\"700\":\"#f57c00\",\"800\":\"#ef6c00\",\"900\":\"#e65100\",\"a100\":\"#ffd180\",\"a200\":\"#ffab40\",\"a400\":\"#ff9100\",\"a700\":\"#ff6d00\"};\nexport var deepOrange = {\"50\":\"#fbe9e7\",\"100\":\"#ffccbc\",\"200\":\"#ffab91\",\"300\":\"#ff8a65\",\"400\":\"#ff7043\",\"500\":\"#ff5722\",\"600\":\"#f4511e\",\"700\":\"#e64a19\",\"800\":\"#d84315\",\"900\":\"#bf360c\",\"a100\":\"#ff9e80\",\"a200\":\"#ff6e40\",\"a400\":\"#ff3d00\",\"a700\":\"#dd2c00\"};\nexport var brown = {\"50\":\"#efebe9\",\"100\":\"#d7ccc8\",\"200\":\"#bcaaa4\",\"300\":\"#a1887f\",\"400\":\"#8d6e63\",\"500\":\"#795548\",\"600\":\"#6d4c41\",\"700\":\"#5d4037\",\"800\":\"#4e342e\",\"900\":\"#3e2723\"};\nexport var grey = {\"50\":\"#fafafa\",\"100\":\"#f5f5f5\",\"200\":\"#eeeeee\",\"300\":\"#e0e0e0\",\"400\":\"#bdbdbd\",\"500\":\"#9e9e9e\",\"600\":\"#757575\",\"700\":\"#616161\",\"800\":\"#424242\",\"900\":\"#212121\"};\nexport var blueGrey = {\"50\":\"#eceff1\",\"100\":\"#cfd8dc\",\"200\":\"#b0bec5\",\"300\":\"#90a4ae\",\"400\":\"#78909c\",\"500\":\"#607d8b\",\"600\":\"#546e7a\",\"700\":\"#455a64\",\"800\":\"#37474f\",\"900\":\"#263238\"};\nexport var darkText = {\"primary\":\"rgba(0, 0, 0, 0.87)\",\"secondary\":\"rgba(0, 0, 0, 0.54)\",\"disabled\":\"rgba(0, 0, 0, 0.38)\",\"dividers\":\"rgba(0, 0, 0, 0.12)\"};\nexport var lightText = {\"primary\":\"rgba(255, 255, 255, 1)\",\"secondary\":\"rgba(255, 255, 255, 0.7)\",\"disabled\":\"rgba(255, 255, 255, 0.5)\",\"dividers\":\"rgba(255, 255, 255, 0.12)\"};\nexport var darkIcons = {\"active\":\"rgba(0, 0, 0, 0.54)\",\"inactive\":\"rgba(0, 0, 0, 0.38)\"};\nexport var lightIcons = {\"active\":\"rgba(255, 255, 255, 1)\",\"inactive\":\"rgba(255, 255, 255, 0.5)\"};\nexport var white = \"#ffffff\";\nexport var black = \"#000000\";\n\nexport default {\n red: red,\n pink: pink,\n purple: purple,\n deepPurple: deepPurple,\n indigo: indigo,\n blue: blue,\n lightBlue: lightBlue,\n cyan: cyan,\n teal: teal,\n green: green,\n lightGreen: lightGreen,\n lime: lime,\n yellow: yellow,\n amber: amber,\n orange: orange,\n deepOrange: deepOrange,\n brown: brown,\n grey: grey,\n blueGrey: blueGrey,\n darkText: darkText,\n lightText: lightText,\n darkIcons: darkIcons,\n lightIcons: lightIcons,\n white: white,\n black: black\n};\n","import React from 'react';\nimport reactCSS, { handleHover } from 'reactcss';\n\nimport { Swatch } from '../common';\n\nexport var CircleSwatch = function CircleSwatch(_ref) {\n var color = _ref.color,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover,\n hover = _ref.hover,\n active = _ref.active,\n circleSize = _ref.circleSize,\n circleSpacing = _ref.circleSpacing;\n\n var styles = reactCSS({\n 'default': {\n swatch: {\n width: circleSize,\n height: circleSize,\n marginRight: circleSpacing,\n marginBottom: circleSpacing,\n transform: 'scale(1)',\n transition: '100ms transform ease'\n },\n Swatch: {\n borderRadius: '50%',\n background: 'transparent',\n boxShadow: 'inset 0 0 0 ' + (circleSize / 2 + 1) + 'px ' + color,\n transition: '100ms box-shadow ease'\n }\n },\n 'hover': {\n swatch: {\n transform: 'scale(1.2)'\n }\n },\n 'active': {\n Swatch: {\n boxShadow: 'inset 0 0 0 3px ' + color\n }\n }\n }, { hover: hover, active: active });\n\n return React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(Swatch, {\n style: styles.Swatch,\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: styles.Swatch.boxShadow + ', 0 0 5px ' + color }\n })\n );\n};\n\nCircleSwatch.defaultProps = {\n circleSize: 28,\n circleSpacing: 14\n};\n\nexport default handleHover(CircleSwatch);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as material from 'material-colors';\n\nimport { ColorWrap } from '../common';\nimport CircleSwatch from './CircleSwatch';\n\nexport var Circle = function Circle(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n circleSize = _ref.circleSize,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n circleSpacing = _ref.circleSpacing,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n display: 'flex',\n flexWrap: 'wrap',\n marginRight: -circleSpacing,\n marginBottom: -circleSpacing\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(hexCode, e) {\n return onChange({ hex: hexCode, source: 'hex' }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'circle-picker ' + className },\n map(colors, function (c) {\n return React.createElement(CircleSwatch, {\n key: c,\n color: c,\n onClick: handleChange,\n onSwatchHover: onSwatchHover,\n active: hex === c.toLowerCase(),\n circleSize: circleSize,\n circleSpacing: circleSpacing\n });\n })\n );\n};\n\nCircle.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n circleSize: PropTypes.number,\n circleSpacing: PropTypes.number,\n styles: PropTypes.object\n};\n\nCircle.defaultProps = {\n width: 252,\n circleSize: 28,\n circleSpacing: 14,\n colors: [material.red['500'], material.pink['500'], material.purple['500'], material.deepPurple['500'], material.indigo['500'], material.blue['500'], material.lightBlue['500'], material.cyan['500'], material.teal['500'], material.green['500'], material.lightGreen['500'], material.lime['500'], material.yellow['500'], material.amber['500'], material.orange['500'], material.deepOrange['500'], material.brown['500'], material.blueGrey['500']],\n styles: {}\n};\n\nexport default ColorWrap(Circle);","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint-disable react/no-did-mount-set-state, no-param-reassign */\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\nimport isUndefined from 'lodash-es/isUndefined';\n\nimport { EditableInput } from '../common';\nimport UnfoldMoreHorizontalIcon from '@icons/material/UnfoldMoreHorizontalIcon';\n\nexport var ChromeFields = function (_React$Component) {\n _inherits(ChromeFields, _React$Component);\n\n function ChromeFields(props) {\n _classCallCheck(this, ChromeFields);\n\n var _this = _possibleConstructorReturn(this, (ChromeFields.__proto__ || Object.getPrototypeOf(ChromeFields)).call(this));\n\n _this.toggleViews = function () {\n if (_this.state.view === 'hex') {\n _this.setState({ view: 'rgb' });\n } else if (_this.state.view === 'rgb') {\n _this.setState({ view: 'hsl' });\n } else if (_this.state.view === 'hsl') {\n if (_this.props.hsl.a === 1) {\n _this.setState({ view: 'hex' });\n } else {\n _this.setState({ view: 'rgb' });\n }\n }\n };\n\n _this.handleChange = function (data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && _this.props.onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n _this.props.onChange({\n r: data.r || _this.props.rgb.r,\n g: data.g || _this.props.rgb.g,\n b: data.b || _this.props.rgb.b,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 1) {\n data.a = 1;\n }\n\n _this.props.onChange({\n h: _this.props.hsl.h,\n s: _this.props.hsl.s,\n l: _this.props.hsl.l,\n a: Math.round(data.a * 100) / 100,\n source: 'rgb'\n }, e);\n } else if (data.h || data.s || data.l) {\n // Remove any occurances of '%'.\n if (typeof data.s === 'string' && data.s.includes('%')) {\n data.s = data.s.replace('%', '');\n }\n if (typeof data.l === 'string' && data.l.includes('%')) {\n data.l = data.l.replace('%', '');\n }\n\n // We store HSL as a unit interval so we need to override the 1 input to 0.01\n if (data.s == 1) {\n data.s = 0.01;\n } else if (data.l == 1) {\n data.l = 0.01;\n }\n\n _this.props.onChange({\n h: data.h || _this.props.hsl.h,\n s: Number(!isUndefined(data.s) ? data.s : _this.props.hsl.s),\n l: Number(!isUndefined(data.l) ? data.l : _this.props.hsl.l),\n source: 'hsl'\n }, e);\n }\n };\n\n _this.showHighlight = function (e) {\n e.currentTarget.style.background = '#eee';\n };\n\n _this.hideHighlight = function (e) {\n e.currentTarget.style.background = 'transparent';\n };\n\n if (props.hsl.a !== 1 && props.view === \"hex\") {\n _this.state = {\n view: \"rgb\"\n };\n } else {\n _this.state = {\n view: props.view\n };\n }\n return _this;\n }\n\n _createClass(ChromeFields, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var styles = reactCSS({\n 'default': {\n wrap: {\n paddingTop: '16px',\n display: 'flex'\n },\n fields: {\n flex: '1',\n display: 'flex',\n marginLeft: '-6px'\n },\n field: {\n paddingLeft: '6px',\n width: '100%'\n },\n alpha: {\n paddingLeft: '6px',\n width: '100%'\n },\n toggle: {\n width: '32px',\n textAlign: 'right',\n position: 'relative'\n },\n icon: {\n marginRight: '-4px',\n marginTop: '12px',\n cursor: 'pointer',\n position: 'relative'\n },\n iconHighlight: {\n position: 'absolute',\n width: '24px',\n height: '28px',\n background: '#eee',\n borderRadius: '4px',\n top: '10px',\n left: '12px',\n display: 'none'\n },\n input: {\n fontSize: '11px',\n color: '#333',\n width: '100%',\n borderRadius: '2px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #dadada',\n height: '21px',\n textAlign: 'center'\n },\n label: {\n textTransform: 'uppercase',\n fontSize: '11px',\n lineHeight: '11px',\n color: '#969696',\n textAlign: 'center',\n display: 'block',\n marginTop: '12px'\n },\n svg: {\n fill: '#333',\n width: '24px',\n height: '24px',\n border: '1px transparent solid',\n borderRadius: '5px'\n }\n },\n 'disableAlpha': {\n alpha: {\n display: 'none'\n }\n }\n }, this.props, this.state);\n\n var fields = void 0;\n if (this.state.view === 'hex') {\n fields = React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex', value: this.props.hex,\n onChange: this.handleChange\n })\n )\n );\n } else if (this.state.view === 'rgb') {\n fields = React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'r',\n value: this.props.rgb.r,\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'g',\n value: this.props.rgb.g,\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'b',\n value: this.props.rgb.b,\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: this.props.rgb.a,\n arrowOffset: 0.01,\n onChange: this.handleChange\n })\n )\n );\n } else if (this.state.view === 'hsl') {\n fields = React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'h',\n value: Math.round(this.props.hsl.h),\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 's',\n value: Math.round(this.props.hsl.s * 100) + '%',\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'l',\n value: Math.round(this.props.hsl.l * 100) + '%',\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: this.props.hsl.a,\n arrowOffset: 0.01,\n onChange: this.handleChange\n })\n )\n );\n }\n\n return React.createElement(\n 'div',\n { style: styles.wrap, className: 'flexbox-fix' },\n fields,\n React.createElement(\n 'div',\n { style: styles.toggle },\n React.createElement(\n 'div',\n { style: styles.icon, onClick: this.toggleViews, ref: function ref(icon) {\n return _this2.icon = icon;\n } },\n React.createElement(UnfoldMoreHorizontalIcon, {\n style: styles.svg,\n onMouseOver: this.showHighlight,\n onMouseEnter: this.showHighlight,\n onMouseOut: this.hideHighlight\n })\n )\n )\n );\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, state) {\n if (nextProps.hsl.a !== 1 && state.view === 'hex') {\n return { view: 'rgb' };\n }\n return null;\n }\n }]);\n\n return ChromeFields;\n}(React.Component);\n\nChromeFields.defaultProps = {\n view: \"hex\"\n};\n\nexport default ChromeFields;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var ChromePointer = function ChromePointer() {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n transform: 'translate(-6px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default ChromePointer;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var ChromePointerCircle = function ChromePointerCircle() {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n boxShadow: 'inset 0 0 0 1px #fff',\n transform: 'translate(-6px, -6px)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default ChromePointerCircle;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue, Alpha, Checkboard } from '../common';\nimport ChromeFields from './ChromeFields';\nimport ChromePointer from './ChromePointer';\nimport ChromePointerCircle from './ChromePointerCircle';\n\nexport var Chrome = function Chrome(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n disableAlpha = _ref.disableAlpha,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hsv = _ref.hsv,\n hex = _ref.hex,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className,\n defaultView = _ref.defaultView;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n width: width,\n background: '#fff',\n borderRadius: '2px',\n boxShadow: '0 0 2px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.3)',\n boxSizing: 'initial',\n fontFamily: 'Menlo'\n },\n saturation: {\n width: '100%',\n paddingBottom: '55%',\n position: 'relative',\n borderRadius: '2px 2px 0 0',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '2px 2px 0 0'\n },\n body: {\n padding: '16px 16px 12px'\n },\n controls: {\n display: 'flex'\n },\n color: {\n width: '32px'\n },\n swatch: {\n marginTop: '6px',\n width: '16px',\n height: '16px',\n borderRadius: '8px',\n position: 'relative',\n overflow: 'hidden'\n },\n active: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '8px',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.1)',\n background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + rgb.a + ')',\n zIndex: '2'\n },\n toggles: {\n flex: '1'\n },\n hue: {\n height: '10px',\n position: 'relative',\n marginBottom: '8px'\n },\n Hue: {\n radius: '2px'\n },\n alpha: {\n height: '10px',\n position: 'relative'\n },\n Alpha: {\n radius: '2px'\n }\n },\n 'disableAlpha': {\n color: {\n width: '22px'\n },\n alpha: {\n display: 'none'\n },\n hue: {\n marginBottom: '0px'\n },\n swatch: {\n width: '10px',\n height: '10px',\n marginTop: '0px'\n }\n }\n }, passedStyles), { disableAlpha: disableAlpha });\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'chrome-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n pointer: ChromePointerCircle,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.body },\n React.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.color },\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement('div', { style: styles.active }),\n React.createElement(Checkboard, { renderers: renderers })\n )\n ),\n React.createElement(\n 'div',\n { style: styles.toggles },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n pointer: ChromePointer,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n pointer: ChromePointer,\n renderers: renderers,\n onChange: onChange\n })\n )\n )\n ),\n React.createElement(ChromeFields, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n view: defaultView,\n onChange: onChange,\n disableAlpha: disableAlpha\n })\n )\n );\n};\n\nChrome.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n disableAlpha: PropTypes.bool,\n styles: PropTypes.object,\n defaultView: PropTypes.oneOf([\"hex\", \"rgb\", \"hsl\"])\n};\n\nChrome.defaultProps = {\n width: 225,\n disableAlpha: false,\n styles: {}\n};\n\nexport default ColorWrap(Chrome);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as colorUtils from '../../helpers/color';\n\nimport { Swatch } from '../common';\n\nexport var CompactColor = function CompactColor(_ref) {\n var color = _ref.color,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n color: {\n background: color,\n width: '15px',\n height: '15px',\n float: 'left',\n marginRight: '5px',\n marginBottom: '5px',\n position: 'relative',\n cursor: 'pointer'\n },\n dot: {\n absolute: '5px 5px 5px 5px',\n background: colorUtils.getContrastingColor(color),\n borderRadius: '50%',\n opacity: '0'\n }\n },\n 'active': {\n dot: {\n opacity: '1'\n }\n },\n 'color-#FFFFFF': {\n color: {\n boxShadow: 'inset 0 0 0 1px #ddd'\n },\n dot: {\n background: '#000'\n }\n },\n 'transparent': {\n dot: {\n background: '#000'\n }\n }\n }, { active: active, 'color-#FFFFFF': color === '#FFFFFF', 'transparent': color === 'transparent' });\n\n return React.createElement(\n Swatch,\n {\n style: styles.color,\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: '0 0 4px ' + color }\n },\n React.createElement('div', { style: styles.dot })\n );\n};\n\nexport default CompactColor;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nimport { EditableInput } from '../common';\n\nexport var CompactFields = function CompactFields(_ref) {\n var hex = _ref.hex,\n rgb = _ref.rgb,\n onChange = _ref.onChange;\n\n var styles = reactCSS({\n 'default': {\n fields: {\n display: 'flex',\n paddingBottom: '6px',\n paddingRight: '5px',\n position: 'relative'\n },\n active: {\n position: 'absolute',\n top: '6px',\n left: '5px',\n height: '9px',\n width: '9px',\n background: hex\n },\n HEXwrap: {\n flex: '6',\n position: 'relative'\n },\n HEXinput: {\n width: '80%',\n padding: '0px',\n paddingLeft: '20%',\n border: 'none',\n outline: 'none',\n background: 'none',\n fontSize: '12px',\n color: '#333',\n height: '16px'\n },\n HEXlabel: {\n display: 'none'\n },\n RGBwrap: {\n flex: '3',\n position: 'relative'\n },\n RGBinput: {\n width: '70%',\n padding: '0px',\n paddingLeft: '30%',\n border: 'none',\n outline: 'none',\n background: 'none',\n fontSize: '12px',\n color: '#333',\n height: '16px'\n },\n RGBlabel: {\n position: 'absolute',\n top: '3px',\n left: '0px',\n lineHeight: '16px',\n textTransform: 'uppercase',\n fontSize: '12px',\n color: '#999'\n }\n }\n });\n\n var handleChange = function handleChange(data, e) {\n if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n } else {\n onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n }\n };\n\n return React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement('div', { style: styles.active }),\n React.createElement(EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: 'hex',\n value: hex,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r',\n value: rgb.r,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n })\n );\n};\n\nexport default CompactFields;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, Raised } from '../common';\nimport CompactColor from './CompactColor';\nimport CompactFields from './CompactFields';\n\nexport var Compact = function Compact(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n rgb = _ref.rgb,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n Compact: {\n background: '#f6f6f6',\n radius: '4px'\n },\n compact: {\n paddingTop: '5px',\n paddingLeft: '5px',\n boxSizing: 'initial',\n width: '240px'\n },\n clear: {\n clear: 'both'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else {\n onChange(data, e);\n }\n };\n\n return React.createElement(\n Raised,\n { style: styles.Compact, styles: passedStyles },\n React.createElement(\n 'div',\n { style: styles.compact, className: 'compact-picker ' + className },\n React.createElement(\n 'div',\n null,\n map(colors, function (c) {\n return React.createElement(CompactColor, {\n key: c,\n color: c,\n active: c.toLowerCase() === hex,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n }),\n React.createElement('div', { style: styles.clear })\n ),\n React.createElement(CompactFields, { hex: hex, rgb: rgb, onChange: handleChange })\n )\n );\n};\n\nCompact.propTypes = {\n colors: PropTypes.arrayOf(PropTypes.string),\n styles: PropTypes.object\n};\n\nCompact.defaultProps = {\n colors: ['#4D4D4D', '#999999', '#FFFFFF', '#F44E3B', '#FE9200', '#FCDC00', '#DBDF00', '#A4DD00', '#68CCCA', '#73D8FF', '#AEA1FF', '#FDA1FF', '#333333', '#808080', '#cccccc', '#D33115', '#E27300', '#FCC400', '#B0BC00', '#68BC00', '#16A5A5', '#009CE0', '#7B64FF', '#FA28FF', '#000000', '#666666', '#B3B3B3', '#9F0500', '#C45100', '#FB9E00', '#808900', '#194D33', '#0C797D', '#0062B1', '#653294', '#AB149E'],\n styles: {}\n};\n\nexport default ColorWrap(Compact);","import React from 'react';\nimport reactCSS, { handleHover } from 'reactcss';\n\nimport { Swatch } from '../common';\n\nexport var GithubSwatch = function GithubSwatch(_ref) {\n var hover = _ref.hover,\n color = _ref.color,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var hoverSwatch = {\n position: 'relative',\n zIndex: '2',\n outline: '2px solid #fff',\n boxShadow: '0 0 5px 2px rgba(0,0,0,0.25)'\n };\n\n var styles = reactCSS({\n 'default': {\n swatch: {\n width: '25px',\n height: '25px',\n fontSize: '0'\n }\n },\n 'hover': {\n swatch: hoverSwatch\n }\n }, { hover: hover });\n\n return React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(Swatch, {\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: hoverSwatch\n })\n );\n};\n\nexport default handleHover(GithubSwatch);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap } from '../common';\nimport GithubSwatch from './GithubSwatch';\n\nexport var Github = function Github(_ref) {\n var width = _ref.width,\n colors = _ref.colors,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n border: '1px solid rgba(0,0,0,0.2)',\n boxShadow: '0 3px 12px rgba(0,0,0,0.15)',\n borderRadius: '4px',\n position: 'relative',\n padding: '5px',\n display: 'flex',\n flexWrap: 'wrap'\n },\n triangle: {\n position: 'absolute',\n border: '7px solid transparent',\n borderBottomColor: '#fff'\n },\n triangleShadow: {\n position: 'absolute',\n border: '8px solid transparent',\n borderBottomColor: 'rgba(0,0,0,0.15)'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n },\n triangleShadow: {\n display: 'none'\n }\n },\n 'top-left-triangle': {\n triangle: {\n top: '-14px',\n left: '10px'\n },\n triangleShadow: {\n top: '-16px',\n left: '9px'\n }\n },\n 'top-right-triangle': {\n triangle: {\n top: '-14px',\n right: '10px'\n },\n triangleShadow: {\n top: '-16px',\n right: '9px'\n }\n },\n 'bottom-left-triangle': {\n triangle: {\n top: '35px',\n left: '10px',\n transform: 'rotate(180deg)'\n },\n triangleShadow: {\n top: '37px',\n left: '9px',\n transform: 'rotate(180deg)'\n }\n },\n 'bottom-right-triangle': {\n triangle: {\n top: '35px',\n right: '10px',\n transform: 'rotate(180deg)'\n },\n triangleShadow: {\n top: '37px',\n right: '9px',\n transform: 'rotate(180deg)'\n }\n }\n }, passedStyles), {\n 'hide-triangle': triangle === 'hide',\n 'top-left-triangle': triangle === 'top-left',\n 'top-right-triangle': triangle === 'top-right',\n 'bottom-left-triangle': triangle === 'bottom-left',\n 'bottom-right-triangle': triangle === 'bottom-right'\n });\n\n var handleChange = function handleChange(hex, e) {\n return onChange({ hex: hex, source: 'hex' }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'github-picker ' + className },\n React.createElement('div', { style: styles.triangleShadow }),\n React.createElement('div', { style: styles.triangle }),\n map(colors, function (c) {\n return React.createElement(GithubSwatch, {\n color: c,\n key: c,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n })\n );\n};\n\nGithub.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n colors: PropTypes.arrayOf(PropTypes.string),\n triangle: PropTypes.oneOf(['hide', 'top-left', 'top-right', 'bottom-left', 'bottom-right']),\n styles: PropTypes.object\n};\n\nGithub.defaultProps = {\n width: 200,\n colors: ['#B80000', '#DB3E00', '#FCCB00', '#008B02', '#006B76', '#1273DE', '#004DCF', '#5300EB', '#EB9694', '#FAD0C3', '#FEF3BD', '#C1E1C5', '#BEDADC', '#C4DEF6', '#BED3F3', '#D4C4FB'],\n triangle: 'top-left',\n styles: {}\n};\n\nexport default ColorWrap(Github);","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var SliderPointer = function SliderPointer(_ref) {\n var direction = _ref.direction;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '18px',\n height: '18px',\n borderRadius: '50%',\n transform: 'translate(-9px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n },\n 'vertical': {\n picker: {\n transform: 'translate(-3px, -9px)'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default SliderPointer;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Hue } from '../common';\nimport HuePointer from './HuePointer';\n\nexport var HuePicker = function HuePicker(_ref) {\n var width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n hsl = _ref.hsl,\n direction = _ref.direction,\n pointer = _ref.pointer,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n position: 'relative',\n width: width,\n height: height\n },\n hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n\n // Overwrite to provide pure hue color\n var handleChange = function handleChange(data) {\n return onChange({ a: 1, h: data.h, l: 0.5, s: 1 });\n };\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'hue-picker ' + className },\n React.createElement(Hue, _extends({}, styles.hue, {\n hsl: hsl,\n pointer: pointer,\n onChange: handleChange,\n direction: direction\n }))\n );\n};\n\nHuePicker.propTypes = {\n styles: PropTypes.object\n};\nHuePicker.defaultProps = {\n width: '316px',\n height: '16px',\n direction: 'horizontal',\n pointer: HuePointer,\n styles: {}\n};\n\nexport default ColorWrap(HuePicker);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, EditableInput, Raised } from '../common';\n\nexport var Material = function Material(_ref) {\n var onChange = _ref.onChange,\n hex = _ref.hex,\n rgb = _ref.rgb,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n material: {\n width: '98px',\n height: '98px',\n padding: '16px',\n fontFamily: 'Roboto'\n },\n HEXwrap: {\n position: 'relative'\n },\n HEXinput: {\n width: '100%',\n marginTop: '12px',\n fontSize: '15px',\n color: '#333',\n padding: '0px',\n border: '0px',\n borderBottom: '2px solid ' + hex,\n outline: 'none',\n height: '30px'\n },\n HEXlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n fontSize: '11px',\n color: '#999999',\n textTransform: 'capitalize'\n },\n Hex: {\n style: {}\n },\n RGBwrap: {\n position: 'relative'\n },\n RGBinput: {\n width: '100%',\n marginTop: '12px',\n fontSize: '15px',\n color: '#333',\n padding: '0px',\n border: '0px',\n borderBottom: '1px solid #eee',\n outline: 'none',\n height: '30px'\n },\n RGBlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n fontSize: '11px',\n color: '#999999',\n textTransform: 'capitalize'\n },\n split: {\n display: 'flex',\n marginRight: '-10px',\n paddingTop: '11px'\n },\n third: {\n flex: '1',\n paddingRight: '10px'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n }\n };\n\n return React.createElement(\n Raised,\n { styles: passedStyles },\n React.createElement(\n 'div',\n { style: styles.material, className: 'material-picker ' + className },\n React.createElement(EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: 'hex',\n value: hex,\n onChange: handleChange\n }),\n React.createElement(\n 'div',\n { style: styles.split, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.third },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r', value: rgb.r,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.third },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.third },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n })\n )\n )\n )\n );\n};\n\nexport default ColorWrap(Material);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\n\nimport { EditableInput } from '../common';\n\nexport var PhotoshopPicker = function PhotoshopPicker(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsv = _ref.hsv,\n hex = _ref.hex;\n\n var styles = reactCSS({\n 'default': {\n fields: {\n paddingTop: '5px',\n paddingBottom: '9px',\n width: '80px',\n position: 'relative'\n },\n divider: {\n height: '5px'\n },\n RGBwrap: {\n position: 'relative'\n },\n RGBinput: {\n marginLeft: '40%',\n width: '40%',\n height: '18px',\n border: '1px solid #888888',\n boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC',\n marginBottom: '5px',\n fontSize: '13px',\n paddingLeft: '3px',\n marginRight: '10px'\n },\n RGBlabel: {\n left: '0px',\n top: '0px',\n width: '34px',\n textTransform: 'uppercase',\n fontSize: '13px',\n height: '18px',\n lineHeight: '22px',\n position: 'absolute'\n },\n HEXwrap: {\n position: 'relative'\n },\n HEXinput: {\n marginLeft: '20%',\n width: '80%',\n height: '18px',\n border: '1px solid #888888',\n boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC',\n marginBottom: '6px',\n fontSize: '13px',\n paddingLeft: '3px'\n },\n HEXlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n width: '14px',\n textTransform: 'uppercase',\n fontSize: '13px',\n height: '18px',\n lineHeight: '22px'\n },\n fieldSymbols: {\n position: 'absolute',\n top: '5px',\n right: '-7px',\n fontSize: '13px'\n },\n symbol: {\n height: '20px',\n lineHeight: '22px',\n paddingBottom: '7px'\n }\n }\n });\n\n var handleChange = function handleChange(data, e) {\n if (data['#']) {\n color.isValidHex(data['#']) && onChange({\n hex: data['#'],\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n } else if (data.h || data.s || data.v) {\n onChange({\n h: data.h || hsv.h,\n s: data.s || hsv.s,\n v: data.v || hsv.v,\n source: 'hsv'\n }, e);\n }\n };\n\n return React.createElement(\n 'div',\n { style: styles.fields },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'h',\n value: Math.round(hsv.h),\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 's',\n value: Math.round(hsv.s * 100),\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'v',\n value: Math.round(hsv.v * 100),\n onChange: handleChange\n }),\n React.createElement('div', { style: styles.divider }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r',\n value: rgb.r,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n }),\n React.createElement('div', { style: styles.divider }),\n React.createElement(EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: '#',\n value: hex.replace('#', ''),\n onChange: handleChange\n }),\n React.createElement(\n 'div',\n { style: styles.fieldSymbols },\n React.createElement(\n 'div',\n { style: styles.symbol },\n '\\xB0'\n ),\n React.createElement(\n 'div',\n { style: styles.symbol },\n '%'\n ),\n React.createElement(\n 'div',\n { style: styles.symbol },\n '%'\n )\n )\n );\n};\n\nexport default PhotoshopPicker;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopPointerCircle = function PhotoshopPointerCircle(_ref) {\n var hsl = _ref.hsl;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n boxShadow: 'inset 0 0 0 1px #fff',\n transform: 'translate(-6px, -6px)'\n }\n },\n 'black-outline': {\n picker: {\n boxShadow: 'inset 0 0 0 1px #000'\n }\n }\n }, { 'black-outline': hsl.l > 0.5 });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default PhotoshopPointerCircle;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopPointerCircle = function PhotoshopPointerCircle() {\n var styles = reactCSS({\n 'default': {\n triangle: {\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderWidth: '4px 0 4px 6px',\n borderColor: 'transparent transparent transparent #fff',\n position: 'absolute',\n top: '1px',\n left: '1px'\n },\n triangleBorder: {\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderWidth: '5px 0 5px 8px',\n borderColor: 'transparent transparent transparent #555'\n },\n\n left: {\n Extend: 'triangleBorder',\n transform: 'translate(-13px, -4px)'\n },\n leftInside: {\n Extend: 'triangle',\n transform: 'translate(-8px, -5px)'\n },\n\n right: {\n Extend: 'triangleBorder',\n transform: 'translate(20px, -14px) rotate(180deg)'\n },\n rightInside: {\n Extend: 'triangle',\n transform: 'translate(-8px, -5px)'\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.pointer },\n React.createElement(\n 'div',\n { style: styles.left },\n React.createElement('div', { style: styles.leftInside })\n ),\n React.createElement(\n 'div',\n { style: styles.right },\n React.createElement('div', { style: styles.rightInside })\n )\n );\n};\n\nexport default PhotoshopPointerCircle;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopButton = function PhotoshopButton(_ref) {\n var onClick = _ref.onClick,\n label = _ref.label,\n children = _ref.children,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n button: {\n backgroundImage: 'linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)',\n border: '1px solid #878787',\n borderRadius: '2px',\n height: '20px',\n boxShadow: '0 1px 0 0 #EAEAEA',\n fontSize: '14px',\n color: '#000',\n lineHeight: '20px',\n textAlign: 'center',\n marginBottom: '10px',\n cursor: 'pointer'\n }\n },\n 'active': {\n button: {\n boxShadow: '0 0 0 1px #878787'\n }\n }\n }, { active: active });\n\n return React.createElement(\n 'div',\n { style: styles.button, onClick: onClick },\n label || children\n );\n};\n\nexport default PhotoshopButton;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopPreviews = function PhotoshopPreviews(_ref) {\n var rgb = _ref.rgb,\n currentColor = _ref.currentColor;\n\n var styles = reactCSS({\n 'default': {\n swatches: {\n border: '1px solid #B3B3B3',\n borderBottom: '1px solid #F0F0F0',\n marginBottom: '2px',\n marginTop: '1px'\n },\n new: {\n height: '34px',\n background: 'rgb(' + rgb.r + ',' + rgb.g + ', ' + rgb.b + ')',\n boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000'\n },\n current: {\n height: '34px',\n background: currentColor,\n boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000'\n },\n label: {\n fontSize: '14px',\n color: '#000',\n textAlign: 'center'\n }\n }\n });\n\n return React.createElement(\n 'div',\n null,\n React.createElement(\n 'div',\n { style: styles.label },\n 'new'\n ),\n React.createElement(\n 'div',\n { style: styles.swatches },\n React.createElement('div', { style: styles.new }),\n React.createElement('div', { style: styles.current })\n ),\n React.createElement(\n 'div',\n { style: styles.label },\n 'current'\n )\n );\n};\n\nexport default PhotoshopPreviews;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue } from '../common';\nimport PhotoshopFields from './PhotoshopFields';\nimport PhotoshopPointerCircle from './PhotoshopPointerCircle';\nimport PhotoshopPointer from './PhotoshopPointer';\nimport PhotoshopButton from './PhotoshopButton';\nimport PhotoshopPreviews from './PhotoshopPreviews';\n\nexport var Photoshop = function (_React$Component) {\n _inherits(Photoshop, _React$Component);\n\n function Photoshop(props) {\n _classCallCheck(this, Photoshop);\n\n var _this = _possibleConstructorReturn(this, (Photoshop.__proto__ || Object.getPrototypeOf(Photoshop)).call(this));\n\n _this.state = {\n currentColor: props.hex\n };\n return _this;\n }\n\n _createClass(Photoshop, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n _props$styles = _props.styles,\n passedStyles = _props$styles === undefined ? {} : _props$styles,\n _props$className = _props.className,\n className = _props$className === undefined ? '' : _props$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n background: '#DCDCDC',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.25), 0 8px 16px rgba(0,0,0,.15)',\n boxSizing: 'initial',\n width: '513px'\n },\n head: {\n backgroundImage: 'linear-gradient(-180deg, #F0F0F0 0%, #D4D4D4 100%)',\n borderBottom: '1px solid #B1B1B1',\n boxShadow: 'inset 0 1px 0 0 rgba(255,255,255,.2), inset 0 -1px 0 0 rgba(0,0,0,.02)',\n height: '23px',\n lineHeight: '24px',\n borderRadius: '4px 4px 0 0',\n fontSize: '13px',\n color: '#4D4D4D',\n textAlign: 'center'\n },\n body: {\n padding: '15px 15px 0',\n display: 'flex'\n },\n saturation: {\n width: '256px',\n height: '256px',\n position: 'relative',\n border: '2px solid #B3B3B3',\n borderBottom: '2px solid #F0F0F0',\n overflow: 'hidden'\n },\n hue: {\n position: 'relative',\n height: '256px',\n width: '19px',\n marginLeft: '10px',\n border: '2px solid #B3B3B3',\n borderBottom: '2px solid #F0F0F0'\n },\n controls: {\n width: '180px',\n marginLeft: '10px'\n },\n top: {\n display: 'flex'\n },\n previews: {\n width: '60px'\n },\n actions: {\n flex: '1',\n marginLeft: '20px'\n }\n }\n }, passedStyles));\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'photoshop-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.head },\n this.props.header\n ),\n React.createElement(\n 'div',\n { style: styles.body, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n hsl: this.props.hsl,\n hsv: this.props.hsv,\n pointer: PhotoshopPointerCircle,\n onChange: this.props.onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n direction: 'vertical',\n hsl: this.props.hsl,\n pointer: PhotoshopPointer,\n onChange: this.props.onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.controls },\n React.createElement(\n 'div',\n { style: styles.top, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.previews },\n React.createElement(PhotoshopPreviews, {\n rgb: this.props.rgb,\n currentColor: this.state.currentColor\n })\n ),\n React.createElement(\n 'div',\n { style: styles.actions },\n React.createElement(PhotoshopButton, { label: 'OK', onClick: this.props.onAccept, active: true }),\n React.createElement(PhotoshopButton, { label: 'Cancel', onClick: this.props.onCancel }),\n React.createElement(PhotoshopFields, {\n onChange: this.props.onChange,\n rgb: this.props.rgb,\n hsv: this.props.hsv,\n hex: this.props.hex\n })\n )\n )\n )\n )\n );\n }\n }]);\n\n return Photoshop;\n}(React.Component);\n\nPhotoshop.propTypes = {\n header: PropTypes.string,\n styles: PropTypes.object\n};\n\nPhotoshop.defaultProps = {\n header: 'Color Picker',\n styles: {}\n};\n\nexport default ColorWrap(Photoshop);","/* eslint-disable no-param-reassign */\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\n\nimport { EditableInput } from '../common';\n\nexport var SketchFields = function SketchFields(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hex = _ref.hex,\n disableAlpha = _ref.disableAlpha;\n\n var styles = reactCSS({\n 'default': {\n fields: {\n display: 'flex',\n paddingTop: '4px'\n },\n single: {\n flex: '1',\n paddingLeft: '6px'\n },\n alpha: {\n flex: '1',\n paddingLeft: '6px'\n },\n double: {\n flex: '2'\n },\n input: {\n width: '80%',\n padding: '4px 10% 3px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #ccc',\n fontSize: '11px'\n },\n label: {\n display: 'block',\n textAlign: 'center',\n fontSize: '11px',\n color: '#222',\n paddingTop: '3px',\n paddingBottom: '4px',\n textTransform: 'capitalize'\n }\n },\n 'disableAlpha': {\n alpha: {\n display: 'none'\n }\n }\n }, { disableAlpha: disableAlpha });\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n a: rgb.a,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 100) {\n data.a = 100;\n }\n\n data.a /= 100;\n onChange({\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: data.a,\n source: 'rgb'\n }, e);\n }\n };\n\n return React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.double },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex',\n value: hex.replace('#', ''),\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'r',\n value: rgb.r,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'g',\n value: rgb.g,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'b',\n value: rgb.b,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: Math.round(rgb.a * 100),\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '100'\n })\n )\n );\n};\n\nexport default SketchFields;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\n\nimport { Swatch } from '../common';\n\nexport var SketchPresetColors = function SketchPresetColors(_ref) {\n var colors = _ref.colors,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var styles = reactCSS({\n 'default': {\n colors: {\n margin: '0 -10px',\n padding: '10px 0 0 10px',\n borderTop: '1px solid #eee',\n display: 'flex',\n flexWrap: 'wrap',\n position: 'relative'\n },\n swatchWrap: {\n width: '16px',\n height: '16px',\n margin: '0 10px 10px 0'\n },\n swatch: {\n borderRadius: '3px',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)'\n }\n },\n 'no-presets': {\n colors: {\n display: 'none'\n }\n }\n }, {\n 'no-presets': !colors || !colors.length\n });\n\n var handleClick = function handleClick(hex, e) {\n onClick({\n hex: hex,\n source: 'hex'\n }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.colors, className: 'flexbox-fix' },\n colors.map(function (colorObjOrString) {\n var c = typeof colorObjOrString === 'string' ? { color: colorObjOrString } : colorObjOrString;\n var key = '' + c.color + (c.title || '');\n return React.createElement(\n 'div',\n { key: key, style: styles.swatchWrap },\n React.createElement(Swatch, _extends({}, c, {\n style: styles.swatch,\n onClick: handleClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), 0 0 4px ' + c.color\n }\n }))\n );\n })\n );\n};\n\nSketchPresetColors.propTypes = {\n colors: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n color: PropTypes.string,\n title: PropTypes.string\n })])).isRequired\n};\n\nexport default SketchPresetColors;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue, Alpha, Checkboard } from '../common';\nimport SketchFields from './SketchFields';\nimport SketchPresetColors from './SketchPresetColors';\n\nexport var Sketch = function Sketch(_ref) {\n var width = _ref.width,\n rgb = _ref.rgb,\n hex = _ref.hex,\n hsv = _ref.hsv,\n hsl = _ref.hsl,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n disableAlpha = _ref.disableAlpha,\n presetColors = _ref.presetColors,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': _extends({\n picker: {\n width: width,\n padding: '10px 10px 0',\n boxSizing: 'initial',\n background: '#fff',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.15), 0 8px 16px rgba(0,0,0,.15)'\n },\n saturation: {\n width: '100%',\n paddingBottom: '75%',\n position: 'relative',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '3px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n controls: {\n display: 'flex'\n },\n sliders: {\n padding: '4px 0',\n flex: '1'\n },\n color: {\n width: '24px',\n height: '24px',\n position: 'relative',\n marginTop: '4px',\n marginLeft: '4px',\n borderRadius: '3px'\n },\n activeColor: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '2px',\n background: 'rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ',' + rgb.a + ')',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n hue: {\n position: 'relative',\n height: '10px',\n overflow: 'hidden'\n },\n Hue: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n\n alpha: {\n position: 'relative',\n height: '10px',\n marginTop: '4px',\n overflow: 'hidden'\n },\n Alpha: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n }\n }, passedStyles),\n 'disableAlpha': {\n color: {\n height: '10px'\n },\n hue: {\n height: '10px'\n },\n alpha: {\n display: 'none'\n }\n }\n }, passedStyles), { disableAlpha: disableAlpha });\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'sketch-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.sliders },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n renderers: renderers,\n onChange: onChange\n })\n )\n ),\n React.createElement(\n 'div',\n { style: styles.color },\n React.createElement(Checkboard, null),\n React.createElement('div', { style: styles.activeColor })\n )\n ),\n React.createElement(SketchFields, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n onChange: onChange,\n disableAlpha: disableAlpha\n }),\n React.createElement(SketchPresetColors, {\n colors: presetColors,\n onClick: onChange,\n onSwatchHover: onSwatchHover\n })\n );\n};\n\nSketch.propTypes = {\n disableAlpha: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n styles: PropTypes.object\n};\n\nSketch.defaultProps = {\n disableAlpha: false,\n width: 200,\n styles: {},\n presetColors: ['#D0021B', '#F5A623', '#F8E71C', '#8B572A', '#7ED321', '#417505', '#BD10E0', '#9013FE', '#4A90E2', '#50E3C2', '#B8E986', '#000000', '#4A4A4A', '#9B9B9B', '#FFFFFF']\n};\n\nexport default ColorWrap(Sketch);","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var SliderSwatch = function SliderSwatch(_ref) {\n var hsl = _ref.hsl,\n offset = _ref.offset,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n active = _ref.active,\n first = _ref.first,\n last = _ref.last;\n\n var styles = reactCSS({\n 'default': {\n swatch: {\n height: '12px',\n background: 'hsl(' + hsl.h + ', 50%, ' + offset * 100 + '%)',\n cursor: 'pointer'\n }\n },\n 'first': {\n swatch: {\n borderRadius: '2px 0 0 2px'\n }\n },\n 'last': {\n swatch: {\n borderRadius: '0 2px 2px 0'\n }\n },\n 'active': {\n swatch: {\n transform: 'scaleY(1.8)',\n borderRadius: '3.6px/2px'\n }\n }\n }, { active: active, first: first, last: last });\n\n var handleClick = function handleClick(e) {\n return onClick({\n h: hsl.h,\n s: 0.5,\n l: offset,\n source: 'hsl'\n }, e);\n };\n\n return React.createElement('div', { style: styles.swatch, onClick: handleClick });\n};\n\nexport default SliderSwatch;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nimport SliderSwatch from './SliderSwatch';\n\nexport var SliderSwatches = function SliderSwatches(_ref) {\n var onClick = _ref.onClick,\n hsl = _ref.hsl;\n\n var styles = reactCSS({\n 'default': {\n swatches: {\n marginTop: '20px'\n },\n swatch: {\n boxSizing: 'border-box',\n width: '20%',\n paddingRight: '1px',\n float: 'left'\n },\n clear: {\n clear: 'both'\n }\n }\n });\n\n // Acceptible difference in floating point equality\n var epsilon = 0.1;\n\n return React.createElement(\n 'div',\n { style: styles.swatches },\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.80',\n active: Math.abs(hsl.l - 0.80) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick,\n first: true\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.65',\n active: Math.abs(hsl.l - 0.65) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.50',\n active: Math.abs(hsl.l - 0.50) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.35',\n active: Math.abs(hsl.l - 0.35) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.20',\n active: Math.abs(hsl.l - 0.20) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick,\n last: true\n })\n ),\n React.createElement('div', { style: styles.clear })\n );\n};\n\nexport default SliderSwatches;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var SliderPointer = function SliderPointer() {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '14px',\n height: '14px',\n borderRadius: '6px',\n transform: 'translate(-7px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default SliderPointer;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Hue } from '../common';\nimport SliderSwatches from './SliderSwatches';\nimport SliderPointer from './SliderPointer';\n\nexport var Slider = function Slider(_ref) {\n var hsl = _ref.hsl,\n onChange = _ref.onChange,\n pointer = _ref.pointer,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n hue: {\n height: '12px',\n position: 'relative'\n },\n Hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n\n return React.createElement(\n 'div',\n { style: styles.wrap || {}, className: 'slider-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n pointer: pointer,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatches },\n React.createElement(SliderSwatches, { hsl: hsl, onClick: onChange })\n )\n );\n};\n\nSlider.propTypes = {\n styles: PropTypes.object\n};\nSlider.defaultProps = {\n pointer: SliderPointer,\n styles: {}\n};\n\nexport default ColorWrap(Slider);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as colorUtils from '../../helpers/color';\n\nimport { Swatch } from '../common';\nimport CheckIcon from '@icons/material/CheckIcon';\n\nexport var SwatchesColor = function SwatchesColor(_ref) {\n var color = _ref.color,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover,\n first = _ref.first,\n last = _ref.last,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n color: {\n width: '40px',\n height: '24px',\n cursor: 'pointer',\n background: color,\n marginBottom: '1px'\n },\n check: {\n color: colorUtils.getContrastingColor(color),\n marginLeft: '8px',\n display: 'none'\n }\n },\n 'first': {\n color: {\n overflow: 'hidden',\n borderRadius: '2px 2px 0 0'\n }\n },\n 'last': {\n color: {\n overflow: 'hidden',\n borderRadius: '0 0 2px 2px'\n }\n },\n 'active': {\n check: {\n display: 'block'\n }\n },\n 'color-#FFFFFF': {\n color: {\n boxShadow: 'inset 0 0 0 1px #ddd'\n },\n check: {\n color: '#333'\n }\n },\n 'transparent': {\n check: {\n color: '#333'\n }\n }\n }, {\n first: first,\n last: last,\n active: active,\n 'color-#FFFFFF': color === '#FFFFFF',\n 'transparent': color === 'transparent'\n });\n\n return React.createElement(\n Swatch,\n {\n color: color,\n style: styles.color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: '0 0 4px ' + color }\n },\n React.createElement(\n 'div',\n { style: styles.check },\n React.createElement(CheckIcon, null)\n )\n );\n};\n\nexport default SwatchesColor;","import React from 'react';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\n\nimport SwatchesColor from './SwatchesColor';\n\nexport var SwatchesGroup = function SwatchesGroup(_ref) {\n var onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover,\n group = _ref.group,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n group: {\n paddingBottom: '10px',\n width: '40px',\n float: 'left',\n marginRight: '10px'\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.group },\n map(group, function (color, i) {\n return React.createElement(SwatchesColor, {\n key: color,\n color: color,\n active: color.toLowerCase() === active,\n first: i === 0,\n last: i === group.length - 1,\n onClick: onClick,\n onSwatchHover: onSwatchHover\n });\n })\n );\n};\n\nexport default SwatchesGroup;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as material from 'material-colors';\n\nimport { ColorWrap, Raised } from '../common';\nimport SwatchesGroup from './SwatchesGroup';\n\nexport var Swatches = function Swatches(_ref) {\n var width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n width: width,\n height: height\n },\n overflow: {\n height: height,\n overflowY: 'scroll'\n },\n body: {\n padding: '16px 0 6px 16px'\n },\n clear: {\n clear: 'both'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n return onChange({ hex: data, source: 'hex' }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'swatches-picker ' + className },\n React.createElement(\n Raised,\n null,\n React.createElement(\n 'div',\n { style: styles.overflow },\n React.createElement(\n 'div',\n { style: styles.body },\n map(colors, function (group) {\n return React.createElement(SwatchesGroup, {\n key: group.toString(),\n group: group,\n active: hex,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n }),\n React.createElement('div', { style: styles.clear })\n )\n )\n )\n );\n};\n\nSwatches.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n colors: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)),\n styles: PropTypes.object\n\n /* eslint-disable max-len */\n};Swatches.defaultProps = {\n width: 320,\n height: 240,\n colors: [[material.red['900'], material.red['700'], material.red['500'], material.red['300'], material.red['100']], [material.pink['900'], material.pink['700'], material.pink['500'], material.pink['300'], material.pink['100']], [material.purple['900'], material.purple['700'], material.purple['500'], material.purple['300'], material.purple['100']], [material.deepPurple['900'], material.deepPurple['700'], material.deepPurple['500'], material.deepPurple['300'], material.deepPurple['100']], [material.indigo['900'], material.indigo['700'], material.indigo['500'], material.indigo['300'], material.indigo['100']], [material.blue['900'], material.blue['700'], material.blue['500'], material.blue['300'], material.blue['100']], [material.lightBlue['900'], material.lightBlue['700'], material.lightBlue['500'], material.lightBlue['300'], material.lightBlue['100']], [material.cyan['900'], material.cyan['700'], material.cyan['500'], material.cyan['300'], material.cyan['100']], [material.teal['900'], material.teal['700'], material.teal['500'], material.teal['300'], material.teal['100']], ['#194D33', material.green['700'], material.green['500'], material.green['300'], material.green['100']], [material.lightGreen['900'], material.lightGreen['700'], material.lightGreen['500'], material.lightGreen['300'], material.lightGreen['100']], [material.lime['900'], material.lime['700'], material.lime['500'], material.lime['300'], material.lime['100']], [material.yellow['900'], material.yellow['700'], material.yellow['500'], material.yellow['300'], material.yellow['100']], [material.amber['900'], material.amber['700'], material.amber['500'], material.amber['300'], material.amber['100']], [material.orange['900'], material.orange['700'], material.orange['500'], material.orange['300'], material.orange['100']], [material.deepOrange['900'], material.deepOrange['700'], material.deepOrange['500'], material.deepOrange['300'], material.deepOrange['100']], [material.brown['900'], material.brown['700'], material.brown['500'], material.brown['300'], material.brown['100']], [material.blueGrey['900'], material.blueGrey['700'], material.blueGrey['500'], material.blueGrey['300'], material.blueGrey['100']], ['#000000', '#525252', '#969696', '#D9D9D9', '#FFFFFF']],\n styles: {}\n};\n\nexport default ColorWrap(Swatches);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, EditableInput, Swatch } from '../common';\n\nexport var Twitter = function Twitter(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n hex = _ref.hex,\n colors = _ref.colors,\n width = _ref.width,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n border: '0 solid rgba(0,0,0,0.25)',\n boxShadow: '0 1px 4px rgba(0,0,0,0.25)',\n borderRadius: '4px',\n position: 'relative'\n },\n body: {\n padding: '15px 9px 9px 15px'\n },\n label: {\n fontSize: '18px',\n color: '#fff'\n },\n triangle: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 9px 10px 9px',\n borderColor: 'transparent transparent #fff transparent',\n position: 'absolute'\n },\n triangleShadow: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 9px 10px 9px',\n borderColor: 'transparent transparent rgba(0,0,0,.1) transparent',\n position: 'absolute'\n },\n hash: {\n background: '#F0F0F0',\n height: '30px',\n width: '30px',\n borderRadius: '4px 0 0 4px',\n float: 'left',\n color: '#98A1A4',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n },\n input: {\n width: '100px',\n fontSize: '14px',\n color: '#666',\n border: '0px',\n outline: 'none',\n height: '28px',\n boxShadow: 'inset 0 0 0 1px #F0F0F0',\n boxSizing: 'content-box',\n borderRadius: '0 4px 4px 0',\n float: 'left',\n paddingLeft: '8px'\n },\n swatch: {\n width: '30px',\n height: '30px',\n float: 'left',\n borderRadius: '4px',\n margin: '0 6px 6px 0'\n },\n clear: {\n clear: 'both'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n },\n triangleShadow: {\n display: 'none'\n }\n },\n 'top-left-triangle': {\n triangle: {\n top: '-10px',\n left: '12px'\n },\n triangleShadow: {\n top: '-11px',\n left: '12px'\n }\n },\n 'top-right-triangle': {\n triangle: {\n top: '-10px',\n right: '12px'\n },\n triangleShadow: {\n top: '-11px',\n right: '12px'\n }\n }\n }, passedStyles), {\n 'hide-triangle': triangle === 'hide',\n 'top-left-triangle': triangle === 'top-left',\n 'top-right-triangle': triangle === 'top-right'\n });\n\n var handleChange = function handleChange(hexcode, e) {\n color.isValidHex(hexcode) && onChange({\n hex: hexcode,\n source: 'hex'\n }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'twitter-picker ' + className },\n React.createElement('div', { style: styles.triangleShadow }),\n React.createElement('div', { style: styles.triangle }),\n React.createElement(\n 'div',\n { style: styles.body },\n map(colors, function (c, i) {\n return React.createElement(Swatch, {\n key: i,\n color: c,\n hex: c,\n style: styles.swatch,\n onClick: handleChange,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: '0 0 4px ' + c\n }\n });\n }),\n React.createElement(\n 'div',\n { style: styles.hash },\n '#'\n ),\n React.createElement(EditableInput, {\n label: null,\n style: { input: styles.input },\n value: hex.replace('#', ''),\n onChange: handleChange\n }),\n React.createElement('div', { style: styles.clear })\n )\n );\n};\n\nTwitter.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n triangle: PropTypes.oneOf(['hide', 'top-left', 'top-right']),\n colors: PropTypes.arrayOf(PropTypes.string),\n styles: PropTypes.object\n};\n\nTwitter.defaultProps = {\n width: 276,\n colors: ['#FF6900', '#FCB900', '#7BDCB5', '#00D084', '#8ED1FC', '#0693E3', '#ABB8C3', '#EB144C', '#F78DA7', '#9900EF'],\n triangle: 'top-left',\n styles: {}\n};\n\nexport default ColorWrap(Twitter);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport PropTypes from 'prop-types';\n\nexport var GooglePointerCircle = function GooglePointerCircle(props) {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '20px',\n height: '20px',\n borderRadius: '22px',\n border: '2px #fff solid',\n transform: 'translate(-12px, -13px)',\n background: 'hsl(' + Math.round(props.hsl.h) + ', ' + Math.round(props.hsl.s * 100) + '%, ' + Math.round(props.hsl.l * 100) + '%)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nGooglePointerCircle.propTypes = {\n hsl: PropTypes.shape({\n h: PropTypes.number,\n s: PropTypes.number,\n l: PropTypes.number,\n a: PropTypes.number\n })\n};\n\nGooglePointerCircle.defaultProps = {\n hsl: { a: 1, h: 249.94, l: 0.2, s: 0.50 }\n};\n\nexport default GooglePointerCircle;","import React from 'react';\nimport reactCSS from 'reactcss';\nimport PropTypes from 'prop-types';\n\nexport var GooglePointer = function GooglePointer(props) {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '20px',\n height: '20px',\n borderRadius: '22px',\n transform: 'translate(-10px, -7px)',\n background: 'hsl(' + Math.round(props.hsl.h) + ', 100%, 50%)',\n border: '2px white solid'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nGooglePointer.propTypes = {\n hsl: PropTypes.shape({\n h: PropTypes.number,\n s: PropTypes.number,\n l: PropTypes.number,\n a: PropTypes.number\n })\n};\n\nGooglePointer.defaultProps = {\n hsl: { a: 1, h: 249.94, l: 0.2, s: 0.50 }\n};\n\nexport default GooglePointer;","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\nimport { EditableInput } from '../common';\n\nexport var GoogleFields = function GoogleFields(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hex = _ref.hex,\n hsv = _ref.hsv;\n\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.rgb) {\n var values = data.rgb.split(',');\n color.isvalidColorString(data.rgb, 'rgb') && onChange({\n r: values[0],\n g: values[1],\n b: values[2],\n a: 1,\n source: 'rgb'\n }, e);\n } else if (data.hsv) {\n var _values = data.hsv.split(',');\n if (color.isvalidColorString(data.hsv, 'hsv')) {\n _values[2] = _values[2].replace('%', '');\n _values[1] = _values[1].replace('%', '');\n _values[0] = _values[0].replace('°', '');\n if (_values[1] == 1) {\n _values[1] = 0.01;\n } else if (_values[2] == 1) {\n _values[2] = 0.01;\n }\n onChange({\n h: Number(_values[0]),\n s: Number(_values[1]),\n v: Number(_values[2]),\n source: 'hsv'\n }, e);\n }\n } else if (data.hsl) {\n var _values2 = data.hsl.split(',');\n if (color.isvalidColorString(data.hsl, 'hsl')) {\n _values2[2] = _values2[2].replace('%', '');\n _values2[1] = _values2[1].replace('%', '');\n _values2[0] = _values2[0].replace('°', '');\n if (hsvValue[1] == 1) {\n hsvValue[1] = 0.01;\n } else if (hsvValue[2] == 1) {\n hsvValue[2] = 0.01;\n }\n onChange({\n h: Number(_values2[0]),\n s: Number(_values2[1]),\n v: Number(_values2[2]),\n source: 'hsl'\n }, e);\n }\n }\n };\n\n var styles = reactCSS({\n 'default': {\n wrap: {\n display: 'flex',\n height: '100px',\n marginTop: '4px'\n },\n fields: {\n width: '100%'\n },\n column: {\n paddingTop: '10px',\n display: 'flex',\n justifyContent: 'space-between'\n },\n double: {\n padding: '0px 4.4px',\n boxSizing: 'border-box'\n },\n input: {\n width: '100%',\n height: '38px',\n boxSizing: 'border-box',\n padding: '4px 10% 3px',\n textAlign: 'center',\n border: '1px solid #dadce0',\n fontSize: '11px',\n textTransform: 'lowercase',\n borderRadius: '5px',\n outline: 'none',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n input2: {\n height: '38px',\n width: '100%',\n border: '1px solid #dadce0',\n boxSizing: 'border-box',\n fontSize: '11px',\n textTransform: 'lowercase',\n borderRadius: '5px',\n outline: 'none',\n paddingLeft: '10px',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n label: {\n textAlign: 'center',\n fontSize: '12px',\n background: '#fff',\n position: 'absolute',\n textTransform: 'uppercase',\n color: '#3c4043',\n width: '35px',\n top: '-6px',\n left: '0',\n right: '0',\n marginLeft: 'auto',\n marginRight: 'auto',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n label2: {\n left: '10px',\n textAlign: 'center',\n fontSize: '12px',\n background: '#fff',\n position: 'absolute',\n textTransform: 'uppercase',\n color: '#3c4043',\n width: '32px',\n top: '-6px',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n single: {\n flexGrow: '1',\n margin: '0px 4.4px'\n }\n }\n });\n\n var rgbValue = rgb.r + ', ' + rgb.g + ', ' + rgb.b;\n var hslValue = Math.round(hsl.h) + '\\xB0, ' + Math.round(hsl.s * 100) + '%, ' + Math.round(hsl.l * 100) + '%';\n var hsvValue = Math.round(hsv.h) + '\\xB0, ' + Math.round(hsv.s * 100) + '%, ' + Math.round(hsv.v * 100) + '%';\n\n return React.createElement(\n 'div',\n { style: styles.wrap, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.fields },\n React.createElement(\n 'div',\n { style: styles.double },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex',\n value: hex,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.column },\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'rgb',\n value: rgbValue,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'hsv',\n value: hsvValue,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'hsl',\n value: hslValue,\n onChange: handleChange\n })\n )\n )\n )\n );\n};\n\nexport default GoogleFields;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue } from '../common';\nimport GooglePointerCircle from './GooglePointerCircle';\nimport GooglePointer from './GooglePointer';\nimport GoogleFields from './GoogleFields';\n\nexport var Google = function Google(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hsv = _ref.hsv,\n hex = _ref.hex,\n header = _ref.header,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n width: width,\n background: '#fff',\n border: '1px solid #dfe1e5',\n boxSizing: 'initial',\n display: 'flex',\n flexWrap: 'wrap',\n borderRadius: '8px 8px 0px 0px'\n },\n head: {\n height: '57px',\n width: '100%',\n paddingTop: '16px',\n paddingBottom: '16px',\n paddingLeft: '16px',\n fontSize: '20px',\n boxSizing: 'border-box',\n fontFamily: 'Roboto-Regular,HelveticaNeue,Arial,sans-serif'\n },\n saturation: {\n width: '70%',\n padding: '0px',\n position: 'relative',\n overflow: 'hidden'\n },\n swatch: {\n width: '30%',\n height: '228px',\n padding: '0px',\n background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', 1)',\n position: 'relative',\n overflow: 'hidden'\n },\n body: {\n margin: 'auto',\n width: '95%'\n },\n controls: {\n display: 'flex',\n boxSizing: 'border-box',\n height: '52px',\n paddingTop: '22px'\n },\n color: {\n width: '32px'\n },\n hue: {\n height: '8px',\n position: 'relative',\n margin: '0px 16px 0px 16px',\n width: '100%'\n },\n Hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'google-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.head },\n header\n ),\n React.createElement('div', { style: styles.swatch }),\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n hsl: hsl,\n hsv: hsv,\n pointer: GooglePointerCircle,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.body },\n React.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n radius: '4px',\n pointer: GooglePointer,\n onChange: onChange\n })\n )\n ),\n React.createElement(GoogleFields, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n hsv: hsv,\n onChange: onChange\n })\n )\n );\n};\n\nGoogle.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n styles: PropTypes.object,\n header: PropTypes.string\n\n};\n\nGoogle.defaultProps = {\n width: 652,\n styles: {},\n header: 'Color picker'\n};\n\nexport default ColorWrap(Google);","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n}","export default function buildFormatLongFn(args) {\n return function (dirtyOptions) {\n var options = dirtyOptions || {};\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from '../../../_lib/buildFormatLongFn/index.js';\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var value;\n\n if (Object.prototype.toString.call(parsePatterns) === '[object Array]') {\n value = findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n } else {\n value = findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n }\n\n value = args.valueCallback ? args.valueCallback(value) : value;\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n}","import buildMatchPatternFn from '../../../_lib/buildMatchPatternFn/index.js';\nimport buildMatchFn from '../../../_lib/buildMatchFn/index.js';\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var matchResult = string.match(args.matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n\n if (!parseResult) {\n return null;\n }\n\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}","import formatDistance from './_lib/formatDistance/index.js';\nimport formatLong from './_lib/formatLong/index.js';\nimport formatRelative from './_lib/formatRelative/index.js';\nimport localize from './_lib/localize/index.js';\nimport match from './_lib/match/index.js';\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\n\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import buildLocalizeFn from '../../../_lib/buildLocalizeFn/index.js';\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","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 arrayWithoutHoles from \"@babel/runtime/helpers/esm/arrayWithoutHoles\";\nimport iterableToArray from \"@babel/runtime/helpers/esm/iterableToArray\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableSpread from \"@babel/runtime/helpers/esm/nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/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 toInteger from '../toInteger/index.js';\nimport getUTCWeekYear from '../getUTCWeekYear/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport startOfUTCWeekYear from '../startOfUTCWeekYear/index.js';\nimport requiredArgs from '../requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from '../getUTCISOWeekYear/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport startOfUTCISOWeekYear from '../startOfUTCISOWeekYear/index.js';\nimport requiredArgs from '../requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import { OperationVariables } from '@apollo/react-common';\nimport { useQuery } from '@apollo/react-hooks';\nimport PropTypes from 'prop-types';\n\nimport { QueryComponentOptions } from './types';\n\nexport function Query(\n props: QueryComponentOptions\n) {\n const { children, query, ...options } = props;\n const result = useQuery(query, options);\n return children && result ? children(result) : null;\n}\n\nexport namespace Query {\n export const propTypes = {\n client: PropTypes.object,\n children: PropTypes.func.isRequired,\n fetchPolicy: PropTypes.string,\n notifyOnNetworkStatusChange: PropTypes.bool,\n onCompleted: PropTypes.func,\n onError: PropTypes.func,\n pollInterval: PropTypes.number,\n query: PropTypes.object.isRequired,\n variables: PropTypes.object,\n ssr: PropTypes.bool,\n partialRefetch: PropTypes.bool,\n returnPartialData: PropTypes.bool\n };\n}\n","import { OperationVariables } from '@apollo/react-common';\nimport { useMutation } from '@apollo/react-hooks';\nimport PropTypes from 'prop-types';\n\nimport { MutationComponentOptions } from './types';\n\nexport function Mutation(\n props: MutationComponentOptions\n) {\n const [runMutation, result] = useMutation(props.mutation, props);\n return props.children ? props.children(runMutation, result) : null;\n}\n\nexport namespace Mutation {\n export const propTypes = {\n mutation: PropTypes.object.isRequired,\n variables: PropTypes.object,\n optimisticResponse: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n refetchQueries: PropTypes.oneOfType([\n PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n ),\n PropTypes.func\n ]),\n awaitRefetchQueries: PropTypes.bool,\n update: PropTypes.func,\n children: PropTypes.func.isRequired,\n onCompleted: PropTypes.func,\n onError: PropTypes.func,\n fetchPolicy: PropTypes.string\n };\n}\n","import { OperationVariables } from '@apollo/react-common';\nimport { useSubscription } from '@apollo/react-hooks';\nimport PropTypes from 'prop-types';\n\nimport { SubscriptionComponentOptions } from './types';\n\nexport function Subscription(\n props: SubscriptionComponentOptions\n) {\n const result = useSubscription(props.subscription, props);\n return props.children && result ? props.children(result) : null;\n}\n\nexport namespace Subscription {\n export const propTypes = {\n subscription: PropTypes.object.isRequired,\n variables: PropTypes.object,\n children: PropTypes.func,\n onSubscriptionData: PropTypes.func,\n onSubscriptionComplete: PropTypes.func,\n shouldResubscribe: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n };\n}\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 { 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 { useContext, useState, useRef, useEffect } from 'react';\nimport { DocumentNode } from 'graphql';\nimport { getApolloContext, OperationVariables } from '@apollo/react-common';\n\nimport { SubscriptionHookOptions } from './types';\nimport { SubscriptionData } from './data/SubscriptionData';\n\nexport function useSubscription(\n subscription: DocumentNode,\n options?: SubscriptionHookOptions\n) {\n const context = useContext(getApolloContext());\n const updatedOptions = options\n ? { ...options, subscription }\n : { subscription };\n const [result, setResult] = useState({\n loading: !updatedOptions.skip,\n error: undefined,\n data: undefined\n });\n\n const subscriptionDataRef = useRef>();\n function getSubscriptionDataRef() {\n if (!subscriptionDataRef.current) {\n subscriptionDataRef.current = new SubscriptionData({\n options: updatedOptions,\n context,\n setResult\n });\n }\n return subscriptionDataRef.current;\n }\n\n const subscriptionData = getSubscriptionDataRef();\n subscriptionData.setOptions(updatedOptions, true);\n subscriptionData.context = context;\n\n useEffect(() => subscriptionData.afterExecute());\n useEffect(() => subscriptionData.cleanup.bind(subscriptionData), []);\n\n return subscriptionData.execute(result);\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","\"use strict\";\n\nvar _CSSTransition = _interopRequireDefault(require(\"./CSSTransition\"));\n\nvar _ReplaceTransition = _interopRequireDefault(require(\"./ReplaceTransition\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","'use strict';\n\nvar origSymbol = global.Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","var baseForOwn = require('./_baseForOwn'),\n castFunction = require('./_castFunction');\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nmodule.exports = forOwn;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\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\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\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\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function eventListener() {\n if (errorListener !== undefined) {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n var errorListener;\n\n // Adding an error listener is not optional because\n // if an error is thrown on an event emitter we cannot\n // guarantee that the actual event we are waiting will\n // be fired. The result could be a silent way to create\n // memory or file descriptor leaks, which is something\n // we should avoid.\n if (name !== 'error') {\n errorListener = function errorListener(err) {\n emitter.removeListener(name, eventListener);\n reject(err);\n };\n\n emitter.once('error', errorListener);\n }\n\n emitter.once(name, eventListener);\n });\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\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\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","'use strict';\n\n\nmodule.exports = require('./lib/');\n","module.exports=/[!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4E\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD803[\\uDF55-\\uDF59]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDC4B-\\uDC4F\\uDC5B\\uDC5D\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDE60-\\uDE6C\\uDF3C-\\uDF3E]|\\uD806[\\uDC3B\\uDE3F-\\uDE46\\uDE9A-\\uDE9C\\uDE9E-\\uDEA2]|\\uD807[\\uDC41-\\uDC45\\uDC70\\uDC71\\uDEF7\\uDEF8]|\\uD809[\\uDC70-\\uDC74]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD81B[\\uDE97-\\uDE9A]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]|\\uD83A[\\uDD5E\\uDD5F]/","/**\n * class Ruler\n *\n * Helper class, used by [[MarkdownIt#core]], [[MarkdownIt#block]] and\n * [[MarkdownIt#inline]] to manage sequences of functions (rules):\n *\n * - keep rules in defined order\n * - assign the name to each rule\n * - enable/disable rules\n * - add/replace rules\n * - allow assign rules to additional named chains (in the same)\n * - cacheing lists of active rules\n *\n * You will not need use this class directly until write plugins. For simple\n * rules control use [[MarkdownIt.disable]], [[MarkdownIt.enable]] and\n * [[MarkdownIt.use]].\n **/\n'use strict';\n\n\n/**\n * new Ruler()\n **/\nfunction Ruler() {\n // List of added rules. Each element is:\n //\n // {\n // name: XXX,\n // enabled: Boolean,\n // fn: Function(),\n // alt: [ name2, name3 ]\n // }\n //\n this.__rules__ = [];\n\n // Cached rule chains.\n //\n // First level - chain name, '' for default.\n // Second level - diginal anchor for fast filtering by charcodes.\n //\n this.__cache__ = null;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Helper methods, should not be used directly\n\n\n// Find rule index by name\n//\nRuler.prototype.__find__ = function (name) {\n for (var i = 0; i < this.__rules__.length; i++) {\n if (this.__rules__[i].name === name) {\n return i;\n }\n }\n return -1;\n};\n\n\n// Build rules lookup cache\n//\nRuler.prototype.__compile__ = function () {\n var self = this;\n var chains = [ '' ];\n\n // collect unique names\n self.__rules__.forEach(function (rule) {\n if (!rule.enabled) { return; }\n\n rule.alt.forEach(function (altName) {\n if (chains.indexOf(altName) < 0) {\n chains.push(altName);\n }\n });\n });\n\n self.__cache__ = {};\n\n chains.forEach(function (chain) {\n self.__cache__[chain] = [];\n self.__rules__.forEach(function (rule) {\n if (!rule.enabled) { return; }\n\n if (chain && rule.alt.indexOf(chain) < 0) { return; }\n\n self.__cache__[chain].push(rule.fn);\n });\n });\n};\n\n\n/**\n * Ruler.at(name, fn [, options])\n * - name (String): rule name to replace.\n * - fn (Function): new rule function.\n * - options (Object): new rule options (not mandatory).\n *\n * Replace rule by name with new function & options. Throws error if name not\n * found.\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * Replace existing typographer replacement rule with new one:\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.at('replacements', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.at = function (name, fn, options) {\n var index = this.__find__(name);\n var opt = options || {};\n\n if (index === -1) { throw new Error('Parser rule not found: ' + name); }\n\n this.__rules__[index].fn = fn;\n this.__rules__[index].alt = opt.alt || [];\n this.__cache__ = null;\n};\n\n\n/**\n * Ruler.before(beforeName, ruleName, fn [, options])\n * - beforeName (String): new rule will be added before this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain before one with given name. See also\n * [[Ruler.after]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.block.ruler.before('paragraph', 'my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.before = function (beforeName, ruleName, fn, options) {\n var index = this.__find__(beforeName);\n var opt = options || {};\n\n if (index === -1) { throw new Error('Parser rule not found: ' + beforeName); }\n\n this.__rules__.splice(index, 0, {\n name: ruleName,\n enabled: true,\n fn: fn,\n alt: opt.alt || []\n });\n\n this.__cache__ = null;\n};\n\n\n/**\n * Ruler.after(afterName, ruleName, fn [, options])\n * - afterName (String): new rule will be added after this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain after one with given name. See also\n * [[Ruler.before]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.inline.ruler.after('text', 'my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.after = function (afterName, ruleName, fn, options) {\n var index = this.__find__(afterName);\n var opt = options || {};\n\n if (index === -1) { throw new Error('Parser rule not found: ' + afterName); }\n\n this.__rules__.splice(index + 1, 0, {\n name: ruleName,\n enabled: true,\n fn: fn,\n alt: opt.alt || []\n });\n\n this.__cache__ = null;\n};\n\n/**\n * Ruler.push(ruleName, fn [, options])\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Push new rule to the end of chain. See also\n * [[Ruler.before]], [[Ruler.after]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.push('my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.push = function (ruleName, fn, options) {\n var opt = options || {};\n\n this.__rules__.push({\n name: ruleName,\n enabled: true,\n fn: fn,\n alt: opt.alt || []\n });\n\n this.__cache__ = null;\n};\n\n\n/**\n * Ruler.enable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to enable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.disable]], [[Ruler.enableOnly]].\n **/\nRuler.prototype.enable = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [ list ]; }\n\n var result = [];\n\n // Search by name and enable\n list.forEach(function (name) {\n var idx = this.__find__(name);\n\n if (idx < 0) {\n if (ignoreInvalid) { return; }\n throw new Error('Rules manager: invalid rule name ' + name);\n }\n this.__rules__[idx].enabled = true;\n result.push(name);\n }, this);\n\n this.__cache__ = null;\n return result;\n};\n\n\n/**\n * Ruler.enableOnly(list [, ignoreInvalid])\n * - list (String|Array): list of rule names to enable (whitelist).\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names, and disable everything else. If any rule name\n * not found - throw Error. Errors can be disabled by second param.\n *\n * See also [[Ruler.disable]], [[Ruler.enable]].\n **/\nRuler.prototype.enableOnly = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [ list ]; }\n\n this.__rules__.forEach(function (rule) { rule.enabled = false; });\n\n this.enable(list, ignoreInvalid);\n};\n\n\n/**\n * Ruler.disable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Disable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.enable]], [[Ruler.enableOnly]].\n **/\nRuler.prototype.disable = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [ list ]; }\n\n var result = [];\n\n // Search by name and disable\n list.forEach(function (name) {\n var idx = this.__find__(name);\n\n if (idx < 0) {\n if (ignoreInvalid) { return; }\n throw new Error('Rules manager: invalid rule name ' + name);\n }\n this.__rules__[idx].enabled = false;\n result.push(name);\n }, this);\n\n this.__cache__ = null;\n return result;\n};\n\n\n/**\n * Ruler.getRules(chainName) -> Array\n *\n * Return array of active functions (rules) for given chain name. It analyzes\n * rules configuration, compiles caches if not exists and returns result.\n *\n * Default chain name is `''` (empty string). It can't be skipped. That's\n * done intentionally, to keep signature monomorphic for high speed.\n **/\nRuler.prototype.getRules = function (chainName) {\n if (this.__cache__ === null) {\n this.__compile__();\n }\n\n // Chain can be empty, if rules disabled. But we still have to return Array.\n return this.__cache__[chainName] || [];\n};\n\nmodule.exports = Ruler;\n","// Token class\n\n'use strict';\n\n\n/**\n * class Token\n **/\n\n/**\n * new Token(type, tag, nesting)\n *\n * Create new token and fill passed properties.\n **/\nfunction Token(type, tag, nesting) {\n /**\n * Token#type -> String\n *\n * Type of the token (string, e.g. \"paragraph_open\")\n **/\n this.type = type;\n\n /**\n * Token#tag -> String\n *\n * html tag name, e.g. \"p\"\n **/\n this.tag = tag;\n\n /**\n * Token#attrs -> Array\n *\n * Html attributes. Format: `[ [ name1, value1 ], [ name2, value2 ] ]`\n **/\n this.attrs = null;\n\n /**\n * Token#map -> Array\n *\n * Source map info. Format: `[ line_begin, line_end ]`\n **/\n this.map = null;\n\n /**\n * Token#nesting -> Number\n *\n * Level change (number in {-1, 0, 1} set), where:\n *\n * - `1` means the tag is opening\n * - `0` means the tag is self-closing\n * - `-1` means the tag is closing\n **/\n this.nesting = nesting;\n\n /**\n * Token#level -> Number\n *\n * nesting level, the same as `state.level`\n **/\n this.level = 0;\n\n /**\n * Token#children -> Array\n *\n * An array of child nodes (inline and img tokens)\n **/\n this.children = null;\n\n /**\n * Token#content -> String\n *\n * In a case of self-closing tag (code, html, fence, etc.),\n * it has contents of this tag.\n **/\n this.content = '';\n\n /**\n * Token#markup -> String\n *\n * '*' or '_' for emphasis, fence string for fence, etc.\n **/\n this.markup = '';\n\n /**\n * Token#info -> String\n *\n * fence infostring\n **/\n this.info = '';\n\n /**\n * Token#meta -> Object\n *\n * A place for plugins to store an arbitrary data\n **/\n this.meta = null;\n\n /**\n * Token#block -> Boolean\n *\n * True for block-level tokens, false for inline tokens.\n * Used in renderer to calculate line breaks\n **/\n this.block = false;\n\n /**\n * Token#hidden -> Boolean\n *\n * If it's true, ignore this element when rendering. Used for tight lists\n * to hide paragraphs.\n **/\n this.hidden = false;\n}\n\n\n/**\n * Token.attrIndex(name) -> Number\n *\n * Search attribute index by name.\n **/\nToken.prototype.attrIndex = function attrIndex(name) {\n var attrs, i, len;\n\n if (!this.attrs) { return -1; }\n\n attrs = this.attrs;\n\n for (i = 0, len = attrs.length; i < len; i++) {\n if (attrs[i][0] === name) { return i; }\n }\n return -1;\n};\n\n\n/**\n * Token.attrPush(attrData)\n *\n * Add `[ name, value ]` attribute to list. Init attrs if necessary\n **/\nToken.prototype.attrPush = function attrPush(attrData) {\n if (this.attrs) {\n this.attrs.push(attrData);\n } else {\n this.attrs = [ attrData ];\n }\n};\n\n\n/**\n * Token.attrSet(name, value)\n *\n * Set `name` attribute to `value`. Override old value if exists.\n **/\nToken.prototype.attrSet = function attrSet(name, value) {\n var idx = this.attrIndex(name),\n attrData = [ name, value ];\n\n if (idx < 0) {\n this.attrPush(attrData);\n } else {\n this.attrs[idx] = attrData;\n }\n};\n\n\n/**\n * Token.attrGet(name)\n *\n * Get the value of attribute `name`, or null if it does not exist.\n **/\nToken.prototype.attrGet = function attrGet(name) {\n var idx = this.attrIndex(name), value = null;\n if (idx >= 0) {\n value = this.attrs[idx][1];\n }\n return value;\n};\n\n\n/**\n * Token.attrJoin(name, value)\n *\n * Join value to existing attribute via space. Or create new attribute if not\n * exists. Useful to operate with token classes.\n **/\nToken.prototype.attrJoin = function attrJoin(name, value) {\n var idx = this.attrIndex(name);\n\n if (idx < 0) {\n this.attrPush([ name, value ]);\n } else {\n this.attrs[idx][1] = this.attrs[idx][1] + ' ' + value;\n }\n};\n\n\nmodule.exports = Token;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nlet isMacOs = false;\n\nif (typeof window === 'object') {\n isMacOs = window.navigator.platform === 'MacIntel';\n}\n\nconst commonKeys = {\n // Persistent search box in Query Editor\n [isMacOs ? 'Cmd-F' : 'Ctrl-F']: 'findPersistent',\n 'Cmd-G': 'findPersistent',\n 'Ctrl-G': 'findPersistent',\n // Editor improvements\n 'Ctrl-Left': 'goSubwordLeft',\n 'Ctrl-Right': 'goSubwordRight',\n 'Alt-Left': 'goGroupLeft',\n 'Alt-Right': 'goGroupRight'\n};\nvar _default = commonKeys;\nexports.default = _default;","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n var ie_lt8 = /MSIE \\d/.test(navigator.userAgent) &&\n (document.documentMode == null || document.documentMode < 8);\n\n var Pos = CodeMirror.Pos;\n\n var matching = {\"(\": \")>\", \")\": \"(<\", \"[\": \"]>\", \"]\": \"[<\", \"{\": \"}>\", \"}\": \"{<\", \"<\": \">>\", \">\": \"<<\"};\n\n function bracketRegex(config) {\n return config && config.bracketRegex || /[(){}[\\]]/\n }\n\n function findMatchingBracket(cm, where, config) {\n var line = cm.getLineHandle(where.line), pos = where.ch - 1;\n var afterCursor = config && config.afterCursor\n if (afterCursor == null)\n afterCursor = /(^| )cm-fat-cursor($| )/.test(cm.getWrapperElement().className)\n var re = bracketRegex(config)\n\n // A cursor is defined as between two characters, but in in vim command mode\n // (i.e. not insert mode), the cursor is visually represented as a\n // highlighted box on top of the 2nd character. Otherwise, we allow matches\n // from before or after the cursor.\n var match = (!afterCursor && pos >= 0 && re.test(line.text.charAt(pos)) && matching[line.text.charAt(pos)]) ||\n re.test(line.text.charAt(pos + 1)) && matching[line.text.charAt(++pos)];\n if (!match) return null;\n var dir = match.charAt(1) == \">\" ? 1 : -1;\n if (config && config.strict && (dir > 0) != (pos == where.ch)) return null;\n var style = cm.getTokenTypeAt(Pos(where.line, pos + 1));\n\n var found = scanForBracket(cm, Pos(where.line, pos + (dir > 0 ? 1 : 0)), dir, style || null, config);\n if (found == null) return null;\n return {from: Pos(where.line, pos), to: found && found.pos,\n match: found && found.ch == match.charAt(0), forward: dir > 0};\n }\n\n // bracketRegex is used to specify which type of bracket to scan\n // should be a regexp, e.g. /[[\\]]/\n //\n // Note: If \"where\" is on an open bracket, then this bracket is ignored.\n //\n // Returns false when no bracket was found, null when it reached\n // maxScanLines and gave up\n function scanForBracket(cm, where, dir, style, config) {\n var maxScanLen = (config && config.maxScanLineLength) || 10000;\n var maxScanLines = (config && config.maxScanLines) || 1000;\n\n var stack = [];\n var re = bracketRegex(config)\n var lineEnd = dir > 0 ? Math.min(where.line + maxScanLines, cm.lastLine() + 1)\n : Math.max(cm.firstLine() - 1, where.line - maxScanLines);\n for (var lineNo = where.line; lineNo != lineEnd; lineNo += dir) {\n var line = cm.getLine(lineNo);\n if (!line) continue;\n var pos = dir > 0 ? 0 : line.length - 1, end = dir > 0 ? line.length : -1;\n if (line.length > maxScanLen) continue;\n if (lineNo == where.line) pos = where.ch - (dir < 0 ? 1 : 0);\n for (; pos != end; pos += dir) {\n var ch = line.charAt(pos);\n if (re.test(ch) && (style === undefined || cm.getTokenTypeAt(Pos(lineNo, pos + 1)) == style)) {\n var match = matching[ch];\n if (match && (match.charAt(1) == \">\") == (dir > 0)) stack.push(ch);\n else if (!stack.length) return {pos: Pos(lineNo, pos), ch: ch};\n else stack.pop();\n }\n }\n }\n return lineNo - dir == (dir > 0 ? cm.lastLine() : cm.firstLine()) ? false : null;\n }\n\n function matchBrackets(cm, autoclear, config) {\n // Disable brace matching in long lines, since it'll cause hugely slow updates\n var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1000;\n var marks = [], ranges = cm.listSelections();\n for (var i = 0; i < ranges.length; i++) {\n var match = ranges[i].empty() && findMatchingBracket(cm, ranges[i].head, config);\n if (match && cm.getLine(match.from.line).length <= maxHighlightLen) {\n var style = match.match ? \"CodeMirror-matchingbracket\" : \"CodeMirror-nonmatchingbracket\";\n marks.push(cm.markText(match.from, Pos(match.from.line, match.from.ch + 1), {className: style}));\n if (match.to && cm.getLine(match.to.line).length <= maxHighlightLen)\n marks.push(cm.markText(match.to, Pos(match.to.line, match.to.ch + 1), {className: style}));\n }\n }\n\n if (marks.length) {\n // Kludge to work around the IE bug from issue #1193, where text\n // input stops going to the textare whever this fires.\n if (ie_lt8 && cm.state.focused) cm.focus();\n\n var clear = function() {\n cm.operation(function() {\n for (var i = 0; i < marks.length; i++) marks[i].clear();\n });\n };\n if (autoclear) setTimeout(clear, 800);\n else return clear;\n }\n }\n\n function doMatchBrackets(cm) {\n cm.operation(function() {\n if (cm.state.matchBrackets.currentlyHighlighted) {\n cm.state.matchBrackets.currentlyHighlighted();\n cm.state.matchBrackets.currentlyHighlighted = null;\n }\n cm.state.matchBrackets.currentlyHighlighted = matchBrackets(cm, false, cm.state.matchBrackets);\n });\n }\n\n CodeMirror.defineOption(\"matchBrackets\", false, function(cm, val, old) {\n function clear(cm) {\n if (cm.state.matchBrackets && cm.state.matchBrackets.currentlyHighlighted) {\n cm.state.matchBrackets.currentlyHighlighted();\n cm.state.matchBrackets.currentlyHighlighted = null;\n }\n }\n\n if (old && old != CodeMirror.Init) {\n cm.off(\"cursorActivity\", doMatchBrackets);\n cm.off(\"focus\", doMatchBrackets)\n cm.off(\"blur\", clear)\n clear(cm);\n }\n if (val) {\n cm.state.matchBrackets = typeof val == \"object\" ? val : {};\n cm.on(\"cursorActivity\", doMatchBrackets);\n cm.on(\"focus\", doMatchBrackets)\n cm.on(\"blur\", clear)\n }\n });\n\n CodeMirror.defineExtension(\"matchBrackets\", function() {matchBrackets(this, true);});\n CodeMirror.defineExtension(\"findMatchingBracket\", function(pos, config, oldConfig){\n // Backwards-compatibility kludge\n if (oldConfig || typeof config == \"boolean\") {\n if (!oldConfig) {\n config = config ? {strict: true} : null\n } else {\n oldConfig.strict = config\n config = oldConfig\n }\n }\n return findMatchingBracket(this, pos, config)\n });\n CodeMirror.defineExtension(\"scanForBracket\", function(pos, dir, style, config){\n return scanForBracket(this, pos, dir, style, config);\n });\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"./foldcode\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"./foldcode\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineOption(\"foldGutter\", false, function(cm, val, old) {\n if (old && old != CodeMirror.Init) {\n cm.clearGutter(cm.state.foldGutter.options.gutter);\n cm.state.foldGutter = null;\n cm.off(\"gutterClick\", onGutterClick);\n cm.off(\"changes\", onChange);\n cm.off(\"viewportChange\", onViewportChange);\n cm.off(\"fold\", onFold);\n cm.off(\"unfold\", onFold);\n cm.off(\"swapDoc\", onChange);\n }\n if (val) {\n cm.state.foldGutter = new State(parseOptions(val));\n updateInViewport(cm);\n cm.on(\"gutterClick\", onGutterClick);\n cm.on(\"changes\", onChange);\n cm.on(\"viewportChange\", onViewportChange);\n cm.on(\"fold\", onFold);\n cm.on(\"unfold\", onFold);\n cm.on(\"swapDoc\", onChange);\n }\n });\n\n var Pos = CodeMirror.Pos;\n\n function State(options) {\n this.options = options;\n this.from = this.to = 0;\n }\n\n function parseOptions(opts) {\n if (opts === true) opts = {};\n if (opts.gutter == null) opts.gutter = \"CodeMirror-foldgutter\";\n if (opts.indicatorOpen == null) opts.indicatorOpen = \"CodeMirror-foldgutter-open\";\n if (opts.indicatorFolded == null) opts.indicatorFolded = \"CodeMirror-foldgutter-folded\";\n return opts;\n }\n\n function isFolded(cm, line) {\n var marks = cm.findMarks(Pos(line, 0), Pos(line + 1, 0));\n for (var i = 0; i < marks.length; ++i) {\n if (marks[i].__isFold) {\n var fromPos = marks[i].find(-1);\n if (fromPos && fromPos.line === line)\n return marks[i];\n }\n }\n }\n\n function marker(spec) {\n if (typeof spec == \"string\") {\n var elt = document.createElement(\"div\");\n elt.className = spec + \" CodeMirror-guttermarker-subtle\";\n return elt;\n } else {\n return spec.cloneNode(true);\n }\n }\n\n function updateFoldInfo(cm, from, to) {\n var opts = cm.state.foldGutter.options, cur = from - 1;\n var minSize = cm.foldOption(opts, \"minFoldSize\");\n var func = cm.foldOption(opts, \"rangeFinder\");\n // we can reuse the built-in indicator element if its className matches the new state\n var clsFolded = typeof opts.indicatorFolded == \"string\" && classTest(opts.indicatorFolded);\n var clsOpen = typeof opts.indicatorOpen == \"string\" && classTest(opts.indicatorOpen);\n cm.eachLine(from, to, function(line) {\n ++cur;\n var mark = null;\n var old = line.gutterMarkers;\n if (old) old = old[opts.gutter];\n if (isFolded(cm, cur)) {\n if (clsFolded && old && clsFolded.test(old.className)) return;\n mark = marker(opts.indicatorFolded);\n } else {\n var pos = Pos(cur, 0);\n var range = func && func(cm, pos);\n if (range && range.to.line - range.from.line >= minSize) {\n if (clsOpen && old && clsOpen.test(old.className)) return;\n mark = marker(opts.indicatorOpen);\n }\n }\n if (!mark && !old) return;\n cm.setGutterMarker(line, opts.gutter, mark);\n });\n }\n\n // copied from CodeMirror/src/util/dom.js\n function classTest(cls) { return new RegExp(\"(^|\\\\s)\" + cls + \"(?:$|\\\\s)\\\\s*\") }\n\n function updateInViewport(cm) {\n var vp = cm.getViewport(), state = cm.state.foldGutter;\n if (!state) return;\n cm.operation(function() {\n updateFoldInfo(cm, vp.from, vp.to);\n });\n state.from = vp.from; state.to = vp.to;\n }\n\n function onGutterClick(cm, line, gutter) {\n var state = cm.state.foldGutter;\n if (!state) return;\n var opts = state.options;\n if (gutter != opts.gutter) return;\n var folded = isFolded(cm, line);\n if (folded) folded.clear();\n else cm.foldCode(Pos(line, 0), opts);\n }\n\n function onChange(cm) {\n var state = cm.state.foldGutter;\n if (!state) return;\n var opts = state.options;\n state.from = state.to = 0;\n clearTimeout(state.changeUpdate);\n state.changeUpdate = setTimeout(function() { updateInViewport(cm); }, opts.foldOnChangeTimeSpan || 600);\n }\n\n function onViewportChange(cm) {\n var state = cm.state.foldGutter;\n if (!state) return;\n var opts = state.options;\n clearTimeout(state.changeUpdate);\n state.changeUpdate = setTimeout(function() {\n var vp = cm.getViewport();\n if (state.from == state.to || vp.from - state.to > 20 || state.from - vp.to > 20) {\n updateInViewport(cm);\n } else {\n cm.operation(function() {\n if (vp.from < state.from) {\n updateFoldInfo(cm, vp.from, state.from);\n state.from = vp.from;\n }\n if (vp.to > state.to) {\n updateFoldInfo(cm, state.to, vp.to);\n state.to = vp.to;\n }\n });\n }\n }, opts.updateViewportTimeSpan || 400);\n }\n\n function onFold(cm, from) {\n var state = cm.state.foldGutter;\n if (!state) return;\n var line = from.line;\n if (line >= state.from && line < state.to)\n updateFoldInfo(cm, line, line + 1);\n }\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"fold\", \"brace\", function(cm, start) {\n var line = start.line, lineText = cm.getLine(line);\n var tokenType;\n\n function findOpening(openCh) {\n for (var at = start.ch, pass = 0;;) {\n var found = at <= 0 ? -1 : lineText.lastIndexOf(openCh, at - 1);\n if (found == -1) {\n if (pass == 1) break;\n pass = 1;\n at = lineText.length;\n continue;\n }\n if (pass == 1 && found < start.ch) break;\n tokenType = cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1));\n if (!/^(comment|string)/.test(tokenType)) return found + 1;\n at = found - 1;\n }\n }\n\n var startToken = \"{\", endToken = \"}\", startCh = findOpening(\"{\");\n if (startCh == null) {\n startToken = \"[\", endToken = \"]\";\n startCh = findOpening(\"[\");\n }\n\n if (startCh == null) return;\n var count = 1, lastLine = cm.lastLine(), end, endCh;\n outer: for (var i = line; i <= lastLine; ++i) {\n var text = cm.getLine(i), pos = i == line ? startCh : 0;\n for (;;) {\n var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos);\n if (nextOpen < 0) nextOpen = text.length;\n if (nextClose < 0) nextClose = text.length;\n pos = Math.min(nextOpen, nextClose);\n if (pos == text.length) break;\n if (cm.getTokenTypeAt(CodeMirror.Pos(i, pos + 1)) == tokenType) {\n if (pos == nextOpen) ++count;\n else if (!--count) { end = i; endCh = pos; break outer; }\n }\n ++pos;\n }\n }\n if (end == null || line == end) return;\n return {from: CodeMirror.Pos(line, startCh),\n to: CodeMirror.Pos(end, endCh)};\n});\n\nCodeMirror.registerHelper(\"fold\", \"import\", function(cm, start) {\n function hasImport(line) {\n if (line < cm.firstLine() || line > cm.lastLine()) return null;\n var start = cm.getTokenAt(CodeMirror.Pos(line, 1));\n if (!/\\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));\n if (start.type != \"keyword\" || start.string != \"import\") return null;\n // Now find closing semicolon, return its position\n for (var i = line, e = Math.min(cm.lastLine(), line + 10); i <= e; ++i) {\n var text = cm.getLine(i), semi = text.indexOf(\";\");\n if (semi != -1) return {startCh: start.end, end: CodeMirror.Pos(i, semi)};\n }\n }\n\n var startLine = start.line, has = hasImport(startLine), prev;\n if (!has || hasImport(startLine - 1) || ((prev = hasImport(startLine - 2)) && prev.end.line == startLine - 1))\n return null;\n for (var end = has.end;;) {\n var next = hasImport(end.line + 1);\n if (next == null) break;\n end = next.end;\n }\n return {from: cm.clipPos(CodeMirror.Pos(startLine, has.startCh + 1)), to: end};\n});\n\nCodeMirror.registerHelper(\"fold\", \"include\", function(cm, start) {\n function hasInclude(line) {\n if (line < cm.firstLine() || line > cm.lastLine()) return null;\n var start = cm.getTokenAt(CodeMirror.Pos(line, 1));\n if (!/\\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));\n if (start.type == \"meta\" && start.string.slice(0, 8) == \"#include\") return start.start + 8;\n }\n\n var startLine = start.line, has = hasInclude(startLine);\n if (has == null || hasInclude(startLine - 1) != null) return null;\n for (var end = startLine;;) {\n var next = hasInclude(end + 1);\n if (next == null) break;\n ++end;\n }\n return {from: CodeMirror.Pos(startLine, has + 1),\n to: cm.clipPos(CodeMirror.Pos(end))};\n});\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Defines jumpToLine command. Uses dialog.js if present.\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"../dialog/dialog\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"../dialog/dialog\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n function dialog(cm, text, shortText, deflt, f) {\n if (cm.openDialog) cm.openDialog(text, f, {value: deflt, selectValueOnOpen: true});\n else f(prompt(shortText, deflt));\n }\n\n function getJumpDialog(cm) {\n return cm.phrase(\"Jump to line:\") + ' ' + cm.phrase(\"(Use line:column or scroll% syntax)\") + '';\n }\n\n function interpretLine(cm, string) {\n var num = Number(string)\n if (/^[-+]/.test(string)) return cm.getCursor().line + num\n else return num - 1\n }\n\n CodeMirror.commands.jumpToLine = function(cm) {\n var cur = cm.getCursor();\n dialog(cm, getJumpDialog(cm), cm.phrase(\"Jump to line:\"), (cur.line + 1) + \":\" + cur.ch, function(posStr) {\n if (!posStr) return;\n\n var match;\n if (match = /^\\s*([\\+\\-]?\\d+)\\s*\\:\\s*(\\d+)\\s*$/.exec(posStr)) {\n cm.setCursor(interpretLine(cm, match[1]), Number(match[2]))\n } else if (match = /^\\s*([\\+\\-]?\\d+(\\.\\d+)?)\\%\\s*/.exec(posStr)) {\n var line = Math.round(cm.lineCount() * Number(match[1]) / 100);\n if (/^[-+]/.test(match[1])) line = cur.line + line + 1;\n cm.setCursor(line - 1, cur.ch);\n } else if (match = /^\\s*\\:?\\s*([\\+\\-]?\\d+)\\s*/.exec(posStr)) {\n cm.setCursor(interpretLine(cm, match[1]), cur.ch);\n }\n });\n };\n\n CodeMirror.keyMap[\"default\"][\"Alt-G\"] = \"jumpToLine\";\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// A rough approximation of Sublime Text's keybindings\n// Depends on addon/search/searchcursor.js and optionally addon/dialog/dialogs.js\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../lib/codemirror\"), require(\"../addon/search/searchcursor\"), require(\"../addon/edit/matchbrackets\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../lib/codemirror\", \"../addon/search/searchcursor\", \"../addon/edit/matchbrackets\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n var cmds = CodeMirror.commands;\n var Pos = CodeMirror.Pos;\n\n // This is not exactly Sublime's algorithm. I couldn't make heads or tails of that.\n function findPosSubword(doc, start, dir) {\n if (dir < 0 && start.ch == 0) return doc.clipPos(Pos(start.line - 1));\n var line = doc.getLine(start.line);\n if (dir > 0 && start.ch >= line.length) return doc.clipPos(Pos(start.line + 1, 0));\n var state = \"start\", type, startPos = start.ch;\n for (var pos = startPos, e = dir < 0 ? 0 : line.length, i = 0; pos != e; pos += dir, i++) {\n var next = line.charAt(dir < 0 ? pos - 1 : pos);\n var cat = next != \"_\" && CodeMirror.isWordChar(next) ? \"w\" : \"o\";\n if (cat == \"w\" && next.toUpperCase() == next) cat = \"W\";\n if (state == \"start\") {\n if (cat != \"o\") { state = \"in\"; type = cat; }\n else startPos = pos + dir\n } else if (state == \"in\") {\n if (type != cat) {\n if (type == \"w\" && cat == \"W\" && dir < 0) pos--;\n if (type == \"W\" && cat == \"w\" && dir > 0) { // From uppercase to lowercase\n if (pos == startPos + 1) { type = \"w\"; continue; }\n else pos--;\n }\n break;\n }\n }\n }\n return Pos(start.line, pos);\n }\n\n function moveSubword(cm, dir) {\n cm.extendSelectionsBy(function(range) {\n if (cm.display.shift || cm.doc.extend || range.empty())\n return findPosSubword(cm.doc, range.head, dir);\n else\n return dir < 0 ? range.from() : range.to();\n });\n }\n\n cmds.goSubwordLeft = function(cm) { moveSubword(cm, -1); };\n cmds.goSubwordRight = function(cm) { moveSubword(cm, 1); };\n\n cmds.scrollLineUp = function(cm) {\n var info = cm.getScrollInfo();\n if (!cm.somethingSelected()) {\n var visibleBottomLine = cm.lineAtHeight(info.top + info.clientHeight, \"local\");\n if (cm.getCursor().line >= visibleBottomLine)\n cm.execCommand(\"goLineUp\");\n }\n cm.scrollTo(null, info.top - cm.defaultTextHeight());\n };\n cmds.scrollLineDown = function(cm) {\n var info = cm.getScrollInfo();\n if (!cm.somethingSelected()) {\n var visibleTopLine = cm.lineAtHeight(info.top, \"local\")+1;\n if (cm.getCursor().line <= visibleTopLine)\n cm.execCommand(\"goLineDown\");\n }\n cm.scrollTo(null, info.top + cm.defaultTextHeight());\n };\n\n cmds.splitSelectionByLine = function(cm) {\n var ranges = cm.listSelections(), lineRanges = [];\n for (var i = 0; i < ranges.length; i++) {\n var from = ranges[i].from(), to = ranges[i].to();\n for (var line = from.line; line <= to.line; ++line)\n if (!(to.line > from.line && line == to.line && to.ch == 0))\n lineRanges.push({anchor: line == from.line ? from : Pos(line, 0),\n head: line == to.line ? to : Pos(line)});\n }\n cm.setSelections(lineRanges, 0);\n };\n\n cmds.singleSelectionTop = function(cm) {\n var range = cm.listSelections()[0];\n cm.setSelection(range.anchor, range.head, {scroll: false});\n };\n\n cmds.selectLine = function(cm) {\n var ranges = cm.listSelections(), extended = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n extended.push({anchor: Pos(range.from().line, 0),\n head: Pos(range.to().line + 1, 0)});\n }\n cm.setSelections(extended);\n };\n\n function insertLine(cm, above) {\n if (cm.isReadOnly()) return CodeMirror.Pass\n cm.operation(function() {\n var len = cm.listSelections().length, newSelection = [], last = -1;\n for (var i = 0; i < len; i++) {\n var head = cm.listSelections()[i].head;\n if (head.line <= last) continue;\n var at = Pos(head.line + (above ? 0 : 1), 0);\n cm.replaceRange(\"\\n\", at, null, \"+insertLine\");\n cm.indentLine(at.line, null, true);\n newSelection.push({head: at, anchor: at});\n last = head.line + 1;\n }\n cm.setSelections(newSelection);\n });\n cm.execCommand(\"indentAuto\");\n }\n\n cmds.insertLineAfter = function(cm) { return insertLine(cm, false); };\n\n cmds.insertLineBefore = function(cm) { return insertLine(cm, true); };\n\n function wordAt(cm, pos) {\n var start = pos.ch, end = start, line = cm.getLine(pos.line);\n while (start && CodeMirror.isWordChar(line.charAt(start - 1))) --start;\n while (end < line.length && CodeMirror.isWordChar(line.charAt(end))) ++end;\n return {from: Pos(pos.line, start), to: Pos(pos.line, end), word: line.slice(start, end)};\n }\n\n cmds.selectNextOccurrence = function(cm) {\n var from = cm.getCursor(\"from\"), to = cm.getCursor(\"to\");\n var fullWord = cm.state.sublimeFindFullWord == cm.doc.sel;\n if (CodeMirror.cmpPos(from, to) == 0) {\n var word = wordAt(cm, from);\n if (!word.word) return;\n cm.setSelection(word.from, word.to);\n fullWord = true;\n } else {\n var text = cm.getRange(from, to);\n var query = fullWord ? new RegExp(\"\\\\b\" + text + \"\\\\b\") : text;\n var cur = cm.getSearchCursor(query, to);\n var found = cur.findNext();\n if (!found) {\n cur = cm.getSearchCursor(query, Pos(cm.firstLine(), 0));\n found = cur.findNext();\n }\n if (!found || isSelectedRange(cm.listSelections(), cur.from(), cur.to())) return\n cm.addSelection(cur.from(), cur.to());\n }\n if (fullWord)\n cm.state.sublimeFindFullWord = cm.doc.sel;\n };\n\n cmds.skipAndSelectNextOccurrence = function(cm) {\n var prevAnchor = cm.getCursor(\"anchor\"), prevHead = cm.getCursor(\"head\");\n cmds.selectNextOccurrence(cm);\n if (CodeMirror.cmpPos(prevAnchor, prevHead) != 0) {\n cm.doc.setSelections(cm.doc.listSelections()\n .filter(function (sel) {\n return sel.anchor != prevAnchor || sel.head != prevHead;\n }));\n }\n }\n\n function addCursorToSelection(cm, dir) {\n var ranges = cm.listSelections(), newRanges = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n var newAnchor = cm.findPosV(\n range.anchor, dir, \"line\", range.anchor.goalColumn);\n var newHead = cm.findPosV(\n range.head, dir, \"line\", range.head.goalColumn);\n newAnchor.goalColumn = range.anchor.goalColumn != null ?\n range.anchor.goalColumn : cm.cursorCoords(range.anchor, \"div\").left;\n newHead.goalColumn = range.head.goalColumn != null ?\n range.head.goalColumn : cm.cursorCoords(range.head, \"div\").left;\n var newRange = {anchor: newAnchor, head: newHead};\n newRanges.push(range);\n newRanges.push(newRange);\n }\n cm.setSelections(newRanges);\n }\n cmds.addCursorToPrevLine = function(cm) { addCursorToSelection(cm, -1); };\n cmds.addCursorToNextLine = function(cm) { addCursorToSelection(cm, 1); };\n\n function isSelectedRange(ranges, from, to) {\n for (var i = 0; i < ranges.length; i++)\n if (CodeMirror.cmpPos(ranges[i].from(), from) == 0 &&\n CodeMirror.cmpPos(ranges[i].to(), to) == 0) return true\n return false\n }\n\n var mirror = \"(){}[]\";\n function selectBetweenBrackets(cm) {\n var ranges = cm.listSelections(), newRanges = []\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i], pos = range.head, opening = cm.scanForBracket(pos, -1);\n if (!opening) return false;\n for (;;) {\n var closing = cm.scanForBracket(pos, 1);\n if (!closing) return false;\n if (closing.ch == mirror.charAt(mirror.indexOf(opening.ch) + 1)) {\n var startPos = Pos(opening.pos.line, opening.pos.ch + 1);\n if (CodeMirror.cmpPos(startPos, range.from()) == 0 &&\n CodeMirror.cmpPos(closing.pos, range.to()) == 0) {\n opening = cm.scanForBracket(opening.pos, -1);\n if (!opening) return false;\n } else {\n newRanges.push({anchor: startPos, head: closing.pos});\n break;\n }\n }\n pos = Pos(closing.pos.line, closing.pos.ch + 1);\n }\n }\n cm.setSelections(newRanges);\n return true;\n }\n\n cmds.selectScope = function(cm) {\n selectBetweenBrackets(cm) || cm.execCommand(\"selectAll\");\n };\n cmds.selectBetweenBrackets = function(cm) {\n if (!selectBetweenBrackets(cm)) return CodeMirror.Pass;\n };\n\n function puncType(type) {\n return !type ? null : /\\bpunctuation\\b/.test(type) ? type : undefined\n }\n\n cmds.goToBracket = function(cm) {\n cm.extendSelectionsBy(function(range) {\n var next = cm.scanForBracket(range.head, 1, puncType(cm.getTokenTypeAt(range.head)));\n if (next && CodeMirror.cmpPos(next.pos, range.head) != 0) return next.pos;\n var prev = cm.scanForBracket(range.head, -1, puncType(cm.getTokenTypeAt(Pos(range.head.line, range.head.ch + 1))));\n return prev && Pos(prev.pos.line, prev.pos.ch + 1) || range.head;\n });\n };\n\n cmds.swapLineUp = function(cm) {\n if (cm.isReadOnly()) return CodeMirror.Pass\n var ranges = cm.listSelections(), linesToMove = [], at = cm.firstLine() - 1, newSels = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i], from = range.from().line - 1, to = range.to().line;\n newSels.push({anchor: Pos(range.anchor.line - 1, range.anchor.ch),\n head: Pos(range.head.line - 1, range.head.ch)});\n if (range.to().ch == 0 && !range.empty()) --to;\n if (from > at) linesToMove.push(from, to);\n else if (linesToMove.length) linesToMove[linesToMove.length - 1] = to;\n at = to;\n }\n cm.operation(function() {\n for (var i = 0; i < linesToMove.length; i += 2) {\n var from = linesToMove[i], to = linesToMove[i + 1];\n var line = cm.getLine(from);\n cm.replaceRange(\"\", Pos(from, 0), Pos(from + 1, 0), \"+swapLine\");\n if (to > cm.lastLine())\n cm.replaceRange(\"\\n\" + line, Pos(cm.lastLine()), null, \"+swapLine\");\n else\n cm.replaceRange(line + \"\\n\", Pos(to, 0), null, \"+swapLine\");\n }\n cm.setSelections(newSels);\n cm.scrollIntoView();\n });\n };\n\n cmds.swapLineDown = function(cm) {\n if (cm.isReadOnly()) return CodeMirror.Pass\n var ranges = cm.listSelections(), linesToMove = [], at = cm.lastLine() + 1;\n for (var i = ranges.length - 1; i >= 0; i--) {\n var range = ranges[i], from = range.to().line + 1, to = range.from().line;\n if (range.to().ch == 0 && !range.empty()) from--;\n if (from < at) linesToMove.push(from, to);\n else if (linesToMove.length) linesToMove[linesToMove.length - 1] = to;\n at = to;\n }\n cm.operation(function() {\n for (var i = linesToMove.length - 2; i >= 0; i -= 2) {\n var from = linesToMove[i], to = linesToMove[i + 1];\n var line = cm.getLine(from);\n if (from == cm.lastLine())\n cm.replaceRange(\"\", Pos(from - 1), Pos(from), \"+swapLine\");\n else\n cm.replaceRange(\"\", Pos(from, 0), Pos(from + 1, 0), \"+swapLine\");\n cm.replaceRange(line + \"\\n\", Pos(to, 0), null, \"+swapLine\");\n }\n cm.scrollIntoView();\n });\n };\n\n cmds.toggleCommentIndented = function(cm) {\n cm.toggleComment({ indent: true });\n }\n\n cmds.joinLines = function(cm) {\n var ranges = cm.listSelections(), joined = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i], from = range.from();\n var start = from.line, end = range.to().line;\n while (i < ranges.length - 1 && ranges[i + 1].from().line == end)\n end = ranges[++i].to().line;\n joined.push({start: start, end: end, anchor: !range.empty() && from});\n }\n cm.operation(function() {\n var offset = 0, ranges = [];\n for (var i = 0; i < joined.length; i++) {\n var obj = joined[i];\n var anchor = obj.anchor && Pos(obj.anchor.line - offset, obj.anchor.ch), head;\n for (var line = obj.start; line <= obj.end; line++) {\n var actual = line - offset;\n if (line == obj.end) head = Pos(actual, cm.getLine(actual).length + 1);\n if (actual < cm.lastLine()) {\n cm.replaceRange(\" \", Pos(actual), Pos(actual + 1, /^\\s*/.exec(cm.getLine(actual + 1))[0].length));\n ++offset;\n }\n }\n ranges.push({anchor: anchor || head, head: head});\n }\n cm.setSelections(ranges, 0);\n });\n };\n\n cmds.duplicateLine = function(cm) {\n cm.operation(function() {\n var rangeCount = cm.listSelections().length;\n for (var i = 0; i < rangeCount; i++) {\n var range = cm.listSelections()[i];\n if (range.empty())\n cm.replaceRange(cm.getLine(range.head.line) + \"\\n\", Pos(range.head.line, 0));\n else\n cm.replaceRange(cm.getRange(range.from(), range.to()), range.from());\n }\n cm.scrollIntoView();\n });\n };\n\n\n function sortLines(cm, caseSensitive) {\n if (cm.isReadOnly()) return CodeMirror.Pass\n var ranges = cm.listSelections(), toSort = [], selected;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (range.empty()) continue;\n var from = range.from().line, to = range.to().line;\n while (i < ranges.length - 1 && ranges[i + 1].from().line == to)\n to = ranges[++i].to().line;\n if (!ranges[i].to().ch) to--;\n toSort.push(from, to);\n }\n if (toSort.length) selected = true;\n else toSort.push(cm.firstLine(), cm.lastLine());\n\n cm.operation(function() {\n var ranges = [];\n for (var i = 0; i < toSort.length; i += 2) {\n var from = toSort[i], to = toSort[i + 1];\n var start = Pos(from, 0), end = Pos(to);\n var lines = cm.getRange(start, end, false);\n if (caseSensitive)\n lines.sort();\n else\n lines.sort(function(a, b) {\n var au = a.toUpperCase(), bu = b.toUpperCase();\n if (au != bu) { a = au; b = bu; }\n return a < b ? -1 : a == b ? 0 : 1;\n });\n cm.replaceRange(lines, start, end);\n if (selected) ranges.push({anchor: start, head: Pos(to + 1, 0)});\n }\n if (selected) cm.setSelections(ranges, 0);\n });\n }\n\n cmds.sortLines = function(cm) { sortLines(cm, true); };\n cmds.sortLinesInsensitive = function(cm) { sortLines(cm, false); };\n\n cmds.nextBookmark = function(cm) {\n var marks = cm.state.sublimeBookmarks;\n if (marks) while (marks.length) {\n var current = marks.shift();\n var found = current.find();\n if (found) {\n marks.push(current);\n return cm.setSelection(found.from, found.to);\n }\n }\n };\n\n cmds.prevBookmark = function(cm) {\n var marks = cm.state.sublimeBookmarks;\n if (marks) while (marks.length) {\n marks.unshift(marks.pop());\n var found = marks[marks.length - 1].find();\n if (!found)\n marks.pop();\n else\n return cm.setSelection(found.from, found.to);\n }\n };\n\n cmds.toggleBookmark = function(cm) {\n var ranges = cm.listSelections();\n var marks = cm.state.sublimeBookmarks || (cm.state.sublimeBookmarks = []);\n for (var i = 0; i < ranges.length; i++) {\n var from = ranges[i].from(), to = ranges[i].to();\n var found = ranges[i].empty() ? cm.findMarksAt(from) : cm.findMarks(from, to);\n for (var j = 0; j < found.length; j++) {\n if (found[j].sublimeBookmark) {\n found[j].clear();\n for (var k = 0; k < marks.length; k++)\n if (marks[k] == found[j])\n marks.splice(k--, 1);\n break;\n }\n }\n if (j == found.length)\n marks.push(cm.markText(from, to, {sublimeBookmark: true, clearWhenEmpty: false}));\n }\n };\n\n cmds.clearBookmarks = function(cm) {\n var marks = cm.state.sublimeBookmarks;\n if (marks) for (var i = 0; i < marks.length; i++) marks[i].clear();\n marks.length = 0;\n };\n\n cmds.selectBookmarks = function(cm) {\n var marks = cm.state.sublimeBookmarks, ranges = [];\n if (marks) for (var i = 0; i < marks.length; i++) {\n var found = marks[i].find();\n if (!found)\n marks.splice(i--, 0);\n else\n ranges.push({anchor: found.from, head: found.to});\n }\n if (ranges.length)\n cm.setSelections(ranges, 0);\n };\n\n function modifyWordOrSelection(cm, mod) {\n cm.operation(function() {\n var ranges = cm.listSelections(), indices = [], replacements = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (range.empty()) { indices.push(i); replacements.push(\"\"); }\n else replacements.push(mod(cm.getRange(range.from(), range.to())));\n }\n cm.replaceSelections(replacements, \"around\", \"case\");\n for (var i = indices.length - 1, at; i >= 0; i--) {\n var range = ranges[indices[i]];\n if (at && CodeMirror.cmpPos(range.head, at) > 0) continue;\n var word = wordAt(cm, range.head);\n at = word.from;\n cm.replaceRange(mod(word.word), word.from, word.to);\n }\n });\n }\n\n cmds.smartBackspace = function(cm) {\n if (cm.somethingSelected()) return CodeMirror.Pass;\n\n cm.operation(function() {\n var cursors = cm.listSelections();\n var indentUnit = cm.getOption(\"indentUnit\");\n\n for (var i = cursors.length - 1; i >= 0; i--) {\n var cursor = cursors[i].head;\n var toStartOfLine = cm.getRange({line: cursor.line, ch: 0}, cursor);\n var column = CodeMirror.countColumn(toStartOfLine, null, cm.getOption(\"tabSize\"));\n\n // Delete by one character by default\n var deletePos = cm.findPosH(cursor, -1, \"char\", false);\n\n if (toStartOfLine && !/\\S/.test(toStartOfLine) && column % indentUnit == 0) {\n var prevIndent = new Pos(cursor.line,\n CodeMirror.findColumn(toStartOfLine, column - indentUnit, indentUnit));\n\n // Smart delete only if we found a valid prevIndent location\n if (prevIndent.ch != cursor.ch) deletePos = prevIndent;\n }\n\n cm.replaceRange(\"\", deletePos, cursor, \"+delete\");\n }\n });\n };\n\n cmds.delLineRight = function(cm) {\n cm.operation(function() {\n var ranges = cm.listSelections();\n for (var i = ranges.length - 1; i >= 0; i--)\n cm.replaceRange(\"\", ranges[i].anchor, Pos(ranges[i].to().line), \"+delete\");\n cm.scrollIntoView();\n });\n };\n\n cmds.upcaseAtCursor = function(cm) {\n modifyWordOrSelection(cm, function(str) { return str.toUpperCase(); });\n };\n cmds.downcaseAtCursor = function(cm) {\n modifyWordOrSelection(cm, function(str) { return str.toLowerCase(); });\n };\n\n cmds.setSublimeMark = function(cm) {\n if (cm.state.sublimeMark) cm.state.sublimeMark.clear();\n cm.state.sublimeMark = cm.setBookmark(cm.getCursor());\n };\n cmds.selectToSublimeMark = function(cm) {\n var found = cm.state.sublimeMark && cm.state.sublimeMark.find();\n if (found) cm.setSelection(cm.getCursor(), found);\n };\n cmds.deleteToSublimeMark = function(cm) {\n var found = cm.state.sublimeMark && cm.state.sublimeMark.find();\n if (found) {\n var from = cm.getCursor(), to = found;\n if (CodeMirror.cmpPos(from, to) > 0) { var tmp = to; to = from; from = tmp; }\n cm.state.sublimeKilled = cm.getRange(from, to);\n cm.replaceRange(\"\", from, to);\n }\n };\n cmds.swapWithSublimeMark = function(cm) {\n var found = cm.state.sublimeMark && cm.state.sublimeMark.find();\n if (found) {\n cm.state.sublimeMark.clear();\n cm.state.sublimeMark = cm.setBookmark(cm.getCursor());\n cm.setCursor(found);\n }\n };\n cmds.sublimeYank = function(cm) {\n if (cm.state.sublimeKilled != null)\n cm.replaceSelection(cm.state.sublimeKilled, null, \"paste\");\n };\n\n cmds.showInCenter = function(cm) {\n var pos = cm.cursorCoords(null, \"local\");\n cm.scrollTo(null, (pos.top + pos.bottom) / 2 - cm.getScrollInfo().clientHeight / 2);\n };\n\n function getTarget(cm) {\n var from = cm.getCursor(\"from\"), to = cm.getCursor(\"to\");\n if (CodeMirror.cmpPos(from, to) == 0) {\n var word = wordAt(cm, from);\n if (!word.word) return;\n from = word.from;\n to = word.to;\n }\n return {from: from, to: to, query: cm.getRange(from, to), word: word};\n }\n\n function findAndGoTo(cm, forward) {\n var target = getTarget(cm);\n if (!target) return;\n var query = target.query;\n var cur = cm.getSearchCursor(query, forward ? target.to : target.from);\n\n if (forward ? cur.findNext() : cur.findPrevious()) {\n cm.setSelection(cur.from(), cur.to());\n } else {\n cur = cm.getSearchCursor(query, forward ? Pos(cm.firstLine(), 0)\n : cm.clipPos(Pos(cm.lastLine())));\n if (forward ? cur.findNext() : cur.findPrevious())\n cm.setSelection(cur.from(), cur.to());\n else if (target.word)\n cm.setSelection(target.from, target.to);\n }\n };\n cmds.findUnder = function(cm) { findAndGoTo(cm, true); };\n cmds.findUnderPrevious = function(cm) { findAndGoTo(cm,false); };\n cmds.findAllUnder = function(cm) {\n var target = getTarget(cm);\n if (!target) return;\n var cur = cm.getSearchCursor(target.query);\n var matches = [];\n var primaryIndex = -1;\n while (cur.findNext()) {\n matches.push({anchor: cur.from(), head: cur.to()});\n if (cur.from().line <= target.from.line && cur.from().ch <= target.from.ch)\n primaryIndex++;\n }\n cm.setSelections(matches, primaryIndex);\n };\n\n\n var keyMap = CodeMirror.keyMap;\n keyMap.macSublime = {\n \"Cmd-Left\": \"goLineStartSmart\",\n \"Shift-Tab\": \"indentLess\",\n \"Shift-Ctrl-K\": \"deleteLine\",\n \"Alt-Q\": \"wrapLines\",\n \"Ctrl-Left\": \"goSubwordLeft\",\n \"Ctrl-Right\": \"goSubwordRight\",\n \"Ctrl-Alt-Up\": \"scrollLineUp\",\n \"Ctrl-Alt-Down\": \"scrollLineDown\",\n \"Cmd-L\": \"selectLine\",\n \"Shift-Cmd-L\": \"splitSelectionByLine\",\n \"Esc\": \"singleSelectionTop\",\n \"Cmd-Enter\": \"insertLineAfter\",\n \"Shift-Cmd-Enter\": \"insertLineBefore\",\n \"Cmd-D\": \"selectNextOccurrence\",\n \"Shift-Cmd-Space\": \"selectScope\",\n \"Shift-Cmd-M\": \"selectBetweenBrackets\",\n \"Cmd-M\": \"goToBracket\",\n \"Cmd-Ctrl-Up\": \"swapLineUp\",\n \"Cmd-Ctrl-Down\": \"swapLineDown\",\n \"Cmd-/\": \"toggleCommentIndented\",\n \"Cmd-J\": \"joinLines\",\n \"Shift-Cmd-D\": \"duplicateLine\",\n \"F5\": \"sortLines\",\n \"Cmd-F5\": \"sortLinesInsensitive\",\n \"F2\": \"nextBookmark\",\n \"Shift-F2\": \"prevBookmark\",\n \"Cmd-F2\": \"toggleBookmark\",\n \"Shift-Cmd-F2\": \"clearBookmarks\",\n \"Alt-F2\": \"selectBookmarks\",\n \"Backspace\": \"smartBackspace\",\n \"Cmd-K Cmd-D\": \"skipAndSelectNextOccurrence\",\n \"Cmd-K Cmd-K\": \"delLineRight\",\n \"Cmd-K Cmd-U\": \"upcaseAtCursor\",\n \"Cmd-K Cmd-L\": \"downcaseAtCursor\",\n \"Cmd-K Cmd-Space\": \"setSublimeMark\",\n \"Cmd-K Cmd-A\": \"selectToSublimeMark\",\n \"Cmd-K Cmd-W\": \"deleteToSublimeMark\",\n \"Cmd-K Cmd-X\": \"swapWithSublimeMark\",\n \"Cmd-K Cmd-Y\": \"sublimeYank\",\n \"Cmd-K Cmd-C\": \"showInCenter\",\n \"Cmd-K Cmd-G\": \"clearBookmarks\",\n \"Cmd-K Cmd-Backspace\": \"delLineLeft\",\n \"Cmd-K Cmd-1\": \"foldAll\",\n \"Cmd-K Cmd-0\": \"unfoldAll\",\n \"Cmd-K Cmd-J\": \"unfoldAll\",\n \"Ctrl-Shift-Up\": \"addCursorToPrevLine\",\n \"Ctrl-Shift-Down\": \"addCursorToNextLine\",\n \"Cmd-F3\": \"findUnder\",\n \"Shift-Cmd-F3\": \"findUnderPrevious\",\n \"Alt-F3\": \"findAllUnder\",\n \"Shift-Cmd-[\": \"fold\",\n \"Shift-Cmd-]\": \"unfold\",\n \"Cmd-I\": \"findIncremental\",\n \"Shift-Cmd-I\": \"findIncrementalReverse\",\n \"Cmd-H\": \"replace\",\n \"F3\": \"findNext\",\n \"Shift-F3\": \"findPrev\",\n \"fallthrough\": \"macDefault\"\n };\n CodeMirror.normalizeKeyMap(keyMap.macSublime);\n\n keyMap.pcSublime = {\n \"Shift-Tab\": \"indentLess\",\n \"Shift-Ctrl-K\": \"deleteLine\",\n \"Alt-Q\": \"wrapLines\",\n \"Ctrl-T\": \"transposeChars\",\n \"Alt-Left\": \"goSubwordLeft\",\n \"Alt-Right\": \"goSubwordRight\",\n \"Ctrl-Up\": \"scrollLineUp\",\n \"Ctrl-Down\": \"scrollLineDown\",\n \"Ctrl-L\": \"selectLine\",\n \"Shift-Ctrl-L\": \"splitSelectionByLine\",\n \"Esc\": \"singleSelectionTop\",\n \"Ctrl-Enter\": \"insertLineAfter\",\n \"Shift-Ctrl-Enter\": \"insertLineBefore\",\n \"Ctrl-D\": \"selectNextOccurrence\",\n \"Shift-Ctrl-Space\": \"selectScope\",\n \"Shift-Ctrl-M\": \"selectBetweenBrackets\",\n \"Ctrl-M\": \"goToBracket\",\n \"Shift-Ctrl-Up\": \"swapLineUp\",\n \"Shift-Ctrl-Down\": \"swapLineDown\",\n \"Ctrl-/\": \"toggleCommentIndented\",\n \"Ctrl-J\": \"joinLines\",\n \"Shift-Ctrl-D\": \"duplicateLine\",\n \"F9\": \"sortLines\",\n \"Ctrl-F9\": \"sortLinesInsensitive\",\n \"F2\": \"nextBookmark\",\n \"Shift-F2\": \"prevBookmark\",\n \"Ctrl-F2\": \"toggleBookmark\",\n \"Shift-Ctrl-F2\": \"clearBookmarks\",\n \"Alt-F2\": \"selectBookmarks\",\n \"Backspace\": \"smartBackspace\",\n \"Ctrl-K Ctrl-D\": \"skipAndSelectNextOccurrence\",\n \"Ctrl-K Ctrl-K\": \"delLineRight\",\n \"Ctrl-K Ctrl-U\": \"upcaseAtCursor\",\n \"Ctrl-K Ctrl-L\": \"downcaseAtCursor\",\n \"Ctrl-K Ctrl-Space\": \"setSublimeMark\",\n \"Ctrl-K Ctrl-A\": \"selectToSublimeMark\",\n \"Ctrl-K Ctrl-W\": \"deleteToSublimeMark\",\n \"Ctrl-K Ctrl-X\": \"swapWithSublimeMark\",\n \"Ctrl-K Ctrl-Y\": \"sublimeYank\",\n \"Ctrl-K Ctrl-C\": \"showInCenter\",\n \"Ctrl-K Ctrl-G\": \"clearBookmarks\",\n \"Ctrl-K Ctrl-Backspace\": \"delLineLeft\",\n \"Ctrl-K Ctrl-1\": \"foldAll\",\n \"Ctrl-K Ctrl-0\": \"unfoldAll\",\n \"Ctrl-K Ctrl-J\": \"unfoldAll\",\n \"Ctrl-Alt-Up\": \"addCursorToPrevLine\",\n \"Ctrl-Alt-Down\": \"addCursorToNextLine\",\n \"Ctrl-F3\": \"findUnder\",\n \"Shift-Ctrl-F3\": \"findUnderPrevious\",\n \"Alt-F3\": \"findAllUnder\",\n \"Shift-Ctrl-[\": \"fold\",\n \"Shift-Ctrl-]\": \"unfold\",\n \"Ctrl-I\": \"findIncremental\",\n \"Shift-Ctrl-I\": \"findIncrementalReverse\",\n \"Ctrl-H\": \"replace\",\n \"F3\": \"findNext\",\n \"Shift-F3\": \"findPrev\",\n \"fallthrough\": \"pcDefault\"\n };\n CodeMirror.normalizeKeyMap(keyMap.pcSublime);\n\n var mac = keyMap.default == keyMap.macDefault;\n keyMap.sublime = mac ? keyMap.macSublime : keyMap.pcSublime;\n});\n","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = Argument;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _TypeLink = _interopRequireDefault(require(\"./TypeLink\"));\n\nvar _DefaultValue = _interopRequireDefault(require(\"./DefaultValue\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Copyright (c) 2019 GraphQL Contributors.\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 */\nfunction Argument({\n arg,\n onClickType,\n showDefaultValue\n}) {\n return _react.default.createElement(\"span\", {\n className: \"arg\"\n }, _react.default.createElement(\"span\", {\n className: \"arg-name\"\n }, arg.name), ': ', _react.default.createElement(_TypeLink.default, {\n type: arg.type,\n onClick: onClickType\n }), showDefaultValue !== false && _react.default.createElement(_DefaultValue.default, {\n field: arg\n }));\n}\n\nArgument.propTypes = {\n arg: _propTypes.default.object.isRequired,\n onClickType: _propTypes.default.func.isRequired,\n showDefaultValue: _propTypes.default.bool\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _markdownIt = _interopRequireDefault(require(\"markdown-it\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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\nconst md = new _markdownIt.default();\n\nclass MarkdownContent extends _react.default.Component {\n shouldComponentUpdate(nextProps) {\n return this.props.markdown !== nextProps.markdown;\n }\n\n render() {\n const markdown = this.props.markdown;\n\n if (!markdown) {\n return _react.default.createElement(\"div\", null);\n }\n\n return _react.default.createElement(\"div\", {\n className: this.props.className,\n dangerouslySetInnerHTML: {\n __html: md.render(markdown)\n }\n });\n }\n\n}\n\nexports.default = MarkdownContent;\n\n_defineProperty(MarkdownContent, \"propTypes\", {\n markdown: _propTypes.default.string,\n className: _propTypes.default.string\n});","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","import _extends from \"@babel/runtime/helpers/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport * as React from 'react';\nimport warning from 'warning';\nimport { ManagerReferenceNodeSetterContext } from './Manager';\nimport { safeInvoke, unwrapArray, setRef } from './utils';\n\nvar InnerReference =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(InnerReference, _React$Component);\n\n function InnerReference() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"refHandler\", function (node) {\n setRef(_this.props.innerRef, node);\n safeInvoke(_this.props.setReferenceNode, node);\n });\n\n return _this;\n }\n\n var _proto = InnerReference.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n setRef(this.props.innerRef, null);\n };\n\n _proto.render = function render() {\n warning(Boolean(this.props.setReferenceNode), '`Reference` should not be used outside of a `Manager` component.');\n return unwrapArray(this.props.children)({\n ref: this.refHandler\n });\n };\n\n return InnerReference;\n}(React.Component);\n\nexport default function Reference(props) {\n return React.createElement(ManagerReferenceNodeSetterContext.Consumer, null, function (setReferenceNode) {\n return React.createElement(InnerReference, _extends({\n setReferenceNode: setReferenceNode\n }, props));\n });\n}","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * var result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return !isNaN(date);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMilliseconds from '../addMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_MINUTE = 60000;\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * var result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\n\nexport default function addMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_MINUTE);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMilliseconds from '../addMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the hours added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * var result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\n\nexport default function addHours(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_HOUR);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addDays from '../addDays/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * var result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\n\nexport default function addWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n var days = amount * 7;\n return addDays(dirtyDate, days);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMonths from '../addMonths/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * var result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\n\nexport default function addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar sizerStyle = {\n\tposition: 'absolute',\n\ttop: 0,\n\tleft: 0,\n\tvisibility: 'hidden',\n\theight: 0,\n\toverflow: 'scroll',\n\twhiteSpace: 'pre'\n};\n\nvar INPUT_PROPS_BLACKLIST = ['extraWidth', 'injectStyles', 'inputClassName', 'inputRef', 'inputStyle', 'minWidth', 'onAutosize', 'placeholderIsMinWidth'];\n\nvar cleanInputProps = function cleanInputProps(inputProps) {\n\tINPUT_PROPS_BLACKLIST.forEach(function (field) {\n\t\treturn delete inputProps[field];\n\t});\n\treturn inputProps;\n};\n\nvar copyStyles = function copyStyles(styles, node) {\n\tnode.style.fontSize = styles.fontSize;\n\tnode.style.fontFamily = styles.fontFamily;\n\tnode.style.fontWeight = styles.fontWeight;\n\tnode.style.fontStyle = styles.fontStyle;\n\tnode.style.letterSpacing = styles.letterSpacing;\n\tnode.style.textTransform = styles.textTransform;\n};\n\nvar isIE = typeof window !== 'undefined' && window.navigator ? /MSIE |Trident\\/|Edge\\//.test(window.navigator.userAgent) : false;\n\nvar generateId = function generateId() {\n\t// we only need an auto-generated ID for stylesheet injection, which is only\n\t// used for IE. so if the browser is not IE, this should return undefined.\n\treturn isIE ? '_' + Math.random().toString(36).substr(2, 12) : undefined;\n};\n\nvar AutosizeInput = function (_Component) {\n\t_inherits(AutosizeInput, _Component);\n\n\tfunction AutosizeInput(props) {\n\t\t_classCallCheck(this, AutosizeInput);\n\n\t\tvar _this = _possibleConstructorReturn(this, (AutosizeInput.__proto__ || Object.getPrototypeOf(AutosizeInput)).call(this, props));\n\n\t\t_this.inputRef = function (el) {\n\t\t\t_this.input = el;\n\t\t\tif (typeof _this.props.inputRef === 'function') {\n\t\t\t\t_this.props.inputRef(el);\n\t\t\t}\n\t\t};\n\n\t\t_this.placeHolderSizerRef = function (el) {\n\t\t\t_this.placeHolderSizer = el;\n\t\t};\n\n\t\t_this.sizerRef = function (el) {\n\t\t\t_this.sizer = el;\n\t\t};\n\n\t\t_this.state = {\n\t\t\tinputWidth: props.minWidth,\n\t\t\tinputId: props.id || generateId()\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(AutosizeInput, [{\n\t\tkey: 'componentDidMount',\n\t\tvalue: function componentDidMount() {\n\t\t\tthis.mounted = true;\n\t\t\tthis.copyInputStyles();\n\t\t\tthis.updateInputWidth();\n\t\t}\n\t}, {\n\t\tkey: 'UNSAFE_componentWillReceiveProps',\n\t\tvalue: function UNSAFE_componentWillReceiveProps(nextProps) {\n\t\t\tvar id = nextProps.id;\n\n\t\t\tif (id !== this.props.id) {\n\t\t\t\tthis.setState({ inputId: id || generateId() });\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'componentDidUpdate',\n\t\tvalue: function componentDidUpdate(prevProps, prevState) {\n\t\t\tif (prevState.inputWidth !== this.state.inputWidth) {\n\t\t\t\tif (typeof this.props.onAutosize === 'function') {\n\t\t\t\t\tthis.props.onAutosize(this.state.inputWidth);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.updateInputWidth();\n\t\t}\n\t}, {\n\t\tkey: 'componentWillUnmount',\n\t\tvalue: function componentWillUnmount() {\n\t\t\tthis.mounted = false;\n\t\t}\n\t}, {\n\t\tkey: 'copyInputStyles',\n\t\tvalue: function copyInputStyles() {\n\t\t\tif (!this.mounted || !window.getComputedStyle) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar inputStyles = this.input && window.getComputedStyle(this.input);\n\t\t\tif (!inputStyles) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcopyStyles(inputStyles, this.sizer);\n\t\t\tif (this.placeHolderSizer) {\n\t\t\t\tcopyStyles(inputStyles, this.placeHolderSizer);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'updateInputWidth',\n\t\tvalue: function updateInputWidth() {\n\t\t\tif (!this.mounted || !this.sizer || typeof this.sizer.scrollWidth === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar newInputWidth = void 0;\n\t\t\tif (this.props.placeholder && (!this.props.value || this.props.value && this.props.placeholderIsMinWidth)) {\n\t\t\t\tnewInputWidth = Math.max(this.sizer.scrollWidth, this.placeHolderSizer.scrollWidth) + 2;\n\t\t\t} else {\n\t\t\t\tnewInputWidth = this.sizer.scrollWidth + 2;\n\t\t\t}\n\t\t\t// add extraWidth to the detected width. for number types, this defaults to 16 to allow for the stepper UI\n\t\t\tvar extraWidth = this.props.type === 'number' && this.props.extraWidth === undefined ? 16 : parseInt(this.props.extraWidth) || 0;\n\t\t\tnewInputWidth += extraWidth;\n\t\t\tif (newInputWidth < this.props.minWidth) {\n\t\t\t\tnewInputWidth = this.props.minWidth;\n\t\t\t}\n\t\t\tif (newInputWidth !== this.state.inputWidth) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tinputWidth: newInputWidth\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'getInput',\n\t\tvalue: function getInput() {\n\t\t\treturn this.input;\n\t\t}\n\t}, {\n\t\tkey: 'focus',\n\t\tvalue: function focus() {\n\t\t\tthis.input.focus();\n\t\t}\n\t}, {\n\t\tkey: 'blur',\n\t\tvalue: function blur() {\n\t\t\tthis.input.blur();\n\t\t}\n\t}, {\n\t\tkey: 'select',\n\t\tvalue: function select() {\n\t\t\tthis.input.select();\n\t\t}\n\t}, {\n\t\tkey: 'renderStyles',\n\t\tvalue: function renderStyles() {\n\t\t\t// this method injects styles to hide IE's clear indicator, which messes\n\t\t\t// with input size detection. the stylesheet is only injected when the\n\t\t\t// browser is IE, and can also be disabled by the `injectStyles` prop.\n\t\t\tvar injectStyles = this.props.injectStyles;\n\n\t\t\treturn isIE && injectStyles ? _react2.default.createElement('style', { dangerouslySetInnerHTML: {\n\t\t\t\t\t__html: 'input#' + this.state.inputId + '::-ms-clear {display: none;}'\n\t\t\t\t} }) : null;\n\t\t}\n\t}, {\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\tvar sizerValue = [this.props.defaultValue, this.props.value, ''].reduce(function (previousValue, currentValue) {\n\t\t\t\tif (previousValue !== null && previousValue !== undefined) {\n\t\t\t\t\treturn previousValue;\n\t\t\t\t}\n\t\t\t\treturn currentValue;\n\t\t\t});\n\n\t\t\tvar wrapperStyle = _extends({}, this.props.style);\n\t\t\tif (!wrapperStyle.display) wrapperStyle.display = 'inline-block';\n\n\t\t\tvar inputStyle = _extends({\n\t\t\t\tboxSizing: 'content-box',\n\t\t\t\twidth: this.state.inputWidth + 'px'\n\t\t\t}, this.props.inputStyle);\n\n\t\t\tvar inputProps = _objectWithoutProperties(this.props, []);\n\n\t\t\tcleanInputProps(inputProps);\n\t\t\tinputProps.className = this.props.inputClassName;\n\t\t\tinputProps.id = this.state.inputId;\n\t\t\tinputProps.style = inputStyle;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: this.props.className, style: wrapperStyle },\n\t\t\t\tthis.renderStyles(),\n\t\t\t\t_react2.default.createElement('input', _extends({}, inputProps, { ref: this.inputRef })),\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ ref: this.sizerRef, style: sizerStyle },\n\t\t\t\t\tsizerValue\n\t\t\t\t),\n\t\t\t\tthis.props.placeholder ? _react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ ref: this.placeHolderSizerRef, style: sizerStyle },\n\t\t\t\t\tthis.props.placeholder\n\t\t\t\t) : null\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn AutosizeInput;\n}(_react.Component);\n\nAutosizeInput.propTypes = {\n\tclassName: _propTypes2.default.string, // className for the outer element\n\tdefaultValue: _propTypes2.default.any, // default field value\n\textraWidth: _propTypes2.default.oneOfType([// additional width for input element\n\t_propTypes2.default.number, _propTypes2.default.string]),\n\tid: _propTypes2.default.string, // id to use for the input, can be set for consistent snapshots\n\tinjectStyles: _propTypes2.default.bool, // inject the custom stylesheet to hide clear UI, defaults to true\n\tinputClassName: _propTypes2.default.string, // className for the input element\n\tinputRef: _propTypes2.default.func, // ref callback for the input element\n\tinputStyle: _propTypes2.default.object, // css styles for the input element\n\tminWidth: _propTypes2.default.oneOfType([// minimum width for input element\n\t_propTypes2.default.number, _propTypes2.default.string]),\n\tonAutosize: _propTypes2.default.func, // onAutosize handler: function(newWidth) {}\n\tonChange: _propTypes2.default.func, // onChange handler: function(event) {}\n\tplaceholder: _propTypes2.default.string, // placeholder text\n\tplaceholderIsMinWidth: _propTypes2.default.bool, // don't collapse size to less than the placeholder\n\tstyle: _propTypes2.default.object, // css styles for the outer element\n\tvalue: _propTypes2.default.any // field value\n};\nAutosizeInput.defaultProps = {\n\tminWidth: 1,\n\tinjectStyles: true\n};\n\nexports.default = AutosizeInput;","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of days in a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many days are in February 2000?\n * var result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\n\nexport default function getDaysInMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var monthIndex = date.getMonth();\n var lastDayOfMonth = new Date(0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport getDaysInMonth from '../getDaysInMonth/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set February to 1 September 2014:\n * var result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\n\nexport default function setMonth(dirtyDate, dirtyMonth) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var month = toInteger(dirtyMonth);\n var year = date.getFullYear();\n var day = date.getDate();\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth); // Set the last day of the new month\n // if the original date was the last day of the longer month\n\n date.setMonth(month, Math.min(day, daysInMonth));\n return date;\n}","import { isString } from './is';\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(elem: unknown): string {\n type SimpleNode = {\n parentNode: SimpleNode;\n } | null;\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem as SimpleNode;\n const MAX_TRAVERSE_HEIGHT = 5;\n const MAX_OUTPUT_LEN = 80;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n\n // eslint-disable-next-line no-plusplus\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el: unknown): string {\n const elem = el as {\n tagName?: string;\n id?: string;\n className?: string;\n getAttribute(key: string): string;\n };\n\n const out = [];\n let className;\n let classes;\n let key;\n let attr;\n let i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n out.push(elem.tagName.toLowerCase());\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(`.${classes[i]}`);\n }\n }\n const allowedAttrs = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(`[${key}=\"${attr}\"]`);\n }\n }\n return out.join('');\n}\n","module.exports = __webpack_public_path__ + \"static/media/icomoon.5c7cf96a.eot\";","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","import { getLocation } from '../language/location';\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 lpad(padLen, prefix) + (line ? ' | ' + line : ' |');\n }).join('\\n');\n}\n\nfunction whitespace(len) {\n return Array(len + 1).join(' ');\n}\n\nfunction lpad(len, str) {\n return whitespace(len - str.length) + str;\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\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","module.exports = __webpack_public_path__ + \"static/media/icomoon.5c7cf96a.eot\";","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _implementation = require('./implementation');\n\nvar _implementation2 = _interopRequireDefault(_implementation);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _react2.default.createContext || _implementation2.default;\nmodule.exports = exports['default'];","export default typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst timeoutDuration = (function(){\n const longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}());\n\nexport function microtaskDebounce(fn) {\n let called = false\n return () => {\n if (called) {\n return\n }\n called = true\n window.Promise.resolve().then(() => {\n called = false\n fn()\n })\n }\n}\n\nexport function taskDebounce(fn) {\n let scheduled = false;\n return () => {\n if (!scheduled) {\n scheduled = true;\n setTimeout(() => {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nexport default (supportsMicroTasks\n ? microtaskDebounce\n : taskDebounce);\n","/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nexport default function isFunction(functionToCheck) {\n const getType = {};\n return (\n functionToCheck &&\n getType.toString.call(functionToCheck) === '[object Function]'\n );\n}\n","/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nexport default function getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n const window = element.ownerDocument.defaultView;\n const css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n","/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nexport default function getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nexport default function getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body\n case '#document':\n return element.body\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n","/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nexport default function getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nexport default function isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nexport default function getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n const noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n let offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n const nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (\n ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n getStyleComputedProperty(offsetParent, 'position') === 'static'\n ) {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n","/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nexport default function getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nexport default function findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n const order =\n element1.compareDocumentPosition(element2) &\n Node.DOCUMENT_POSITION_FOLLOWING;\n const start = order ? element1 : element2;\n const end = order ? element2 : element1;\n\n // Get common ancestor container\n const range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n const { commonAncestorContainer } = range;\n\n // Both nodes are inside #document\n if (\n (element1 !== commonAncestorContainer &&\n element2 !== commonAncestorContainer) ||\n start.contains(end)\n ) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n const element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n const { nodeName } = element;\n if (nodeName === 'BODY') {\n return false;\n }\n return (\n nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element\n );\n}\n","/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nexport default function getScroll(element, side = 'top') {\n const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n const nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n const html = element.ownerDocument.documentElement;\n const scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n","import getScroll from './getScroll';\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nexport default function includeScroll(rect, element, subtract = false) {\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n const modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n","/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nexport default function getBordersSize(styles, axis) {\n const sideA = axis === 'x' ? 'Left' : 'Top';\n const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return (\n parseFloat(styles[`border${sideA}Width`]) +\n parseFloat(styles[`border${sideB}Width`])\n );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(\n body[`offset${axis}`],\n body[`scroll${axis}`],\n html[`client${axis}`],\n html[`offset${axis}`],\n html[`scroll${axis}`],\n isIE(10)\n ? (parseInt(html[`offset${axis}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n : 0 \n );\n}\n\nexport default function getWindowSizes(document) {\n const body = document.body;\n const html = document.documentElement;\n const computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle),\n };\n}\n","/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nexport default function getClientRect(offsets) {\n return {\n ...offsets,\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height,\n };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nexport default function getBoundingClientRect(element) {\n let rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n }\n else {\n rect = element.getBoundingClientRect();\n }\n }\n catch(e){}\n\n const result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top,\n };\n\n // subtract scrollbar size from sizes\n const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n const width =\n sizes.width || element.clientWidth || result.width;\n const height =\n sizes.height || element.clientHeight || result.height;\n\n let horizScrollbar = element.offsetWidth - width;\n let vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n const styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n const isIE10 = runIsIE(10);\n const isHTML = parent.nodeName === 'HTML';\n const childrenRect = getBoundingClientRect(children);\n const parentRect = getBoundingClientRect(parent);\n const scrollParent = getScrollParent(children);\n\n const styles = getStyleComputedProperty(parent);\n const borderTopWidth = parseFloat(styles.borderTopWidth);\n const borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if(fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n let offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height,\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n const marginTop = parseFloat(styles.marginTop);\n const marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (\n isIE10 && !fixedPosition\n ? parent.contains(scrollParent)\n : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n ) {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n const html = element.ownerDocument.documentElement;\n const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n const width = Math.max(html.clientWidth, window.innerWidth || 0);\n const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n const scrollTop = !excludeScroll ? getScroll(html) : 0;\n const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n const offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width,\n height,\n };\n\n return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nexport default function isFixed(element) {\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n const parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nexport default function getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n let el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getReferenceNode from './getReferenceNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nexport default function getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement,\n fixedPosition = false\n) {\n // NOTE: 1 DOM access here\n\n let boundaries = { top: 0, left: 0 };\n const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport' ) {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n }\n\n else {\n // Handle other cases based on DOM element used as boundaries\n let boundariesNode;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n const offsets = getOffsetRectRelativeToArbitraryNode(\n boundariesNode,\n offsetParent,\n fixedPosition\n );\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n const { height, width } = getWindowSizes(popper.ownerDocument);\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n const isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0; \n boundaries.top += isPaddingNumber ? padding : padding.top || 0; \n boundaries.right -= isPaddingNumber ? padding : padding.right || 0; \n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; \n\n return boundaries;\n}\n","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeAutoPlacement(\n placement,\n refRect,\n popper,\n reference,\n boundariesElement,\n padding = 0\n) {\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n const boundaries = getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement\n );\n\n const rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top,\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height,\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom,\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height,\n },\n };\n\n const sortedAreas = Object.keys(rects)\n .map(key => ({\n key,\n ...rects[key],\n area: getArea(rects[key]),\n }))\n .sort((a, b) => b.area - a.area);\n\n const filteredAreas = sortedAreas.filter(\n ({ width, height }) =>\n width >= popper.clientWidth && height >= popper.clientHeight\n );\n\n const computedPlacement = filteredAreas.length > 0\n ? filteredAreas[0].key\n : sortedAreas[0].key;\n\n const variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\nimport getReferenceNode from './getReferenceNode';\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n","/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nexport default function getOuterSizes(element) {\n const window = element.ownerDocument.defaultView;\n const styles = window.getComputedStyle(element);\n const x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n const y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n const result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x,\n };\n return result;\n}\n","/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nexport default function getOppositePlacement(placement) {\n const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n const popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n const popperOffsets = {\n width: popperRect.width,\n height: popperRect.height,\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n const mainSide = isHoriz ? 'top' : 'left';\n const secondarySide = isHoriz ? 'left' : 'top';\n const measurement = isHoriz ? 'height' : 'width';\n const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] =\n referenceOffsets[mainSide] +\n referenceOffsets[measurement] / 2 -\n popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] =\n referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] =\n referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n","/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nexport default function runModifiers(modifiers, data, ends) {\n const modifiersToRun = ends === undefined\n ? modifiers\n : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(modifier => {\n if (modifier['function']) { // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n","import find from './find';\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(cur => cur[prop] === value);\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n const match = find(arr, obj => obj[prop] === value);\n return arr.indexOf(match);\n}\n","import computeAutoPlacement from '../utils/computeAutoPlacement';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nexport default function update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n let data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {},\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(\n this.state,\n this.popper,\n this.reference,\n this.options.positionFixed\n );\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(\n this.options.placement,\n data.offsets.reference,\n this.popper,\n this.reference,\n this.options.modifiers.flip.boundariesElement,\n this.options.modifiers.flip.padding\n );\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(\n this.popper,\n data.offsets.reference,\n data.placement\n );\n\n data.offsets.popper.position = this.options.positionFixed\n ? 'fixed'\n : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(\n ({ name, enabled }) => enabled && name === modifierName\n );\n}\n","/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nexport default function getSupportedPropertyName(property) {\n const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (let i = 0; i < prefixes.length; i++) {\n const prefix = prefixes[i];\n const toCheck = prefix ? `${prefix}${upperProp}` : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n","import isModifierEnabled from '../utils/isModifierEnabled';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nexport default function destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n","/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n const ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n const isBody = scrollParent.nodeName === 'BODY';\n const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(\n getScrollParent(target.parentNode),\n event,\n callback,\n scrollParents\n );\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function setupEventListeners(\n reference,\n options,\n state,\n updateBound\n) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n const scrollElement = getScrollParent(reference);\n attachToScrollParents(\n scrollElement,\n 'scroll',\n state.updateBound,\n state.scrollParents\n );\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n","import setupEventListeners from '../utils/setupEventListeners';\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nexport default function enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(\n this.reference,\n this.options,\n this.state,\n this.scheduleUpdate\n );\n }\n}\n","import removeEventListeners from '../utils/removeEventListeners';\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nexport default function disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(target => {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n","/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nexport default function isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import isNumeric from './isNumeric';\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setStyles(element, styles) {\n Object.keys(styles).forEach(prop => {\n let unit = '';\n // add unit if the value is numeric and is one of the following\n if (\n ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n -1 &&\n isNumeric(styles[prop])\n ) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n","import getSupportedPropertyName from '../utils/getSupportedPropertyName';\nimport find from '../utils/find';\nimport getOffsetParent from '../utils/getOffsetParent';\nimport getBoundingClientRect from '../utils/getBoundingClientRect';\nimport getRoundedOffsets from '../utils/getRoundedOffsets';\nimport isBrowser from '../utils/isBrowser';\n\nconst isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeStyle(data, options) {\n const { x, y } = options;\n const { popper } = data.offsets;\n\n // Remove this legacy support in Popper.js v2\n const legacyGpuAccelerationOption = find(\n data.instance.modifiers,\n modifier => modifier.name === 'applyStyle'\n ).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn(\n 'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n );\n }\n const gpuAcceleration =\n legacyGpuAccelerationOption !== undefined\n ? legacyGpuAccelerationOption\n : options.gpuAcceleration;\n\n const offsetParent = getOffsetParent(data.instance.popper);\n const offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n const styles = {\n position: popper.position,\n };\n\n const offsets = getRoundedOffsets(\n data,\n window.devicePixelRatio < 2 || !isFirefox\n );\n\n const sideA = x === 'bottom' ? 'top' : 'bottom';\n const sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n const prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n let left, top;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = `translate3d(${left}px, ${top}px, 0)`;\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n const invertTop = sideA === 'bottom' ? -1 : 1;\n const invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = `${sideA}, ${sideB}`;\n }\n\n // Attributes\n const attributes = {\n 'x-placement': data.placement,\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = { ...attributes, ...data.attributes };\n data.styles = { ...styles, ...data.styles };\n data.arrowStyles = { ...data.offsets.arrow, ...data.arrowStyles };\n\n return data;\n}\n","import find from './find';\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nexport default function isModifierRequired(\n modifiers,\n requestingName,\n requestedName\n) {\n const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n const isRequired =\n !!requesting &&\n modifiers.some(modifier => {\n return (\n modifier.name === requestedName &&\n modifier.enabled &&\n modifier.order < requesting.order\n );\n });\n\n if (!isRequired) {\n const requesting = `\\`${requestingName}\\``;\n const requested = `\\`${requestedName}\\``;\n console.warn(\n `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n );\n }\n return isRequired;\n}\n","/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nexport default [\n 'auto-start',\n 'auto',\n 'auto-end',\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start',\n];\n","import placements from '../methods/placements';\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nexport default function clockwise(placement, counter = false) {\n const index = validPlacements.indexOf(placement);\n const arr = validPlacements\n .slice(index + 1)\n .concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getOppositeVariation from '../utils/getOppositeVariation';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\nimport getBoundaries from '../utils/getBoundaries';\nimport isModifierEnabled from '../utils/isModifierEnabled';\nimport clockwise from '../utils/clockwise';\n\nconst BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise',\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n options.boundariesElement,\n data.positionFixed\n );\n\n let placement = data.placement.split('-')[0];\n let placementOpposite = getOppositePlacement(placement);\n let variation = data.placement.split('-')[1] || '';\n\n let flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach((step, index) => {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n const popperOffsets = data.offsets.popper;\n const refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n const floor = Math.floor;\n const overlapsRef =\n (placement === 'left' &&\n floor(popperOffsets.right) > floor(refOffsets.left)) ||\n (placement === 'right' &&\n floor(popperOffsets.left) < floor(refOffsets.right)) ||\n (placement === 'top' &&\n floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n (placement === 'bottom' &&\n floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n const overflowsBottom =\n floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n const overflowsBoundaries =\n (placement === 'left' && overflowsLeft) ||\n (placement === 'right' && overflowsRight) ||\n (placement === 'top' && overflowsTop) ||\n (placement === 'bottom' && overflowsBottom);\n\n // flip the variation if required\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n const flippedVariationByRef =\n !!options.flipVariations &&\n ((isVertical && variation === 'start' && overflowsLeft) ||\n (isVertical && variation === 'end' && overflowsRight) ||\n (!isVertical && variation === 'start' && overflowsTop) ||\n (!isVertical && variation === 'end' && overflowsBottom));\n\n // flips variation if popper content overflows boundaries\n const flippedVariationByContent =\n !!options.flipVariationsByContent &&\n ((isVertical && variation === 'start' && overflowsRight) ||\n (isVertical && variation === 'end' && overflowsLeft) ||\n (!isVertical && variation === 'start' && overflowsBottom) ||\n (!isVertical && variation === 'end' && overflowsTop));\n\n const flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = {\n ...data.offsets.popper,\n ...getPopperOffsets(\n data.instance.popper,\n data.offsets.reference,\n data.placement\n ),\n };\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n","import isNumeric from '../utils/isNumeric';\nimport getClientRect from '../utils/getClientRect';\nimport find from '../utils/find';\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nexport function toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n const value = +split[1];\n const unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n let element;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n const rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n let size;\n if (unit === 'vh') {\n size = Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n );\n } else {\n size = Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n );\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nexport function parseOffset(\n offset,\n popperOffsets,\n referenceOffsets,\n basePlacement\n) {\n const offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n const useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n const divider = fragments.indexOf(\n find(fragments, frag => frag.search(/,|\\s/) !== -1)\n );\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn(\n 'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n );\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n const splitRegex = /\\s*,\\s*|\\s+/;\n let ops = divider !== -1\n ? [\n fragments\n .slice(0, divider)\n .concat([fragments[divider].split(splitRegex)[0]]),\n [fragments[divider].split(splitRegex)[1]].concat(\n fragments.slice(divider + 1)\n ),\n ]\n : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map((op, index) => {\n // Most of the units rely on the orientation of the popper\n const measurement = (index === 1 ? !useHeight : useHeight)\n ? 'height'\n : 'width';\n let mergeWithPrevious = false;\n return (\n op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce((a, b) => {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(str => toValue(str, measurement, popperOffsets, referenceOffsets))\n );\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach((op, index) => {\n op.forEach((frag, index2) => {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nexport default function offset(data, { offset }) {\n const { placement, offsets: { popper, reference } } = data;\n const basePlacement = placement.split('-')[0];\n\n let offsets;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n","import applyStyle, { applyStyleOnLoad } from './applyStyle';\nimport computeStyle from './computeStyle';\nimport arrow from './arrow';\nimport flip from './flip';\nimport keepTogether from './keepTogether';\nimport offset from './offset';\nimport preventOverflow from './preventOverflow';\nimport shift from './shift';\nimport hide from './hide';\nimport inner from './inner';\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nexport default {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift,\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0,\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent',\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether,\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]',\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false,\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner,\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide,\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right',\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined,\n },\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n","import modifiers from '../modifiers/index';\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nexport default {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: () => {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: () => {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function shift(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n const { reference, popper } = data.offsets;\n const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n const side = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n const shiftOffsets = {\n start: { [side]: reference[side] },\n end: {\n [side]: reference[side] + reference[measurement] - popper[measurement],\n },\n };\n\n data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] };\n }\n\n return data;\n}\n","import getOffsetParent from '../utils/getOffsetParent';\nimport getBoundaries from '../utils/getBoundaries';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function preventOverflow(data, options) {\n let boundariesElement =\n options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n const transformProp = getSupportedPropertyName('transform');\n const popperStyles = data.instance.popper.style; // assignment to help minification\n const { top, left, [transformProp]: transform } = popperStyles;\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n boundariesElement,\n data.positionFixed\n );\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n const order = options.priority;\n let popper = data.offsets.popper;\n\n const check = {\n primary(placement) {\n let value = popper[placement];\n if (\n popper[placement] < boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return { [placement]: value };\n },\n secondary(placement) {\n const mainSide = placement === 'right' ? 'left' : 'top';\n let value = popper[mainSide];\n if (\n popper[placement] > boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.min(\n popper[mainSide],\n boundaries[placement] -\n (placement === 'right' ? popper.width : popper.height)\n );\n }\n return { [mainSide]: value };\n },\n };\n\n order.forEach(placement => {\n const side =\n ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = { ...popper, ...check[side](placement) };\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function keepTogether(data) {\n const { popper, reference } = data.offsets;\n const placement = data.placement.split('-')[0];\n const floor = Math.floor;\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n const side = isVertical ? 'right' : 'bottom';\n const opSide = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] =\n floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOuterSizes from '../utils/getOuterSizes';\nimport isModifierRequired from '../utils/isModifierRequired';\nimport getStyleComputedProperty from '../utils/getStyleComputedProperty';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function arrow(data, options) {\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n let arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn(\n 'WARNING: `arrow.element` must be child of its popper element!'\n );\n return data;\n }\n }\n\n const placement = data.placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n const len = isVertical ? 'height' : 'width';\n const sideCapitalized = isVertical ? 'Top' : 'Left';\n const side = sideCapitalized.toLowerCase();\n const altSide = isVertical ? 'left' : 'top';\n const opSide = isVertical ? 'bottom' : 'right';\n const arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -=\n popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] +=\n reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n const center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n const css = getStyleComputedProperty(data.instance.popper);\n const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`]);\n const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`]);\n let sideValue =\n center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = {\n [side]: Math.round(sideValue),\n [altSide]: '', // make sure to unset any eventual altSide value from the DOM node\n };\n\n return data;\n}\n","/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nexport default function getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOppositePlacement from '../utils/getOppositePlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function inner(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] =\n reference[basePlacement] -\n (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n","import isModifierRequired from '../utils/isModifierRequired';\nimport find from '../utils/find';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n const refRect = data.offsets.reference;\n const bound = find(\n data.instance.modifiers,\n modifier => modifier.name === 'preventOverflow'\n ).boundaries;\n\n if (\n refRect.bottom < bound.top ||\n refRect.left > bound.right ||\n refRect.top > bound.bottom ||\n refRect.right < bound.left\n ) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n","/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nexport default function getRoundedOffsets(data, shouldRound) {\n const { popper, reference } = data.offsets;\n const { round, floor } = Math;\n const noRound = v => v;\n \n const referenceWidth = round(reference.width);\n const popperWidth = round(popper.width);\n \n const isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n const isVariation = data.placement.indexOf('-') !== -1;\n const sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n const bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n const horizontalToInteger = !shouldRound\n ? noRound\n : isVertical || isVariation || sameWidthParity\n ? round\n : floor;\n const verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(\n bothOddWidth && !isVariation && shouldRound\n ? popper.left - 1\n : popper.left\n ),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right),\n };\n}\n","import setStyles from '../utils/setStyles';\nimport setAttributes from '../utils/setAttributes';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nexport default function applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nexport function applyStyleOnLoad(\n reference,\n popper,\n options,\n modifierOptions,\n state\n) {\n // compute reference element offsets\n const referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n const placement = computeAutoPlacement(\n options.placement,\n referenceOffsets,\n popper,\n reference,\n options.modifiers.flip.boundariesElement,\n options.modifiers.flip.padding\n );\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n","/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function(prop) {\n const value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n","// Utils\nimport debounce from './utils/debounce';\nimport isFunction from './utils/isFunction';\n\n// Methods\nimport update from './methods/update';\nimport destroy from './methods/destroy';\nimport enableEventListeners from './methods/enableEventListeners';\nimport disableEventListeners from './methods/disableEventListeners';\nimport Defaults from './methods/defaults';\nimport placements from './methods/placements';\n\nexport default class Popper {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n constructor(reference, popper, options = {}) {\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = { ...Popper.Defaults, ...options };\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: [],\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys({\n ...Popper.Defaults.modifiers,\n ...options.modifiers,\n }).forEach(name => {\n this.options.modifiers[name] = {\n // If it's a built-in modifier, use it as base\n ...(Popper.Defaults.modifiers[name] || {}),\n // If there are custom options, override and merge with default ones\n ...(options.modifiers ? options.modifiers[name] : {}),\n };\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers)\n .map(name => ({\n name,\n ...this.options.modifiers[name],\n }))\n // sort the modifiers by order\n .sort((a, b) => a.order - b.order);\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(modifierOptions => {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(\n this.reference,\n this.popper,\n this.options,\n modifierOptions,\n this.state\n );\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n const eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n update() {\n return update.call(this);\n }\n destroy() {\n return destroy.call(this);\n }\n enableEventListeners() {\n return enableEventListeners.call(this);\n }\n disableEventListeners() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n scheduleUpdate = () => requestAnimationFrame(this.update);\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n static Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n\n static placements = placements;\n\n static Defaults = Defaults;\n}\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n","/*\nReact-Quill v1.0.0\nhttps://github.com/zenoamaro/react-quill\n*/\nvar Quill = require('quill');\nvar Component = require('./component');\n\nmodule.exports = Component;\nmodule.exports.default = Component;\nmodule.exports.Quill = Quill;\nmodule.exports.Mixin = require('./mixin');\nmodule.exports.Toolbar = require('./toolbar');\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","// Spec Section: \"Executable Definitions\"\nimport { ExecutableDefinitions } from './rules/ExecutableDefinitions'; // Spec Section: \"Operation Name Uniqueness\"\n\nimport { UniqueOperationNames } from './rules/UniqueOperationNames'; // Spec Section: \"Lone Anonymous Operation\"\n\nimport { LoneAnonymousOperation } from './rules/LoneAnonymousOperation'; // Spec Section: \"Subscriptions with Single Root Field\"\n\nimport { SingleFieldSubscriptions } from './rules/SingleFieldSubscriptions'; // Spec Section: \"Fragment Spread Type Existence\"\n\nimport { KnownTypeNames } from './rules/KnownTypeNames'; // Spec Section: \"Fragments on Composite Types\"\n\nimport { FragmentsOnCompositeTypes } from './rules/FragmentsOnCompositeTypes'; // Spec Section: \"Variables are Input Types\"\n\nimport { VariablesAreInputTypes } from './rules/VariablesAreInputTypes'; // Spec Section: \"Leaf Field Selections\"\n\nimport { ScalarLeafs } from './rules/ScalarLeafs'; // Spec Section: \"Field Selections on Objects, Interfaces, and Unions Types\"\n\nimport { FieldsOnCorrectType } from './rules/FieldsOnCorrectType'; // Spec Section: \"Fragment Name Uniqueness\"\n\nimport { UniqueFragmentNames } from './rules/UniqueFragmentNames'; // Spec Section: \"Fragment spread target defined\"\n\nimport { KnownFragmentNames } from './rules/KnownFragmentNames'; // Spec Section: \"Fragments must be used\"\n\nimport { NoUnusedFragments } from './rules/NoUnusedFragments'; // Spec Section: \"Fragment spread is possible\"\n\nimport { PossibleFragmentSpreads } from './rules/PossibleFragmentSpreads'; // Spec Section: \"Fragments must not form cycles\"\n\nimport { NoFragmentCycles } from './rules/NoFragmentCycles'; // Spec Section: \"Variable Uniqueness\"\n\nimport { UniqueVariableNames } from './rules/UniqueVariableNames'; // Spec Section: \"All Variable Used Defined\"\n\nimport { NoUndefinedVariables } from './rules/NoUndefinedVariables'; // Spec Section: \"All Variables Used\"\n\nimport { NoUnusedVariables } from './rules/NoUnusedVariables'; // Spec Section: \"Directives Are Defined\"\n\nimport { KnownDirectives } from './rules/KnownDirectives'; // Spec Section: \"Directives Are Unique Per Location\"\n\nimport { UniqueDirectivesPerLocation } from './rules/UniqueDirectivesPerLocation'; // Spec Section: \"Argument Names\"\n\nimport { KnownArgumentNames, KnownArgumentNamesOnDirectives } from // @internal\n'./rules/KnownArgumentNames'; // Spec Section: \"Argument Uniqueness\"\n\nimport { UniqueArgumentNames } from './rules/UniqueArgumentNames'; // Spec Section: \"Value Type Correctness\"\n\nimport { ValuesOfCorrectType } from './rules/ValuesOfCorrectType'; // Spec Section: \"Argument Optionality\"\n\nimport { ProvidedRequiredArguments, ProvidedRequiredArgumentsOnDirectives } from // @internal\n'./rules/ProvidedRequiredArguments'; // Spec Section: \"All Variable Usages Are Allowed\"\n\nimport { VariablesInAllowedPosition } from './rules/VariablesInAllowedPosition'; // Spec Section: \"Field Selection Merging\"\n\nimport { OverlappingFieldsCanBeMerged } from './rules/OverlappingFieldsCanBeMerged'; // Spec Section: \"Input Object Field Uniqueness\"\n\nimport { UniqueInputFieldNames } from './rules/UniqueInputFieldNames';\n/**\n * This set includes all validation rules defined by the GraphQL spec.\n *\n * The order of the rules in this list has been adjusted to lead to the\n * most clear output when encountering multiple validation errors.\n */\n\nexport var specifiedRules = Object.freeze([ExecutableDefinitions, UniqueOperationNames, LoneAnonymousOperation, SingleFieldSubscriptions, KnownTypeNames, FragmentsOnCompositeTypes, VariablesAreInputTypes, ScalarLeafs, FieldsOnCorrectType, UniqueFragmentNames, KnownFragmentNames, NoUnusedFragments, PossibleFragmentSpreads, NoFragmentCycles, UniqueVariableNames, NoUndefinedVariables, NoUnusedVariables, KnownDirectives, UniqueDirectivesPerLocation, KnownArgumentNames, UniqueArgumentNames, ValuesOfCorrectType, ProvidedRequiredArguments, VariablesInAllowedPosition, OverlappingFieldsCanBeMerged, UniqueInputFieldNames]);\nimport { LoneSchemaDefinition } from './rules/LoneSchemaDefinition';\nimport { UniqueOperationTypes } from './rules/UniqueOperationTypes';\nimport { UniqueTypeNames } from './rules/UniqueTypeNames';\nimport { UniqueEnumValueNames } from './rules/UniqueEnumValueNames';\nimport { UniqueFieldDefinitionNames } from './rules/UniqueFieldDefinitionNames';\nimport { UniqueDirectiveNames } from './rules/UniqueDirectiveNames';\nimport { PossibleTypeExtensions } from './rules/PossibleTypeExtensions'; // @internal\n\nexport var specifiedSDLRules = Object.freeze([LoneSchemaDefinition, UniqueOperationTypes, UniqueTypeNames, UniqueEnumValueNames, UniqueFieldDefinitionNames, UniqueDirectiveNames, KnownTypeNames, KnownDirectives, UniqueDirectivesPerLocation, PossibleTypeExtensions, KnownArgumentNamesOnDirectives, UniqueArgumentNames, UniqueInputFieldNames, ProvidedRequiredArgumentsOnDirectives]);\n","import didYouMean from '../../jsutils/didYouMean';\nimport suggestionList from '../../jsutils/suggestionList';\nimport { GraphQLError } from '../../error/GraphQLError';\nimport { isTypeDefinitionNode, isTypeSystemDefinitionNode, isTypeSystemExtensionNode } from '../../language/predicates';\nimport { specifiedScalarTypes } from '../../type/scalars';\nexport function unknownTypeMessage(typeName, suggestedTypes) {\n return \"Unknown type \\\"\".concat(typeName, \"\\\".\") + didYouMean(suggestedTypes.map(function (x) {\n return \"\\\"\".concat(x, \"\\\"\");\n }));\n}\n/**\n * Known type names\n *\n * A GraphQL document is only valid if referenced types (specifically\n * variable definitions and fragment conditions) are defined by the type schema.\n */\n\nexport function KnownTypeNames(context) {\n var schema = context.getSchema();\n var existingTypesMap = schema ? schema.getTypeMap() : Object.create(null);\n var definedTypes = Object.create(null);\n\n for (var _i2 = 0, _context$getDocument$2 = context.getDocument().definitions; _i2 < _context$getDocument$2.length; _i2++) {\n var def = _context$getDocument$2[_i2];\n\n if (isTypeDefinitionNode(def)) {\n definedTypes[def.name.value] = true;\n }\n }\n\n var typeNames = Object.keys(existingTypesMap).concat(Object.keys(definedTypes));\n return {\n NamedType: function NamedType(node, _1, parent, _2, ancestors) {\n var typeName = node.name.value;\n\n if (!existingTypesMap[typeName] && !definedTypes[typeName]) {\n var definitionNode = ancestors[2] || parent;\n var isSDL = isSDLNode(definitionNode);\n\n if (isSDL && isSpecifiedScalarName(typeName)) {\n return;\n }\n\n var suggestedTypes = suggestionList(typeName, isSDL ? specifiedScalarsNames.concat(typeNames) : typeNames);\n context.reportError(new GraphQLError(unknownTypeMessage(typeName, suggestedTypes), node));\n }\n }\n };\n}\nvar specifiedScalarsNames = specifiedScalarTypes.map(function (type) {\n return type.name;\n});\n\nfunction isSpecifiedScalarName(typeName) {\n return specifiedScalarsNames.indexOf(typeName) !== -1;\n}\n\nfunction isSDLNode(value) {\n return Boolean(value && !Array.isArray(value) && (isTypeSystemDefinitionNode(value) || isTypeSystemExtensionNode(value)));\n}\n","import { GraphQLError } from '../../error/GraphQLError';\nimport { Kind } from '../../language/kinds';\nimport { DirectiveLocation } from '../../language/directiveLocation';\nimport { specifiedDirectives } from '../../type/directives';\nexport function unknownDirectiveMessage(directiveName) {\n return \"Unknown directive \\\"\".concat(directiveName, \"\\\".\");\n}\nexport function misplacedDirectiveMessage(directiveName, location) {\n return \"Directive \\\"\".concat(directiveName, \"\\\" may not be used on \").concat(location, \".\");\n}\n/**\n * Known directives\n *\n * A GraphQL document is only valid if all `@directives` are known by the\n * schema and legally positioned.\n */\n\nexport function KnownDirectives(context) {\n var locationsMap = Object.create(null);\n var schema = context.getSchema();\n var definedDirectives = schema ? schema.getDirectives() : specifiedDirectives;\n\n for (var _i2 = 0; _i2 < definedDirectives.length; _i2++) {\n var directive = definedDirectives[_i2];\n locationsMap[directive.name] = directive.locations;\n }\n\n var astDefinitions = context.getDocument().definitions;\n\n for (var _i4 = 0; _i4 < astDefinitions.length; _i4++) {\n var def = astDefinitions[_i4];\n\n if (def.kind === Kind.DIRECTIVE_DEFINITION) {\n locationsMap[def.name.value] = def.locations.map(function (name) {\n return name.value;\n });\n }\n }\n\n return {\n Directive: function Directive(node, key, parent, path, ancestors) {\n var name = node.name.value;\n var locations = locationsMap[name];\n\n if (!locations) {\n context.reportError(new GraphQLError(unknownDirectiveMessage(name), node));\n return;\n }\n\n var candidateLocation = getDirectiveLocationForASTPath(ancestors);\n\n if (candidateLocation && locations.indexOf(candidateLocation) === -1) {\n context.reportError(new GraphQLError(misplacedDirectiveMessage(name, candidateLocation), node));\n }\n }\n };\n}\n\nfunction getDirectiveLocationForASTPath(ancestors) {\n var appliedTo = ancestors[ancestors.length - 1];\n\n if (!Array.isArray(appliedTo)) {\n switch (appliedTo.kind) {\n case Kind.OPERATION_DEFINITION:\n switch (appliedTo.operation) {\n case 'query':\n return DirectiveLocation.QUERY;\n\n case 'mutation':\n return DirectiveLocation.MUTATION;\n\n case 'subscription':\n return DirectiveLocation.SUBSCRIPTION;\n }\n\n break;\n\n case Kind.FIELD:\n return DirectiveLocation.FIELD;\n\n case Kind.FRAGMENT_SPREAD:\n return DirectiveLocation.FRAGMENT_SPREAD;\n\n case Kind.INLINE_FRAGMENT:\n return DirectiveLocation.INLINE_FRAGMENT;\n\n case Kind.FRAGMENT_DEFINITION:\n return DirectiveLocation.FRAGMENT_DEFINITION;\n\n case Kind.VARIABLE_DEFINITION:\n return DirectiveLocation.VARIABLE_DEFINITION;\n\n case Kind.SCHEMA_DEFINITION:\n case Kind.SCHEMA_EXTENSION:\n return DirectiveLocation.SCHEMA;\n\n case Kind.SCALAR_TYPE_DEFINITION:\n case Kind.SCALAR_TYPE_EXTENSION:\n return DirectiveLocation.SCALAR;\n\n case Kind.OBJECT_TYPE_DEFINITION:\n case Kind.OBJECT_TYPE_EXTENSION:\n return DirectiveLocation.OBJECT;\n\n case Kind.FIELD_DEFINITION:\n return DirectiveLocation.FIELD_DEFINITION;\n\n case Kind.INTERFACE_TYPE_DEFINITION:\n case Kind.INTERFACE_TYPE_EXTENSION:\n return DirectiveLocation.INTERFACE;\n\n case Kind.UNION_TYPE_DEFINITION:\n case Kind.UNION_TYPE_EXTENSION:\n return DirectiveLocation.UNION;\n\n case Kind.ENUM_TYPE_DEFINITION:\n case Kind.ENUM_TYPE_EXTENSION:\n return DirectiveLocation.ENUM;\n\n case Kind.ENUM_VALUE_DEFINITION:\n return DirectiveLocation.ENUM_VALUE;\n\n case Kind.INPUT_OBJECT_TYPE_DEFINITION:\n case Kind.INPUT_OBJECT_TYPE_EXTENSION:\n return DirectiveLocation.INPUT_OBJECT;\n\n case Kind.INPUT_VALUE_DEFINITION:\n {\n var parentNode = ancestors[ancestors.length - 3];\n return parentNode.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION ? DirectiveLocation.INPUT_FIELD_DEFINITION : DirectiveLocation.ARGUMENT_DEFINITION;\n }\n }\n }\n}\n","import { GraphQLError } from '../../error/GraphQLError';\nimport { Kind } from '../../language/kinds';\nimport { specifiedDirectives } from '../../type/directives';\nexport function duplicateDirectiveMessage(directiveName) {\n return \"The directive \\\"\".concat(directiveName, \"\\\" can only be used once at this location.\");\n}\n/**\n * Unique directive names per location\n *\n * A GraphQL document is only valid if all non-repeatable directives at\n * a given location are uniquely named.\n */\n\nexport function UniqueDirectivesPerLocation(context) {\n var uniqueDirectiveMap = Object.create(null);\n var schema = context.getSchema();\n var definedDirectives = schema ? schema.getDirectives() : specifiedDirectives;\n\n for (var _i2 = 0; _i2 < definedDirectives.length; _i2++) {\n var directive = definedDirectives[_i2];\n uniqueDirectiveMap[directive.name] = !directive.isRepeatable;\n }\n\n var astDefinitions = context.getDocument().definitions;\n\n for (var _i4 = 0; _i4 < astDefinitions.length; _i4++) {\n var def = astDefinitions[_i4];\n\n if (def.kind === Kind.DIRECTIVE_DEFINITION) {\n uniqueDirectiveMap[def.name.value] = !def.repeatable;\n }\n }\n\n return {\n // Many different AST nodes may contain directives. Rather than listing\n // them all, just listen for entering any node, and check to see if it\n // defines any directives.\n enter: function enter(node) {\n // Flow can't refine that node.directives will only contain directives,\n // so we cast so the rest of the code is well typed.\n var directives = node.directives;\n\n if (directives) {\n var knownDirectives = Object.create(null);\n\n for (var _i6 = 0; _i6 < directives.length; _i6++) {\n var _directive = directives[_i6];\n var directiveName = _directive.name.value;\n\n if (uniqueDirectiveMap[directiveName]) {\n if (knownDirectives[directiveName]) {\n context.reportError(new GraphQLError(duplicateDirectiveMessage(directiveName), [knownDirectives[directiveName], _directive]));\n } else {\n knownDirectives[directiveName] = _directive;\n }\n }\n }\n }\n }\n };\n}\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport didYouMean from '../../jsutils/didYouMean';\nimport suggestionList from '../../jsutils/suggestionList';\nimport { GraphQLError } from '../../error/GraphQLError';\nimport { Kind } from '../../language/kinds';\nimport { specifiedDirectives } from '../../type/directives';\nexport function unknownArgMessage(argName, fieldName, typeName, suggestedArgs) {\n return \"Unknown argument \\\"\".concat(argName, \"\\\" on field \\\"\").concat(fieldName, \"\\\" of type \\\"\").concat(typeName, \"\\\".\") + didYouMean(suggestedArgs.map(function (x) {\n return \"\\\"\".concat(x, \"\\\"\");\n }));\n}\nexport function unknownDirectiveArgMessage(argName, directiveName, suggestedArgs) {\n return \"Unknown argument \\\"\".concat(argName, \"\\\" on directive \\\"@\").concat(directiveName, \"\\\".\") + didYouMean(suggestedArgs.map(function (x) {\n return \"\\\"\".concat(x, \"\\\"\");\n }));\n}\n/**\n * Known argument names\n *\n * A GraphQL field is only valid if all supplied arguments are defined by\n * that field.\n */\n\nexport function KnownArgumentNames(context) {\n return _objectSpread({}, KnownArgumentNamesOnDirectives(context), {\n Argument: function Argument(argNode) {\n var argDef = context.getArgument();\n var fieldDef = context.getFieldDef();\n var parentType = context.getParentType();\n\n if (!argDef && fieldDef && parentType) {\n var argName = argNode.name.value;\n var knownArgsNames = fieldDef.args.map(function (arg) {\n return arg.name;\n });\n context.reportError(new GraphQLError(unknownArgMessage(argName, fieldDef.name, parentType.name, suggestionList(argName, knownArgsNames)), argNode));\n }\n }\n });\n} // @internal\n\nexport function KnownArgumentNamesOnDirectives(context) {\n var directiveArgs = Object.create(null);\n var schema = context.getSchema();\n var definedDirectives = schema ? schema.getDirectives() : specifiedDirectives;\n\n for (var _i2 = 0; _i2 < definedDirectives.length; _i2++) {\n var directive = definedDirectives[_i2];\n directiveArgs[directive.name] = directive.args.map(function (arg) {\n return arg.name;\n });\n }\n\n var astDefinitions = context.getDocument().definitions;\n\n for (var _i4 = 0; _i4 < astDefinitions.length; _i4++) {\n var def = astDefinitions[_i4];\n\n if (def.kind === Kind.DIRECTIVE_DEFINITION) {\n directiveArgs[def.name.value] = def.arguments ? def.arguments.map(function (arg) {\n return arg.name.value;\n }) : [];\n }\n }\n\n return {\n Directive: function Directive(directiveNode) {\n var directiveName = directiveNode.name.value;\n var knownArgs = directiveArgs[directiveName];\n\n if (directiveNode.arguments && knownArgs) {\n for (var _i6 = 0, _directiveNode$argume2 = directiveNode.arguments; _i6 < _directiveNode$argume2.length; _i6++) {\n var argNode = _directiveNode$argume2[_i6];\n var argName = argNode.name.value;\n\n if (knownArgs.indexOf(argName) === -1) {\n var suggestions = suggestionList(argName, knownArgs);\n context.reportError(new GraphQLError(unknownDirectiveArgMessage(argName, directiveName, suggestions), argNode));\n }\n }\n }\n\n return false;\n }\n };\n}\n","import { GraphQLError } from '../../error/GraphQLError';\nexport function duplicateArgMessage(argName) {\n return \"There can be only one argument named \\\"\".concat(argName, \"\\\".\");\n}\n/**\n * Unique argument names\n *\n * A GraphQL field or directive is only valid if all supplied arguments are\n * uniquely named.\n */\n\nexport function UniqueArgumentNames(context) {\n var knownArgNames = Object.create(null);\n return {\n Field: function Field() {\n knownArgNames = Object.create(null);\n },\n Directive: function Directive() {\n knownArgNames = Object.create(null);\n },\n Argument: function Argument(node) {\n var argName = node.name.value;\n\n if (knownArgNames[argName]) {\n context.reportError(new GraphQLError(duplicateArgMessage(argName), [knownArgNames[argName], node.name]));\n } else {\n knownArgNames[argName] = node.name;\n }\n\n return false;\n }\n };\n}\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport inspect from '../../jsutils/inspect';\nimport keyMap from '../../jsutils/keyMap';\nimport { GraphQLError } from '../../error/GraphQLError';\nimport { Kind } from '../../language/kinds';\nimport { print } from '../../language/printer';\nimport { specifiedDirectives } from '../../type/directives';\nimport { isType, isRequiredArgument } from '../../type/definition';\nexport function missingFieldArgMessage(fieldName, argName, type) {\n return \"Field \\\"\".concat(fieldName, \"\\\" argument \\\"\").concat(argName, \"\\\" of type \\\"\").concat(type, \"\\\" is required, but it was not provided.\");\n}\nexport function missingDirectiveArgMessage(directiveName, argName, type) {\n return \"Directive \\\"@\".concat(directiveName, \"\\\" argument \\\"\").concat(argName, \"\\\" of type \\\"\").concat(type, \"\\\" is required, but it was not provided.\");\n}\n/**\n * Provided required arguments\n *\n * A field or directive is only valid if all required (non-null without a\n * default value) field arguments have been provided.\n */\n\nexport function ProvidedRequiredArguments(context) {\n return _objectSpread({}, ProvidedRequiredArgumentsOnDirectives(context), {\n Field: {\n // Validate on leave to allow for deeper errors to appear first.\n leave: function leave(fieldNode) {\n var fieldDef = context.getFieldDef();\n\n if (!fieldDef) {\n return false;\n }\n\n var argNodes = fieldNode.arguments || [];\n var argNodeMap = keyMap(argNodes, function (arg) {\n return arg.name.value;\n });\n\n for (var _i2 = 0, _fieldDef$args2 = fieldDef.args; _i2 < _fieldDef$args2.length; _i2++) {\n var argDef = _fieldDef$args2[_i2];\n var argNode = argNodeMap[argDef.name];\n\n if (!argNode && isRequiredArgument(argDef)) {\n context.reportError(new GraphQLError(missingFieldArgMessage(fieldDef.name, argDef.name, inspect(argDef.type)), fieldNode));\n }\n }\n }\n }\n });\n} // @internal\n\nexport function ProvidedRequiredArgumentsOnDirectives(context) {\n var requiredArgsMap = Object.create(null);\n var schema = context.getSchema();\n var definedDirectives = schema ? schema.getDirectives() : specifiedDirectives;\n\n for (var _i4 = 0; _i4 < definedDirectives.length; _i4++) {\n var directive = definedDirectives[_i4];\n requiredArgsMap[directive.name] = keyMap(directive.args.filter(isRequiredArgument), function (arg) {\n return arg.name;\n });\n }\n\n var astDefinitions = context.getDocument().definitions;\n\n for (var _i6 = 0; _i6 < astDefinitions.length; _i6++) {\n var def = astDefinitions[_i6];\n\n if (def.kind === Kind.DIRECTIVE_DEFINITION) {\n requiredArgsMap[def.name.value] = keyMap(def.arguments ? def.arguments.filter(isRequiredArgumentNode) : [], function (arg) {\n return arg.name.value;\n });\n }\n }\n\n return {\n Directive: {\n // Validate on leave to allow for deeper errors to appear first.\n leave: function leave(directiveNode) {\n var directiveName = directiveNode.name.value;\n var requiredArgs = requiredArgsMap[directiveName];\n\n if (requiredArgs) {\n var argNodes = directiveNode.arguments || [];\n var argNodeMap = keyMap(argNodes, function (arg) {\n return arg.name.value;\n });\n\n for (var _i8 = 0, _Object$keys2 = Object.keys(requiredArgs); _i8 < _Object$keys2.length; _i8++) {\n var argName = _Object$keys2[_i8];\n\n if (!argNodeMap[argName]) {\n var argType = requiredArgs[argName].type;\n context.reportError(new GraphQLError(missingDirectiveArgMessage(directiveName, argName, isType(argType) ? inspect(argType) : print(argType)), directiveNode));\n }\n }\n }\n }\n }\n };\n}\n\nfunction isRequiredArgumentNode(arg) {\n return arg.type.kind === Kind.NON_NULL_TYPE && arg.defaultValue == null;\n}\n","import { GraphQLError } from '../../error/GraphQLError';\nexport function duplicateInputFieldMessage(fieldName) {\n return \"There can be only one input field named \\\"\".concat(fieldName, \"\\\".\");\n}\n/**\n * Unique input field names\n *\n * A GraphQL input object value is only valid if all supplied fields are\n * uniquely named.\n */\n\nexport function UniqueInputFieldNames(context) {\n var knownNameStack = [];\n var knownNames = Object.create(null);\n return {\n ObjectValue: {\n enter: function enter() {\n knownNameStack.push(knownNames);\n knownNames = Object.create(null);\n },\n leave: function leave() {\n knownNames = knownNameStack.pop();\n }\n },\n ObjectField: function ObjectField(node) {\n var fieldName = node.name.value;\n\n if (knownNames[fieldName]) {\n context.reportError(new GraphQLError(duplicateInputFieldMessage(fieldName), [knownNames[fieldName], node.name]));\n } else {\n knownNames[fieldName] = node.name;\n }\n }\n };\n}\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","var $export = require('./_export');\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperties: require('./_object-dps') });\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 19.1.2.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function () {\n return require('./_object-gopn-ext').f;\n});\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.5 Object.freeze(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('freeze', function ($freeze) {\n return function freeze(it) {\n return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n };\n});\n","// 19.1.2.17 Object.seal(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('seal', function ($seal) {\n return function seal(it) {\n return $seal && isObject(it) ? $seal(meta(it)) : it;\n };\n});\n","// 19.1.2.15 Object.preventExtensions(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('preventExtensions', function ($preventExtensions) {\n return function preventExtensions(it) {\n return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;\n };\n});\n","// 19.1.2.12 Object.isFrozen(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isFrozen', function ($isFrozen) {\n return function isFrozen(it) {\n return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;\n };\n});\n","// 19.1.2.13 Object.isSealed(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isSealed', function ($isSealed) {\n return function isSealed(it) {\n return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n };\n});\n","// 19.1.2.11 Object.isExtensible(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isExtensible', function ($isExtensible) {\n return function isExtensible(it) {\n return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n };\n});\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","'use strict';\n// 22.1.3.13 Array.prototype.join(separator)\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar arrayJoin = [].join;\n\n// fallback for not array-like strings\n$export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {\n join: function join(separator) {\n return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar html = require('./_html');\nvar cof = require('./_cof');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar arraySlice = [].slice;\n\n// fallback for not array-like ES3 strings and DOM objects\n$export($export.P + $export.F * require('./_fails')(function () {\n if (html) arraySlice.call(html);\n}), 'Array', {\n slice: function slice(begin, end) {\n var len = toLength(this.length);\n var klass = cof(this);\n end = end === undefined ? len : end;\n if (klass == 'Array') return arraySlice.call(this, begin, end);\n var start = toAbsoluteIndex(begin, len);\n var upTo = toAbsoluteIndex(end, len);\n var size = toLength(upTo - start);\n var cloned = new Array(size);\n var i = 0;\n for (; i < size; i++) cloned[i] = klass == 'String'\n ? this.charAt(start + i)\n : this[start + i];\n return cloned;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar fails = require('./_fails');\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n // IE8-\n test.sort(undefined);\n}) || !fails(function () {\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $forEach = require('./_array-methods')(0);\nvar STRICT = require('./_strict-method')([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n forEach: function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $map = require('./_array-methods')(1);\n\n$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $filter = require('./_array-methods')(2);\n\n$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $some = require('./_array-methods')(3);\n\n$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {\n // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $every = require('./_array-methods')(4);\n\n$export($export.P + $export.F * !require('./_strict-method')([].every, true), 'Array', {\n // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {\n // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n }\n});\n","var aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar toLength = require('./_to-length');\n\nmodule.exports = function (that, callbackfn, aLen, memo, isRight) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IObject(O);\n var length = toLength(O.length);\n var index = isRight ? length - 1 : 0;\n var i = isRight ? -1 : 1;\n if (aLen < 2) for (;;) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (isRight ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n};\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {\n // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], true);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $indexOf = require('./_array-includes')(false);\nvar $native = [].indexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? $native.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar $native = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;\n var O = toIObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;\n return -1;\n }\n});\n","var cof = require('./_cof');\nmodule.exports = function (it, msg) {\n if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);\n return +it;\n};\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","'use strict';\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar isArray = require('./_is-array');\nvar isObject = require('./_is-object');\nvar toLength = require('./_to-length');\nvar ctx = require('./_ctx');\nvar IS_CONCAT_SPREADABLE = require('./_wks')('isConcatSpreadable');\n\nfunction flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? ctx(mapper, thisArg, 3) : false;\n var element, spreadable;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n spreadable = false;\n if (isObject(element)) {\n spreadable = element[IS_CONCAT_SPREADABLE];\n spreadable = spreadable !== undefined ? !!spreadable : isArray(element);\n }\n\n if (spreadable && depth > 0) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1fffffffffffff) throw TypeError();\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n}\n\nmodule.exports = flattenIntoArray;\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","exports.f = require('./_wks');\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","var DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || isEnum.call(O, key)) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\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","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\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 define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\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","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\nvar $Object = Object;\nvar $TypeError = TypeError;\n\nmodule.exports = function flags() {\n\tif (this != null && this !== $Object(this)) {\n\t\tthrow new $TypeError('RegExp.prototype.flags getter called on non-object');\n\t}\n\tvar result = '';\n\tif (this.global) {\n\t\tresult += 'g';\n\t}\n\tif (this.ignoreCase) {\n\t\tresult += 'i';\n\t}\n\tif (this.multiline) {\n\t\tresult += 'm';\n\t}\n\tif (this.dotAll) {\n\t\tresult += 's';\n\t}\n\tif (this.unicode) {\n\t\tresult += 'u';\n\t}\n\tif (this.sticky) {\n\t\tresult += 'y';\n\t}\n\treturn result;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar $gOPD = Object.getOwnPropertyDescriptor;\nvar $TypeError = TypeError;\n\nmodule.exports = function getPolyfill() {\n\tif (!supportsDescriptors) {\n\t\tthrow new $TypeError('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tif ((/a/mig).flags === 'gim') {\n\t\tvar descriptor = $gOPD(RegExp.prototype, 'flags');\n\t\tif (descriptor && typeof descriptor.get === 'function' && typeof (/a/).dotAll === 'boolean') {\n\t\t\treturn descriptor.get;\n\t\t}\n\t}\n\treturn implementation;\n};\n","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","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}\n\nmodule.exports = _arrayLikeToArray;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","\"use strict\";\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _ChildMapping = require(\"./utils/ChildMapping\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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\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 _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: {\n isMounting: !this.appeared\n }\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n this.mounted = true;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return children;\n }\n\n return _react.default.createElement(Component, props, children);\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes.default.object.isRequired\n};\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: _propTypes.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"Quill\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 109);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar format_1 = __webpack_require__(18);\nvar leaf_1 = __webpack_require__(19);\nvar scroll_1 = __webpack_require__(45);\nvar inline_1 = __webpack_require__(46);\nvar block_1 = __webpack_require__(47);\nvar embed_1 = __webpack_require__(48);\nvar text_1 = __webpack_require__(49);\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar store_1 = __webpack_require__(31);\nvar Registry = __webpack_require__(1);\nvar Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n register: Registry.register,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default,\n },\n};\nexports.default = Parchment;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var 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 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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node = \n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n if (bubble === void 0) { bubble = false; }\n if (node == null)\n return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null)\n return node[exports.DATA_KEY].blot;\n if (bubble)\n return find(node.parentNode, bubble);\n return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n if (scope === void 0) { scope = Scope.ANY; }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n }\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n }\n else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n }\n else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n }\n else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match)\n break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null)\n return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n return match;\n return null;\n}\nexports.query = query;\nfunction register() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return register(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n }\n else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot register abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n }\n else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\n }\n if (Definition.tagName != null) {\n if (Array.isArray(Definition.tagName)) {\n Definition.tagName = Definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n }\n else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n}\nexports.register = register;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar diff = __webpack_require__(51);\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\nvar op = __webpack_require__(20);\n\n\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n\nvar Delta = function (ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n};\n\n\nDelta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({ 'delete': length });\n};\n\nDelta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = { retain: length };\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n};\n\nDelta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n};\n\nDelta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n};\n\nDelta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n};\n\nDelta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n};\n\nDelta.prototype.partition = function (predicate) {\n var passed = [], failed = [];\n this.forEach(function(op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n};\n\nDelta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n};\n\nDelta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n};\n\nDelta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n};\n\nDelta.prototype.slice = function (start, end) {\n start = start || 0;\n if (typeof end !== 'number') end = Infinity;\n var ops = [];\n var iter = op.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += op.length(nextOp);\n }\n return new Delta(ops);\n};\n\n\nDelta.prototype.compose = function (other) {\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp);\n\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n};\n\nDelta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = (delta === other) ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n }).join('');\n });\n var delta = new Delta();\n var diffResult = diff(strings[0], strings[1], index);\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (equal(thisOp.insert, otherOp.insert)) {\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n } else {\n delta.push(otherOp)['delete'](opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return delta.chop();\n};\n\nDelta.prototype.eachLine = function (predicate, newline) {\n newline = newline || '\\n';\n var iter = op.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') return;\n var thisOp = iter.peek();\n var start = op.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ?\n thisOp.insert.indexOf(newline, start) - start : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n};\n\nDelta.prototype.transform = function (other, priority) {\n priority = !!priority;\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (thisOp['delete']) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp['delete']) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n};\n\n\nmodule.exports = Delta;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BlockEmbed = exports.bubbleFormats = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar NEWLINE_LENGTH = 1;\n\nvar BlockEmbed = function (_Parchment$Embed) {\n _inherits(BlockEmbed, _Parchment$Embed);\n\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n\n return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments));\n }\n\n _createClass(BlockEmbed, [{\n key: 'attach',\n value: function attach() {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this);\n this.attributes = new _parchment2.default.Attributor.Store(this.domNode);\n }\n }, {\n key: 'delta',\n value: function delta() {\n return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n this.format(name, value);\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n var block = _parchment2.default.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def);\n }\n }\n }]);\n\n return BlockEmbed;\n}(_parchment2.default.Embed);\n\nBlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nvar Block = function (_Parchment$Block) {\n _inherits(Block, _Parchment$Block);\n\n function Block(domNode) {\n _classCallCheck(this, Block);\n\n var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode));\n\n _this2.cache = {};\n return _this2;\n }\n\n _createClass(Block, [{\n key: 'delta',\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new _quillDelta2.default()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length);\n this.cache = {};\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def);\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n var block = this;\n lines.reduce(function (index, line) {\n block = block.split(index, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n var head = this.children.head;\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);\n if (head instanceof _break2.default) {\n head.remove();\n }\n this.cache = {};\n }\n }, {\n key: 'length',\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n }, {\n key: 'moveChildren',\n value: function moveChildren(target, ref) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);\n this.cache = {};\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context);\n this.cache = {};\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true);\n }\n }, {\n key: 'removeChild',\n value: function removeChild(child) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child);\n this.cache = {};\n }\n }, {\n key: 'split',\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force);\n this.cache = {};\n return next;\n }\n }\n }]);\n\n return Block;\n}(_parchment2.default.Block);\n\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default];\n\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = (0, _extend2.default)(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n}\n\nexports.bubbleFormats = bubbleFormats;\nexports.BlockEmbed = BlockEmbed;\nexports.default = Block;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.overload = exports.expandConfig = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\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\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(50);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _editor = __webpack_require__(14);\n\nvar _editor2 = _interopRequireDefault(_editor);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _selection = __webpack_require__(15);\n\nvar _selection2 = _interopRequireDefault(_selection);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill');\n\nvar Quill = function () {\n _createClass(Quill, null, [{\n key: 'debug',\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n _logger2.default.level(limit);\n }\n }, {\n key: 'find',\n value: function find(node) {\n return node.__quill || _parchment2.default.find(node);\n }\n }, {\n key: 'import',\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error('Cannot import ' + name + '. Are you sure it was registered?');\n }\n return this.imports[name];\n }\n }, {\n key: 'register',\n value: function register(path, target) {\n var _this = this;\n\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn('Overwriting ' + path + ' with', target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\n _parchment2.default.register(target);\n } else if (path.startsWith('modules') && typeof target.register === 'function') {\n target.register();\n }\n }\n }\n }]);\n\n function Quill(container) {\n var _this2 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Quill);\n\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter4.default();\n this.scroll = _parchment2.default.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new _editor2.default(this.scroll);\n this.selection = new _selection2.default(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) {\n if (type === _emitter4.default.events.TEXT_CHANGE) {\n _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) {\n var range = _this2.selection.lastRange;\n var index = range && range.length === 0 ? range.index : undefined;\n modify.call(_this2, function () {\n return _this2.editor.update(null, mutations, index);\n }, source);\n });\n var contents = this.clipboard.convert('
' + html + '


');\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n _createClass(Quill, [{\n key: 'addContainer',\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length, source) {\n var _this3 = this;\n\n var _overload = overload(index, length, source);\n\n var _overload2 = _slicedToArray(_overload, 4);\n\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n\n return modify.call(this, function () {\n return _this3.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: 'disable',\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: 'focus',\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var _this4 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n var range = _this4.getSelection(true);\n var change = new _quillDelta2.default();\n if (range == null) {\n return change;\n } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this4.selection.format(name, value);\n return change;\n } else {\n change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n _this4.setSelection(range, _emitter4.default.sources.SILENT);\n return change;\n }, source);\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length, name, value, source) {\n var _this5 = this;\n\n var formats = void 0;\n\n var _overload3 = overload(index, length, name, value, source);\n\n var _overload4 = _slicedToArray(_overload3, 4);\n\n index = _overload4[0];\n length = _overload4[1];\n formats = _overload4[2];\n source = _overload4[3];\n\n return modify.call(this, function () {\n return _this5.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length, name, value, source) {\n var _this6 = this;\n\n var formats = void 0;\n\n var _overload5 = overload(index, length, name, value, source);\n\n var _overload6 = _slicedToArray(_overload5, 4);\n\n index = _overload6[0];\n length = _overload6[1];\n formats = _overload6[2];\n source = _overload6[3];\n\n return modify.call(this, function () {\n return _this6.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var bounds = void 0;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n var containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n }, {\n key: 'getContents',\n value: function getContents() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload7 = overload(index, length);\n\n var _overload8 = _slicedToArray(_overload7, 2);\n\n index = _overload8[0];\n length = _overload8[1];\n\n return this.editor.getContents(index, length);\n }\n }, {\n key: 'getFormat',\n value: function getFormat() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n } else {\n return this.editor.getFormat(index.index, index.length);\n }\n }\n }, {\n key: 'getIndex',\n value: function getIndex(blot) {\n return blot.offset(this.scroll);\n }\n }, {\n key: 'getLength',\n value: function getLength() {\n return this.scroll.length();\n }\n }, {\n key: 'getLeaf',\n value: function getLeaf(index) {\n return this.scroll.leaf(index);\n }\n }, {\n key: 'getLine',\n value: function getLine(index) {\n return this.scroll.line(index);\n }\n }, {\n key: 'getLines',\n value: function getLines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n } else {\n return this.scroll.lines(index, length);\n }\n }\n }, {\n key: 'getModule',\n value: function getModule(name) {\n return this.theme.modules[name];\n }\n }, {\n key: 'getSelection',\n value: function getSelection() {\n var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n }, {\n key: 'getText',\n value: function getText() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload9 = overload(index, length);\n\n var _overload10 = _slicedToArray(_overload9, 2);\n\n index = _overload10[0];\n length = _overload10[1];\n\n return this.editor.getText(index, length);\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n var _this7 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n\n return modify.call(this, function () {\n return _this7.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text, name, value, source) {\n var _this8 = this;\n\n var formats = void 0;\n\n var _overload11 = overload(index, 0, name, value, source);\n\n var _overload12 = _slicedToArray(_overload11, 4);\n\n index = _overload12[0];\n formats = _overload12[2];\n source = _overload12[3];\n\n return modify.call(this, function () {\n return _this8.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: 'isEnabled',\n value: function isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n }, {\n key: 'off',\n value: function off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n }, {\n key: 'on',\n value: function on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n }, {\n key: 'once',\n value: function once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n }, {\n key: 'pasteHTML',\n value: function pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length, source) {\n var _this9 = this;\n\n var _overload13 = overload(index, length, source);\n\n var _overload14 = _slicedToArray(_overload13, 4);\n\n index = _overload14[0];\n length = _overload14[1];\n source = _overload14[3];\n\n return modify.call(this, function () {\n return _this9.editor.removeFormat(index, length);\n }, source, index);\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }, {\n key: 'setContents',\n value: function setContents(delta) {\n var _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n var length = _this10.getLength();\n var deleted = _this10.editor.deleteText(0, length);\n var applied = _this10.editor.applyDelta(delta);\n var lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n _this10.editor.deleteText(_this10.getLength() - 1, 1);\n applied.delete(1);\n }\n var ret = deleted.compose(applied);\n return ret;\n }, source);\n }\n }, {\n key: 'setSelection',\n value: function setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n var _overload15 = overload(index, length, source);\n\n var _overload16 = _slicedToArray(_overload15, 4);\n\n index = _overload16[0];\n length = _overload16[1];\n source = _overload16[3];\n\n this.selection.setRange(new _selection.Range(index, length), source);\n if (source !== _emitter4.default.sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n }, {\n key: 'setText',\n value: function setText(text) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n var delta = new _quillDelta2.default().insert(text);\n return this.setContents(delta, source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n }, {\n key: 'updateContents',\n value: function updateContents(delta) {\n var _this11 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n return _this11.editor.applyDelta(delta, source);\n }, source, true);\n }\n }]);\n\n return Quill;\n}();\n\nQuill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n};\nQuill.events = _emitter4.default.events;\nQuill.sources = _emitter4.default.sources;\n// eslint-disable-next-line no-undef\nQuill.version = false ? 'dev' : \"1.3.7\";\n\nQuill.imports = {\n 'delta': _quillDelta2.default,\n 'parchment': _parchment2.default,\n 'core/module': _module2.default,\n 'core/theme': _theme2.default\n};\n\nfunction expandConfig(container, userConfig) {\n userConfig = (0, _extend2.default)(true, {\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme2.default;\n } else {\n userConfig.theme = Quill.import('themes/' + userConfig.theme);\n if (userConfig.theme == null) {\n throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?');\n }\n }\n var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function (config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function (module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n var moduleConfig = moduleNames.reduce(function (config, name) {\n var moduleClass = Quill.import('modules/' + name);\n if (moduleClass == null) {\n debug.error('Cannot load ' + name + ' module. Are you sure you registered it?');\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) {\n return new _quillDelta2.default();\n }\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, _emitter4.default.sources.SILENT);\n }\n if (change.length() > 0) {\n var _emitter;\n\n var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n var formats = {};\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n }\n // Handle optional source\n source = source || _emitter4.default.sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start = void 0,\n end = void 0;\n if (index instanceof _quillDelta2.default) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter4.default.sources.USER);\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n } else {\n var _map3 = [range.index, range.index + range.length].map(function (pos) {\n if (pos < index || pos === index && source === _emitter4.default.sources.USER) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n\n var _map4 = _slicedToArray(_map3, 2);\n\n start = _map4[0];\n end = _map4[1];\n }\n return new _selection.Range(start, end - start);\n}\n\nexports.expandConfig = expandConfig;\nexports.overload = overload;\nexports.default = Quill;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Inline = function (_Parchment$Inline) {\n _inherits(Inline, _Parchment$Inline);\n\n function Inline() {\n _classCallCheck(this, Inline);\n\n return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments));\n }\n\n _createClass(Inline, [{\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) {\n var blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context);\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: 'compare',\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n }]);\n\n return Inline;\n}(_parchment2.default.Inline);\n\nInline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = ['cursor', 'inline', // Must be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher\n];\n\nexports.default = Inline;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TextBlot = function (_Parchment$Text) {\n _inherits(TextBlot, _Parchment$Text);\n\n function TextBlot() {\n _classCallCheck(this, TextBlot);\n\n return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments));\n }\n\n return TextBlot;\n}(_parchment2.default.Text);\n\nexports.default = TextBlot;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _eventemitter = __webpack_require__(54);\n\nvar _eventemitter2 = _interopRequireDefault(_eventemitter);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:events');\n\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\nEVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n [].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) {\n // TODO use WeakMap\n if (node.__quill && node.__quill.emitter) {\n var _node$__quill$emitter;\n\n (_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args);\n }\n });\n });\n});\n\nvar Emitter = function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this));\n\n _this.listeners = {};\n _this.on('error', debug.error);\n return _this;\n }\n\n _createClass(Emitter, [{\n key: 'emit',\n value: function emit() {\n debug.log.apply(debug, arguments);\n _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments);\n }\n }, {\n key: 'handleDOM',\n value: function handleDOM(event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (this.listeners[event.type] || []).forEach(function (_ref) {\n var node = _ref.node,\n handler = _ref.handler;\n\n if (event.target === node || node.contains(event.target)) {\n handler.apply(undefined, [event].concat(args));\n }\n });\n }\n }, {\n key: 'listenDOM',\n value: function listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push({ node: node, handler: handler });\n }\n }]);\n\n return Emitter;\n}(_eventemitter2.default);\n\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change'\n};\nEmitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n};\n\nexports.default = Emitter;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Module = function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Module);\n\n this.quill = quill;\n this.options = options;\n};\n\nModule.DEFAULTS = {};\n\nexports.default = Module;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar levels = ['error', 'warn', 'log', 'info'];\nvar level = 'warn';\n\nfunction debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\ndebug.level = namespace.level = function (newLevel) {\n level = newLevel;\n};\n\nexports.default = namespace;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pSlice = Array.prototype.slice;\nvar objectKeys = __webpack_require__(52);\nvar isArguments = __webpack_require__(53);\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar Attributor = /** @class */ (function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) { options = {}; }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n }\n else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null)\n this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null)\n return false;\n if (this.whitelist == null)\n return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n }\n else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}());\nexports.default = Attributor;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Code = undefined;\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\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Code = function (_Inline) {\n _inherits(Code, _Inline);\n\n function Code() {\n _classCallCheck(this, Code);\n\n return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments));\n }\n\n return Code;\n}(_inline2.default);\n\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\nvar CodeBlock = function (_Block) {\n _inherits(CodeBlock, _Block);\n\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n\n return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments));\n }\n\n _createClass(CodeBlock, [{\n key: 'delta',\n value: function delta() {\n var _this3 = this;\n\n var text = this.domNode.textContent;\n if (text.endsWith('\\n')) {\n // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce(function (delta, frag) {\n return delta.insert(frag).insert('\\n', _this3.formats());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (name === this.statics.blotName && value) return;\n\n var _descendant = this.descendant(_text2.default, this.length() - 1),\n _descendant2 = _slicedToArray(_descendant, 1),\n text = _descendant2[0];\n\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length === 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) {\n return;\n }\n var nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n var prevNewline = this.newlineIndex(index, true) + 1;\n var isolateLength = nextNewline - prevNewline + 1;\n var blot = this.isolate(prevNewline, isolateLength);\n var next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return;\n\n var _descendant3 = this.descendant(_text2.default, index),\n _descendant4 = _slicedToArray(_descendant3, 2),\n text = _descendant4[0],\n offset = _descendant4[1];\n\n text.insertAt(offset, value);\n }\n }, {\n key: 'length',\n value: function length() {\n var length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n }, {\n key: 'newlineIndex',\n value: function newlineIndex(searchIndex) {\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!reverse) {\n var offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n return offset > -1 ? searchIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(_parchment2.default.create('text', '\\n'));\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {\n var blot = _parchment2.default.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof _parchment2.default.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return CodeBlock;\n}(_block2.default);\n\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = ' ';\n\nexports.Code = Code;\nexports.default = CodeBlock;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\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\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ASCII = /^[ -~]*$/;\n\nvar Editor = function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n _createClass(Editor, [{\n key: 'applyDelta',\n value: function applyDelta(delta) {\n var _this = this;\n\n var consumeNextNewline = false;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n delta = normalizeDelta(delta);\n delta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n _this.scroll.insertAt(index, text);\n\n var _scroll$line = _this.scroll.line(index),\n _scroll$line2 = _slicedToArray(_scroll$line, 2),\n line = _scroll$line2[0],\n offset = _scroll$line2[1];\n\n var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));\n if (line instanceof _block2.default) {\n var _line$descendant = line.descendant(_parchment2.default.Leaf, offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));\n }\n attributes = _op2.default.attributes.diff(formats, attributes) || {};\n } else if (_typeof(op.insert) === 'object') {\n var key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n }\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new _quillDelta2.default().retain(index).delete(length));\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length) {\n var _this2 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return;\n var lines = _this2.scroll.lines(index, Math.max(length, 1));\n var lengthRemaining = length;\n lines.forEach(function (line) {\n var lineLength = line.length();\n if (!(line instanceof _code2.default)) {\n line.format(format, formats[format]);\n } else {\n var codeIndex = index - line.offset(_this2.scroll);\n var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length) {\n var _this3 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'getContents',\n value: function getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n }, {\n key: 'getDelta',\n value: function getDelta() {\n return this.scroll.lines().reduce(function (delta, line) {\n return delta.concat(line.delta());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'getFormat',\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var lines = [],\n leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n\n if (blot instanceof _block2.default) {\n lines.push(blot);\n } else if (blot instanceof _parchment2.default.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length);\n }\n var formatsArr = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = (0, _block.bubbleFormats)(blots.shift());\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\n }\n return formats;\n });\n return _extend2.default.apply(_extend2.default, formatsArr);\n }\n }, {\n key: 'getText',\n value: function getText(index, length) {\n return this.getContents(index, length).filter(function (op) {\n return typeof op.insert === 'string';\n }).map(function (op) {\n return op.insert;\n }).join('');\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value)));\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text) {\n var _this4 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(function (format) {\n _this4.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'isBlank',\n value: function isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== _block2.default.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _break2.default;\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n\n var _scroll$line3 = this.scroll.line(index + length),\n _scroll$line4 = _slicedToArray(_scroll$line3, 2),\n line = _scroll$line4[0],\n offset = _scroll$line4[1];\n\n var suffixLength = 0,\n suffix = new _quillDelta2.default();\n if (line != null) {\n if (!(line instanceof _code2.default)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));\n var delta = new _quillDelta2.default().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n }, {\n key: 'update',\n value: function update(change) {\n var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n\n var oldDelta = this.delta;\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = _parchment2.default.find(mutations[0].target);\n var formats = (0, _block.bubbleFormats)(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');\n var oldText = new _quillDelta2.default().insert(oldValue);\n var newText = new _quillDelta2.default().insert(textBlot.value());\n var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new _quillDelta2.default());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n }]);\n\n return Editor;\n}();\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n return merged;\n }, {});\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function (delta, op) {\n if (op.insert === 1) {\n var attributes = (0, _clone2.default)(op.attributes);\n delete attributes['image'];\n return delta.insert({ image: op.attributes.image }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = (0, _clone2.default)(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new _quillDelta2.default());\n}\n\nexports.default = Editor;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Range = undefined;\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\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill:selection');\n\nvar Range = function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Range);\n\n this.index = index;\n this.length = length;\n};\n\nvar Selection = function () {\n function Selection(scroll, emitter) {\n var _this = this;\n\n _classCallCheck(this, Selection);\n\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.cursor = _parchment2.default.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown) {\n setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1);\n }\n });\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) {\n if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) {\n _this.update(_emitter4.default.sources.SILENT);\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n var native = _this.getNativeRange();\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () {\n try {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n } catch (ignored) {}\n });\n });\n this.emitter.on(_emitter4.default.events.SCROLL_OPTIMIZE, function (mutations, context) {\n if (context.range) {\n var _context$range = context.range,\n startNode = _context$range.startNode,\n startOffset = _context$range.startOffset,\n endNode = _context$range.endNode,\n endOffset = _context$range.endOffset;\n\n _this.setNativeRange(startNode, startOffset, endNode, endOffset);\n }\n });\n this.update(_emitter4.default.sources.SILENT);\n }\n\n _createClass(Selection, [{\n key: 'handleComposition',\n value: function handleComposition() {\n var _this2 = this;\n\n this.root.addEventListener('compositionstart', function () {\n _this2.composing = true;\n });\n this.root.addEventListener('compositionend', function () {\n _this2.composing = false;\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: 'handleDragging',\n value: function handleDragging() {\n var _this3 = this;\n\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n _this3.update(_emitter4.default.sources.USER);\n });\n }\n }, {\n key: 'focus',\n value: function focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n }, {\n key: 'format',\n value: function format(_format, value) {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return;\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = _parchment2.default.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof _parchment2.default.Leaf) {\n var after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n this.cursor.attach();\n }\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n var node = void 0,\n _scroll$leaf = this.scroll.leaf(index),\n _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2),\n leaf = _scroll$leaf2[0],\n offset = _scroll$leaf2[1];\n if (leaf == null) return null;\n\n var _leaf$position = leaf.position(offset, true);\n\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n\n node = _leaf$position2[0];\n offset = _leaf$position2[1];\n\n var range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n\n var _scroll$leaf3 = this.scroll.leaf(index + length);\n\n var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);\n\n leaf = _scroll$leaf4[0];\n offset = _scroll$leaf4[1];\n\n if (leaf == null) return null;\n\n var _leaf$position3 = leaf.position(offset, true);\n\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n\n node = _leaf$position4[0];\n offset = _leaf$position4[1];\n\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n var side = 'left';\n var rect = void 0;\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }\n }, {\n key: 'getNativeRange',\n value: function getNativeRange() {\n var selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n var nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n var range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n }, {\n key: 'getRange',\n value: function getRange() {\n var normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n var range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return document.activeElement === this.root;\n }\n }, {\n key: 'normalizedToRange',\n value: function normalizedToRange(range) {\n var _this4 = this;\n\n var positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n\n var blot = _parchment2.default.find(node, true);\n var index = blot.offset(_this4.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof _parchment2.default.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\n });\n var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);\n var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));\n return new Range(start, end - start);\n }\n }, {\n key: 'normalizeNative',\n value: function normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n var range = {\n start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, position.offset = offset;\n });\n return range;\n }\n }, {\n key: 'rangeToNative',\n value: function rangeToNative(range) {\n var _this5 = this;\n\n var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n var args = [];\n var scrollLength = this.scroll.length();\n indexes.forEach(function (index, i) {\n index = Math.min(scrollLength - 1, index);\n var node = void 0,\n _scroll$leaf5 = _this5.scroll.leaf(index),\n _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2),\n leaf = _scroll$leaf6[0],\n offset = _scroll$leaf6[1];\n var _leaf$position5 = leaf.position(offset, i !== 0);\n\n var _leaf$position6 = _slicedToArray(_leaf$position5, 2);\n\n node = _leaf$position6[0];\n offset = _leaf$position6[1];\n\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\n }\n return args;\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n\n var _scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _scroll$line2 = _slicedToArray(_scroll$line, 1),\n first = _scroll$line2[0];\n\n var last = first;\n if (range.length > 0) {\n var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n\n var _scroll$line4 = _slicedToArray(_scroll$line3, 1);\n\n last = _scroll$line4[0];\n }\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: 'setNativeRange',\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n var selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n var native = (this.getNativeRange() || {}).native;\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\n }\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)\n }\n }\n }, {\n key: 'setRange',\n value: function setRange(range) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var oldRange = this.lastRange;\n\n var _getRange = this.getRange(),\n _getRange2 = _slicedToArray(_getRange, 2),\n lastRange = _getRange2[0],\n nativeRange = _getRange2[1];\n\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {\n var _emitter;\n\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n }\n }]);\n\n return Selection;\n}();\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\nexports.Range = Range;\nexports.default = Selection;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Break = function (_Parchment$Embed) {\n _inherits(Break, _Parchment$Embed);\n\n function Break() {\n _classCallCheck(this, Break);\n\n return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments));\n }\n\n _createClass(Break, [{\n key: 'insertInto',\n value: function insertInto(parent, ref) {\n if (parent.children.length === 0) {\n _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref);\n } else {\n this.remove();\n }\n }\n }, {\n key: 'length',\n value: function length() {\n return 0;\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }], [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n return Break;\n}(_parchment2.default.Embed);\n\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\nexports.default = Break;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var 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 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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = __webpack_require__(44);\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar ContainerBlot = /** @class */ (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice\n .call(this.domNode.childNodes)\n .reverse()\n .forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n }\n catch (err) {\n if (err instanceof Registry.ParchmentError)\n return;\n else\n throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n return [child, offset];\n }\n else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n }\n else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) { index = 0; }\n if (length === void 0) { length = Number.MAX_VALUE; }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n }\n else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null &&\n !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n }\n else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n }\n else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null &&\n // @ts-ignore\n node.tagName !== 'IFRAME' &&\n document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null)\n return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes\n .filter(function (node) {\n return node.parentNode == _this.domNode;\n })\n .sort(function (a, b) {\n if (a === b)\n return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n })\n .forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n }\n catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nexports.default = ContainerBlot;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var 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 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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar store_1 = __webpack_require__(31);\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar FormatBlot = /** @class */ (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n }\n else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n }\n else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var 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 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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar LeafBlot = /** @class */ (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node ||\n this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0)\n offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\n\n\nvar lib = {\n attributes: {\n compose: function (a, b, keepNull) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = extend(true, {}, b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n diff: function(a, b) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n if (!equal(a[key], b[key])) {\n attributes[key] = b[key] === undefined ? null : b[key];\n }\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n transform: function (a, b, priority) {\n if (typeof a !== 'object') return b;\n if (typeof b !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n var attributes = Object.keys(b).reduce(function (attributes, key) {\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n\n iterator: function (ops) {\n return new Iterator(ops);\n },\n\n length: function (op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n};\n\n\nfunction Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n};\n\nIterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n};\n\nIterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp)\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp['delete'] === 'number') {\n return { 'delete': length };\n } else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return { retain: Infinity };\n }\n};\n\nIterator.prototype.peek = function () {\n return this.ops[this.index];\n};\n\nIterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n};\n\nIterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n};\n\nIterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n};\n\n\nmodule.exports = lib;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nvar clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction isLine(blot) {\n return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;\n}\n\nvar Scroll = function (_Parchment$Scroll) {\n _inherits(Scroll, _Parchment$Scroll);\n\n function Scroll(domNode, config) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode));\n\n _this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n _this.whitelist = config.whitelist.reduce(function (whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n // Some reason fixes composition issues with character languages in Windows/Chrome, Safari\n _this.domNode.addEventListener('DOMNodeInserted', function () {});\n _this.optimize();\n _this.enable();\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'batchStart',\n value: function batchStart() {\n this.batch = true;\n }\n }, {\n key: 'batchEnd',\n value: function batchEnd() {\n this.batch = false;\n this.optimize();\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n var _line = this.line(index),\n _line2 = _slicedToArray(_line, 2),\n first = _line2[0],\n offset = _line2[1];\n\n var _line3 = this.line(index + length),\n _line4 = _slicedToArray(_line3, 1),\n last = _line4[0];\n\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof _code2.default) {\n var newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof _code2.default) {\n var _newlineIndex = last.newlineIndex(0);\n if (_newlineIndex > -1) {\n last.split(_newlineIndex + 1);\n }\n }\n var ref = last.children.head instanceof _break2.default ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n this.optimize();\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);\n this.optimize();\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) {\n var blot = _parchment2.default.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n var embed = _parchment2.default.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def);\n }\n this.optimize();\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) {\n var wrapper = _parchment2.default.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref);\n }\n }, {\n key: 'leaf',\n value: function leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n }, {\n key: 'line',\n value: function line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n return this.descendant(isLine, index);\n }\n }, {\n key: 'lines',\n value: function lines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n var getLines = function getLines(blot, index, length) {\n var lines = [],\n lengthLeft = length;\n blot.children.forEachAt(index, length, function (child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof _parchment2.default.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n }, {\n key: 'optimize',\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.batch === true) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: 'update',\n value: function update(mutations) {\n if (this.batch === true) return;\n var source = _emitter2.default.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n}(_parchment2.default.Scroll);\n\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = 'block';\nScroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];\n\nexports.default = Scroll;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SHORTKEY = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\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\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:keyboard');\n\nvar SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar Keyboard = function (_Module) {\n _inherits(Keyboard, _Module);\n\n _createClass(Keyboard, null, [{\n key: 'match',\n value: function match(evt, binding) {\n binding = normalize(binding);\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n return binding.key === (evt.which || evt.keyCode);\n }\n }]);\n\n function Keyboard(quill, options) {\n _classCallCheck(this, Keyboard);\n\n var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));\n\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {\n return;\n }\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);\n } else {\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\n }\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace);\n _this.listen();\n return _this;\n }\n\n _createClass(Keyboard, [{\n key: 'addBinding',\n value: function addBinding(key) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = { handler: context };\n }\n if (typeof handler === 'function') {\n handler = { handler: handler };\n }\n binding = (0, _extend2.default)(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this2 = this;\n\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented) return;\n var which = evt.which || evt.keyCode;\n var bindings = (_this2.bindings[which] || []).filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n var range = _this2.quill.getSelection();\n if (range == null || !_this2.quill.hasFocus()) return;\n\n var _quill$getLine = _this2.quill.getLine(range.index),\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2),\n line = _quill$getLine2[0],\n offset = _quill$getLine2[1];\n\n var _quill$getLeaf = _this2.quill.getLeaf(range.index),\n _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),\n leafStart = _quill$getLeaf2[0],\n offsetStart = _quill$getLeaf2[1];\n\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length),\n _ref2 = _slicedToArray(_ref, 2),\n leafEnd = _ref2[0],\n offsetEnd = _ref2[1];\n\n var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this2.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n var prevented = bindings.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function (name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (_typeof(binding.format) === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function (name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(_this2, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }]);\n\n return Keyboard;\n}(_module2.default);\n\nKeyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\n\nKeyboard.DEFAULTS = {\n bindings: {\n 'bold': makeFormatHandler('bold'),\n 'italic': makeFormatHandler('italic'),\n 'underline': makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: Keyboard.keys.TAB,\n format: ['blockquote', 'indent', 'list'],\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', _quill2.default.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.BACKSPACE,\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function handler(range) {\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, _quill2.default.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: { list: 'checked' },\n handler: function handler(range) {\n var _quill$getLine3 = this.quill.getLine(range.index),\n _quill$getLine4 = _slicedToArray(_quill$getLine3, 2),\n line = _quill$getLine4[0],\n offset = _quill$getLine4[1];\n\n var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' });\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _quill$getLine5 = this.quill.getLine(range.index),\n _quill$getLine6 = _slicedToArray(_quill$getLine5, 2),\n line = _quill$getLine6[0],\n offset = _quill$getLine6[1];\n\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n var length = context.prefix.length;\n\n var _quill$getLine7 = this.quill.getLine(range.index),\n _quill$getLine8 = _slicedToArray(_quill$getLine7, 2),\n line = _quill$getLine8[0],\n offset = _quill$getLine8[1];\n\n if (offset > length) return true;\n var value = void 0;\n switch (context.prefix.trim()) {\n case '[]':case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-':case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function handler(range) {\n var _quill$getLine9 = this.quill.getLine(range.index),\n _quill$getLine10 = _slicedToArray(_quill$getLine9, 2),\n line = _quill$getLine10[0],\n offset = _quill$getLine10[1];\n\n var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1);\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n};\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var _ref3;\n\n var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return _ref3 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {\n var index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += range.length + 1;\n }\n\n var _quill$getLeaf3 = this.quill.getLeaf(index),\n _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),\n leaf = _quill$getLeaf4[0];\n\n if (!(leaf instanceof _parchment2.default.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);\n }\n }\n return false;\n }), _ref3;\n}\n\nfunction handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n\n var _quill$getLine11 = this.quill.getLine(range.index),\n _quill$getLine12 = _slicedToArray(_quill$getLine11, 1),\n line = _quill$getLine12[0];\n\n var formats = {};\n if (context.offset === 0) {\n var _quill$getLine13 = this.quill.getLine(range.index - 1),\n _quill$getLine14 = _slicedToArray(_quill$getLine13, 1),\n prev = _quill$getLine14[0];\n\n if (prev != null && prev.length() > 1) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);\n }\n this.quill.focus();\n}\n\nfunction handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {},\n nextLength = 0;\n\n var _quill$getLine15 = this.quill.getLine(range.index),\n _quill$getLine16 = _slicedToArray(_quill$getLine15, 1),\n line = _quill$getLine16[0];\n\n if (context.offset >= line.length() - 1) {\n var _quill$getLine17 = this.quill.getLine(range.index + 1),\n _quill$getLine18 = _slicedToArray(_quill$getLine17, 1),\n next = _quill$getLine18[0];\n\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);\n }\n}\n\nfunction handleDeleteRange(range) {\n var lines = this.quill.getLines(range);\n var formats = {};\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);\n }\n this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\n this.quill.focus();\n}\n\nfunction handleEnter(range, context) {\n var _this3 = this;\n\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {\n if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, _quill2.default.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'link') return;\n _this3.quill.format(name, context.format[name], _quill2.default.sources.USER);\n });\n}\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: { 'code-block': true },\n handler: function handler(range) {\n var CodeBlock = _parchment2.default.query('code-block');\n var index = range.index,\n length = range.length;\n\n var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n block = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (block == null) return;\n var scrollIndex = this.quill.getIndex(block);\n var start = block.newlineIndex(offset, true) + 1;\n var end = block.newlineIndex(scrollIndex + offset + length);\n var lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach(function (line, i) {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(_quill2.default.sources.USER);\n this.quill.setSelection(index, length, _quill2.default.sources.SILENT);\n }\n };\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _quill2.default.sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({ key: binding });\n }\n if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {\n binding = (0, _clone2.default)(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\nexports.default = Keyboard;\nexports.SHORTKEY = SHORTKEY;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Cursor = function (_Parchment$Embed) {\n _inherits(Cursor, _Parchment$Embed);\n\n _createClass(Cursor, null, [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n function Cursor(domNode, selection) {\n _classCallCheck(this, Cursor);\n\n var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));\n\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n _this.domNode.appendChild(_this.textNode);\n _this._length = 0;\n return _this;\n }\n\n _createClass(Cursor, [{\n key: 'detach',\n value: function detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (this._length !== 0) {\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);\n }\n var target = this,\n index = 0;\n while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n }, {\n key: 'index',\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'length',\n value: function length() {\n return this._length;\n }\n }, {\n key: 'position',\n value: function position() {\n return [this.textNode, this.textNode.data.length];\n }\n }, {\n key: 'remove',\n value: function remove() {\n _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);\n this.parent = null;\n }\n }, {\n key: 'restore',\n value: function restore() {\n if (this.selection.composing || this.parent == null) return;\n var textNode = this.textNode;\n var range = this.selection.getNativeRange();\n var restoreText = void 0,\n start = void 0,\n end = void 0;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n var _ref = [textNode, range.start.offset, range.end.offset];\n restoreText = _ref[0];\n start = _ref[1];\n end = _ref[2];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n var text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof _text2.default) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(_parchment2.default.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n var _map = [start, end].map(function (offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }]);\n\n return Cursor;\n}(_parchment2.default.Embed);\n\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = '\\uFEFF'; // Zero width no break space\n\n\nexports.default = Cursor;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Container = function (_Parchment$Container) {\n _inherits(Container, _Parchment$Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));\n }\n\n return Container;\n}(_parchment2.default.Container);\n\nContainer.allowedChildren = [_block2.default, _block.BlockEmbed, Container];\n\nexports.default = Container;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorAttributor = function (_Parchment$Attributor) {\n _inherits(ColorAttributor, _Parchment$Attributor);\n\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n\n return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments));\n }\n\n _createClass(ColorAttributor, [{\n key: 'value',\n value: function value(domNode) {\n var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function (component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n }]);\n\n return ColorAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.ColorAttributor = ColorAttributor;\nexports.ColorClass = ColorClass;\nexports.ColorStyle = ColorStyle;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sanitize = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Link = function (_Inline) {\n _inherits(Link, _Inline);\n\n function Link() {\n _classCallCheck(this, Link);\n\n return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments));\n }\n\n _createClass(Link, [{\n key: 'format',\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value);\n value = this.sanitize(value);\n node.setAttribute('href', value);\n node.setAttribute('rel', 'noopener noreferrer');\n node.setAttribute('target', '_blank');\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return domNode.getAttribute('href');\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n }]);\n\n return Link;\n}(_inline2.default);\n\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\nfunction _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\nexports.default = Link;\nexports.sanitize = _sanitize;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _dropdown = __webpack_require__(107);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar optionsCounter = 0;\n\nfunction toggleAriaAttribute(element, attribute) {\n element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\n}\n\nvar Picker = function () {\n function Picker(select) {\n var _this = this;\n\n _classCallCheck(this, Picker);\n\n this.select = select;\n this.container = document.createElement('span');\n this.buildPicker();\n this.select.style.display = 'none';\n this.select.parentNode.insertBefore(this.container, this.select);\n\n this.label.addEventListener('mousedown', function () {\n _this.togglePicker();\n });\n this.label.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to open the picker\n case _keyboard2.default.keys.ENTER:\n _this.togglePicker();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n this.select.addEventListener('change', this.update.bind(this));\n }\n\n _createClass(Picker, [{\n key: 'togglePicker',\n value: function togglePicker() {\n this.container.classList.toggle('ql-expanded');\n // Toggle aria-expanded and aria-hidden to make the picker accessible\n toggleAriaAttribute(this.label, 'aria-expanded');\n toggleAriaAttribute(this.options, 'aria-hidden');\n }\n }, {\n key: 'buildItem',\n value: function buildItem(option) {\n var _this2 = this;\n\n var item = document.createElement('span');\n item.tabIndex = '0';\n item.setAttribute('role', 'button');\n\n item.classList.add('ql-picker-item');\n if (option.hasAttribute('value')) {\n item.setAttribute('data-value', option.getAttribute('value'));\n }\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\n item.addEventListener('click', function () {\n _this2.selectItem(item, true);\n });\n item.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to select an item\n case _keyboard2.default.keys.ENTER:\n _this2.selectItem(item, true);\n event.preventDefault();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this2.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n\n return item;\n }\n }, {\n key: 'buildLabel',\n value: function buildLabel() {\n var label = document.createElement('span');\n label.classList.add('ql-picker-label');\n label.innerHTML = _dropdown2.default;\n label.tabIndex = '0';\n label.setAttribute('role', 'button');\n label.setAttribute('aria-expanded', 'false');\n this.container.appendChild(label);\n return label;\n }\n }, {\n key: 'buildOptions',\n value: function buildOptions() {\n var _this3 = this;\n\n var options = document.createElement('span');\n options.classList.add('ql-picker-options');\n\n // Don't want screen readers to read this until options are visible\n options.setAttribute('aria-hidden', 'true');\n options.tabIndex = '-1';\n\n // Need a unique id for aria-controls\n options.id = 'ql-picker-options-' + optionsCounter;\n optionsCounter += 1;\n this.label.setAttribute('aria-controls', options.id);\n\n this.options = options;\n\n [].slice.call(this.select.options).forEach(function (option) {\n var item = _this3.buildItem(option);\n options.appendChild(item);\n if (option.selected === true) {\n _this3.selectItem(item);\n }\n });\n this.container.appendChild(options);\n }\n }, {\n key: 'buildPicker',\n value: function buildPicker() {\n var _this4 = this;\n\n [].slice.call(this.select.attributes).forEach(function (item) {\n _this4.container.setAttribute(item.name, item.value);\n });\n this.container.classList.add('ql-picker');\n this.label = this.buildLabel();\n this.buildOptions();\n }\n }, {\n key: 'escape',\n value: function escape() {\n var _this5 = this;\n\n // Close menu and return focus to trigger label\n this.close();\n // Need setTimeout for accessibility to ensure that the browser executes\n // focus on the next process thread and after any DOM content changes\n setTimeout(function () {\n return _this5.label.focus();\n }, 1);\n }\n }, {\n key: 'close',\n value: function close() {\n this.container.classList.remove('ql-expanded');\n this.label.setAttribute('aria-expanded', 'false');\n this.options.setAttribute('aria-hidden', 'true');\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item) {\n var trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n if (item == null) return;\n item.classList.add('ql-selected');\n this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n if (item.hasAttribute('data-value')) {\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\n } else {\n this.label.removeAttribute('data-value');\n }\n if (item.hasAttribute('data-label')) {\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\n } else {\n this.label.removeAttribute('data-label');\n }\n if (trigger) {\n if (typeof Event === 'function') {\n this.select.dispatchEvent(new Event('change'));\n } else if ((typeof Event === 'undefined' ? 'undefined' : _typeof(Event)) === 'object') {\n // IE11\n var event = document.createEvent('Event');\n event.initEvent('change', true, true);\n this.select.dispatchEvent(event);\n }\n this.close();\n }\n }\n }, {\n key: 'update',\n value: function update() {\n var option = void 0;\n if (this.select.selectedIndex > -1) {\n var item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n option = this.select.options[this.select.selectedIndex];\n this.selectItem(item);\n } else {\n this.selectItem(null);\n }\n var isActive = option != null && option !== this.select.querySelector('option[selected]');\n this.label.classList.toggle('ql-active', isActive);\n }\n }]);\n\n return Picker;\n}();\n\nexports.default = Picker;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _scroll = __webpack_require__(22);\n\nvar _scroll2 = _interopRequireDefault(_scroll);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _clipboard = __webpack_require__(55);\n\nvar _clipboard2 = _interopRequireDefault(_clipboard);\n\nvar _history = __webpack_require__(42);\n\nvar _history2 = _interopRequireDefault(_history);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_quill2.default.register({\n 'blots/block': _block2.default,\n 'blots/block/embed': _block.BlockEmbed,\n 'blots/break': _break2.default,\n 'blots/container': _container2.default,\n 'blots/cursor': _cursor2.default,\n 'blots/embed': _embed2.default,\n 'blots/inline': _inline2.default,\n 'blots/scroll': _scroll2.default,\n 'blots/text': _text2.default,\n\n 'modules/clipboard': _clipboard2.default,\n 'modules/history': _history2.default,\n 'modules/keyboard': _keyboard2.default\n});\n\n_parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);\n\nexports.default = _quill2.default;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar ShadowBlot = /** @class */ (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = { blot: this };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n }\n else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n }\n else {\n node = document.createElement(this.tagName[0]);\n }\n }\n else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n }\n else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent = Registry.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) { refBlot = null; }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode ||\n this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) { root = this.parent; }\n if (this.parent == null || this == root)\n return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null)\n return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar Registry = __webpack_require__(1);\nvar AttributorStore = /** @class */ (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n }\n else {\n delete this.attributes[attribute.attrName];\n }\n }\n }\n else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes\n .concat(classes)\n .concat(styles)\n .forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n AttributorStore.prototype.values = function () {\n var _this = this;\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var 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 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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\nvar ClassAttributor = /** @class */ (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name\n .split('-')\n .slice(0, -1)\n .join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var 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 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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts\n .slice(1)\n .map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n })\n .join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Theme = function () {\n function Theme(quill, options) {\n _classCallCheck(this, Theme);\n\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n _createClass(Theme, [{\n key: 'init',\n value: function init() {\n var _this = this;\n\n Object.keys(this.options.modules).forEach(function (name) {\n if (_this.modules[name] == null) {\n _this.addModule(name);\n }\n });\n }\n }, {\n key: 'addModule',\n value: function addModule(name) {\n var moduleClass = this.quill.constructor.import('modules/' + name);\n this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n }]);\n\n return Theme;\n}();\n\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n 'default': Theme\n};\n\nexports.default = Theme;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GUARD_TEXT = '\\uFEFF';\n\nvar Embed = function (_Parchment$Embed) {\n _inherits(Embed, _Parchment$Embed);\n\n function Embed(node) {\n _classCallCheck(this, Embed);\n\n var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node));\n\n _this.contentNode = document.createElement('span');\n _this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(_this.domNode.childNodes).forEach(function (childNode) {\n _this.contentNode.appendChild(childNode);\n });\n _this.leftGuard = document.createTextNode(GUARD_TEXT);\n _this.rightGuard = document.createTextNode(GUARD_TEXT);\n _this.domNode.appendChild(_this.leftGuard);\n _this.domNode.appendChild(_this.contentNode);\n _this.domNode.appendChild(_this.rightGuard);\n return _this;\n }\n\n _createClass(Embed, [{\n key: 'index',\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'restore',\n value: function restore(node) {\n var range = void 0,\n textNode = void 0;\n var text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof _text2.default) {\n var prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof _text2.default) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n}(_parchment2.default.Embed);\n\nexports.default = Embed;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\n\nvar AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);\nvar AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);\nvar AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);\n\nexports.AlignAttribute = AlignAttribute;\nexports.AlignClass = AlignClass;\nexports.AlignStyle = AlignStyle;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BackgroundStyle = exports.BackgroundClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _color = __webpack_require__(26);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.BackgroundClass = BackgroundClass;\nexports.BackgroundStyle = BackgroundStyle;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['rtl']\n};\n\nvar DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config);\nvar DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config);\nvar DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config);\n\nexports.DirectionAttribute = DirectionAttribute;\nexports.DirectionClass = DirectionClass;\nexports.DirectionStyle = DirectionStyle;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontClass = exports.FontStyle = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar config = {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\n\nvar FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config);\n\nvar FontStyleAttributor = function (_Parchment$Attributor) {\n _inherits(FontStyleAttributor, _Parchment$Attributor);\n\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n\n return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments));\n }\n\n _createClass(FontStyleAttributor, [{\n key: 'value',\n value: function value(node) {\n return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n\n return FontStyleAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\nexports.FontStyle = FontStyle;\nexports.FontClass = FontClass;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SizeStyle = exports.SizeClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\nexports.SizeClass = SizeClass;\nexports.SizeStyle = SizeStyle;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n 'align': {\n '': __webpack_require__(76),\n 'center': __webpack_require__(77),\n 'right': __webpack_require__(78),\n 'justify': __webpack_require__(79)\n },\n 'background': __webpack_require__(80),\n 'blockquote': __webpack_require__(81),\n 'bold': __webpack_require__(82),\n 'clean': __webpack_require__(83),\n 'code': __webpack_require__(58),\n 'code-block': __webpack_require__(58),\n 'color': __webpack_require__(84),\n 'direction': {\n '': __webpack_require__(85),\n 'rtl': __webpack_require__(86)\n },\n 'float': {\n 'center': __webpack_require__(87),\n 'full': __webpack_require__(88),\n 'left': __webpack_require__(89),\n 'right': __webpack_require__(90)\n },\n 'formula': __webpack_require__(91),\n 'header': {\n '1': __webpack_require__(92),\n '2': __webpack_require__(93)\n },\n 'italic': __webpack_require__(94),\n 'image': __webpack_require__(95),\n 'indent': {\n '+1': __webpack_require__(96),\n '-1': __webpack_require__(97)\n },\n 'link': __webpack_require__(98),\n 'list': {\n 'ordered': __webpack_require__(99),\n 'bullet': __webpack_require__(100),\n 'check': __webpack_require__(101)\n },\n 'script': {\n 'sub': __webpack_require__(102),\n 'super': __webpack_require__(103)\n },\n 'strike': __webpack_require__(104),\n 'underline': __webpack_require__(105),\n 'video': __webpack_require__(106)\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLastChangeIndex = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar History = function (_Module) {\n _inherits(History, _Module);\n\n function History(quill, options) {\n _classCallCheck(this, History);\n\n var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options));\n\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n _this.clear();\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return;\n if (!_this.options.userOnly || source === _quill2.default.sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this));\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this));\n if (/Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this));\n }\n return _this;\n }\n\n _createClass(History, [{\n key: 'change',\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], _quill2.default.sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.stack = { undo: [], redo: [] };\n }\n }, {\n key: 'cutoff',\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: 'record',\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = this.quill.getContents().diff(oldDelta);\n var timestamp = Date.now();\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: undoDelta\n });\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n }, {\n key: 'redo',\n value: function redo() {\n this.change('redo', 'undo');\n }\n }, {\n key: 'transform',\n value: function transform(delta) {\n this.stack.undo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n }, {\n key: 'undo',\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n\n return History;\n}(_module2.default);\n\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction endsWithNewlineChange(delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null;\n });\n }\n return false;\n}\n\nfunction getLastChangeIndex(delta) {\n var deleteLength = delta.reduce(function (length, op) {\n length += op.delete || 0;\n return length;\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\nexports.default = History;\nexports.getLastChangeIndex = getLastChangeIndex;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BaseTooltip = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ALIGNS = [false, 'center', 'right', 'justify'];\n\nvar COLORS = [\"#000000\", \"#e60000\", \"#ff9900\", \"#ffff00\", \"#008a00\", \"#0066cc\", \"#9933ff\", \"#ffffff\", \"#facccc\", \"#ffebcc\", \"#ffffcc\", \"#cce8cc\", \"#cce0f5\", \"#ebd6ff\", \"#bbbbbb\", \"#f06666\", \"#ffc266\", \"#ffff66\", \"#66b966\", \"#66a3e0\", \"#c285ff\", \"#888888\", \"#a10000\", \"#b26b00\", \"#b2b200\", \"#006100\", \"#0047b2\", \"#6b24b2\", \"#444444\", \"#5c0000\", \"#663d00\", \"#666600\", \"#003700\", \"#002966\", \"#3d1466\"];\n\nvar FONTS = [false, 'serif', 'monospace'];\n\nvar HEADERS = ['1', '2', '3', false];\n\nvar SIZES = ['small', false, 'large', 'huge'];\n\nvar BaseTheme = function (_Theme) {\n _inherits(BaseTheme, _Theme);\n\n function BaseTheme(quill, options) {\n _classCallCheck(this, BaseTheme);\n\n var _this = _possibleConstructorReturn(this, (BaseTheme.__proto__ || Object.getPrototypeOf(BaseTheme)).call(this, quill, options));\n\n var listener = function listener(e) {\n if (!document.body.contains(quill.root)) {\n return document.body.removeEventListener('click', listener);\n }\n if (_this.tooltip != null && !_this.tooltip.root.contains(e.target) && document.activeElement !== _this.tooltip.textbox && !_this.quill.hasFocus()) {\n _this.tooltip.hide();\n }\n if (_this.pickers != null) {\n _this.pickers.forEach(function (picker) {\n if (!picker.container.contains(e.target)) {\n picker.close();\n }\n });\n }\n };\n quill.emitter.listenDOM('click', document.body, listener);\n return _this;\n }\n\n _createClass(BaseTheme, [{\n key: 'addModule',\n value: function addModule(name) {\n var module = _get(BaseTheme.prototype.__proto__ || Object.getPrototypeOf(BaseTheme.prototype), 'addModule', this).call(this, name);\n if (name === 'toolbar') {\n this.extendToolbar(module);\n }\n return module;\n }\n }, {\n key: 'buildButtons',\n value: function buildButtons(buttons, icons) {\n buttons.forEach(function (button) {\n var className = button.getAttribute('class') || '';\n className.split(/\\s+/).forEach(function (name) {\n if (!name.startsWith('ql-')) return;\n name = name.slice('ql-'.length);\n if (icons[name] == null) return;\n if (name === 'direction') {\n button.innerHTML = icons[name][''] + icons[name]['rtl'];\n } else if (typeof icons[name] === 'string') {\n button.innerHTML = icons[name];\n } else {\n var value = button.value || '';\n if (value != null && icons[name][value]) {\n button.innerHTML = icons[name][value];\n }\n }\n });\n });\n }\n }, {\n key: 'buildPickers',\n value: function buildPickers(selects, icons) {\n var _this2 = this;\n\n this.pickers = selects.map(function (select) {\n if (select.classList.contains('ql-align')) {\n if (select.querySelector('option') == null) {\n fillSelect(select, ALIGNS);\n }\n return new _iconPicker2.default(select, icons.align);\n } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n var format = select.classList.contains('ql-background') ? 'background' : 'color';\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\n return new _colorPicker2.default(select, icons[format]);\n } else {\n if (select.querySelector('option') == null) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS);\n } else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS);\n } else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES);\n }\n }\n return new _picker2.default(select);\n }\n });\n var update = function update() {\n _this2.pickers.forEach(function (picker) {\n picker.update();\n });\n };\n this.quill.on(_emitter2.default.events.EDITOR_CHANGE, update);\n }\n }]);\n\n return BaseTheme;\n}(_theme2.default);\n\nBaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n formula: function formula() {\n this.quill.theme.tooltip.edit('formula');\n },\n image: function image() {\n var _this3 = this;\n\n var fileInput = this.container.querySelector('input.ql-image[type=file]');\n if (fileInput == null) {\n fileInput = document.createElement('input');\n fileInput.setAttribute('type', 'file');\n fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');\n fileInput.classList.add('ql-image');\n fileInput.addEventListener('change', function () {\n if (fileInput.files != null && fileInput.files[0] != null) {\n var reader = new FileReader();\n reader.onload = function (e) {\n var range = _this3.quill.getSelection(true);\n _this3.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({ image: e.target.result }), _emitter2.default.sources.USER);\n _this3.quill.setSelection(range.index + 1, _emitter2.default.sources.SILENT);\n fileInput.value = \"\";\n };\n reader.readAsDataURL(fileInput.files[0]);\n }\n });\n this.container.appendChild(fileInput);\n }\n fileInput.click();\n },\n video: function video() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n});\n\nvar BaseTooltip = function (_Tooltip) {\n _inherits(BaseTooltip, _Tooltip);\n\n function BaseTooltip(quill, boundsContainer) {\n _classCallCheck(this, BaseTooltip);\n\n var _this4 = _possibleConstructorReturn(this, (BaseTooltip.__proto__ || Object.getPrototypeOf(BaseTooltip)).call(this, quill, boundsContainer));\n\n _this4.textbox = _this4.root.querySelector('input[type=\"text\"]');\n _this4.listen();\n return _this4;\n }\n\n _createClass(BaseTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this5 = this;\n\n this.textbox.addEventListener('keydown', function (event) {\n if (_keyboard2.default.match(event, 'enter')) {\n _this5.save();\n event.preventDefault();\n } else if (_keyboard2.default.match(event, 'escape')) {\n _this5.cancel();\n event.preventDefault();\n }\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.hide();\n }\n }, {\n key: 'edit',\n value: function edit() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link';\n var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\n this.position(this.quill.getBounds(this.quill.selection.savedRange));\n this.textbox.select();\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute('data-' + mode) || '');\n this.root.setAttribute('data-mode', mode);\n }\n }, {\n key: 'restoreFocus',\n value: function restoreFocus() {\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.quill.focus();\n this.quill.scrollingContainer.scrollTop = scrollTop;\n }\n }, {\n key: 'save',\n value: function save() {\n var value = this.textbox.value;\n switch (this.root.getAttribute('data-mode')) {\n case 'link':\n {\n var scrollTop = this.quill.root.scrollTop;\n if (this.linkRange) {\n this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER);\n delete this.linkRange;\n } else {\n this.restoreFocus();\n this.quill.format('link', value, _emitter2.default.sources.USER);\n }\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n case 'video':\n {\n value = extractVideoUrl(value);\n } // eslint-disable-next-line no-fallthrough\n case 'formula':\n {\n if (!value) break;\n var range = this.quill.getSelection(true);\n if (range != null) {\n var index = range.index + range.length;\n this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER);\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER);\n }\n this.quill.setSelection(index + 2, _emitter2.default.sources.USER);\n }\n break;\n }\n default:\n }\n this.textbox.value = '';\n this.hide();\n }\n }]);\n\n return BaseTooltip;\n}(_tooltip2.default);\n\nfunction extractVideoUrl(url) {\n var match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n if (match) {\n return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0';\n }\n if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) {\n // eslint-disable-line no-cond-assign\n return (match[1] || 'https') + '://player.vimeo.com/video/' + match[2] + '/';\n }\n return url;\n}\n\nfunction fillSelect(select, values) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', value);\n }\n select.appendChild(option);\n });\n}\n\nexports.BaseTooltip = BaseTooltip;\nexports.default = BaseTheme;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n if (cur === node)\n return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node)\n return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n }\n else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n }\n else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0, cur = this.head;\n while (cur != null) {\n if (cur === target)\n return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node))\n return;\n if (node.prev != null)\n node.prev.next = node.next;\n if (node.next != null)\n node.next.prev = node.prev;\n if (node === this.head)\n this.head = node.next;\n if (node === this.tail)\n this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) { curNode = this.head; }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null)\n curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var cur, next = this.iterator();\n while ((cur = next())) {\n var length = cur.length();\n if (index < length ||\n (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {\n return [cur, index];\n }\n index -= length;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0)\n return;\n var _a = this.find(index), startNode = _a[0], offset = _a[1];\n var cur, curIndex = index - offset, next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n }\n else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\n }\n };\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n LinkedList.prototype.reduce = function (callback, memo) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var 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 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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n }\n else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n if (context === void 0) { context = {}; }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0)\n mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) { markParent = true; }\n if (blot == null || blot === _this)\n return;\n if (blot.domNode.parentNode == null)\n return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n }\n else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0)\n mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) { context = {}; }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations\n .map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n })\n .forEach(function (blot) {\n if (blot == null ||\n blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null)\n return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var 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 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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var 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 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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\nvar BlockBlot = /** @class */ (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n }\n else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n }\n else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n }\n else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var 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 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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar EmbedBlot = /** @class */ (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\n };\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var 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 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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar Registry = __webpack_require__(1);\nvar TextBlot = /** @class */ (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize'])\n text = text['normalize']();\n return text;\n };\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\n };\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n }\n else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n }\n else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar elem = document.createElement('div');\nelem.classList.toggle('test-class', false);\nif (elem.classList.contains('test-class')) {\n var _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function (token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function (searchString, position) {\n position = position || 0;\n return this.substr(position, searchString.length) === searchString;\n };\n}\n\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function (searchString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n});\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\n/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos) {\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n // Check cursor_pos within bounds\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs);\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\n diffs = fix_emoji(diffs);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 != 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n */\nfunction diff_cleanupMerge(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs);\n }\n};\n\n\nvar diff = diff_main;\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n/*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\nfunction cursor_normalize_diff (diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n if (cursor_pos === next_pos) {\n return [i + 1, diffs];\n } else if (cursor_pos < next_pos) {\n // copy to prevent side effects\n diffs = diffs.slice();\n // split d into two diff changes\n var split_pos = cursor_pos - current_pos;\n var d_left = [d[0], d[1].slice(0, split_pos)];\n var d_right = [d[0], d[1].slice(split_pos)];\n diffs.splice(i, 1, d_left, d_right);\n return [i + 1, diffs];\n } else {\n current_pos = next_pos;\n }\n }\n }\n throw new Error('cursor_pos is out of bounds!')\n}\n\n/*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n * Check if a naive shift is possible:\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n * Case 2)\n * Check if the following shifts are possible:\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n * ^ ^\n * d d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\nfunction fix_cursor (diffs, cursor_pos) {\n var norm = cursor_normalize_diff(diffs, cursor_pos);\n var ndiffs = norm[1];\n var cursor_pointer = norm[0];\n var d = ndiffs[cursor_pointer];\n var d_next = ndiffs[cursor_pointer + 1];\n\n if (d == null) {\n // Text was deleted from end of original string,\n // cursor is now out of bounds in new string\n return diffs;\n } else if (d[0] !== DIFF_EQUAL) {\n // A modification happened at the cursor location.\n // This is the expected outcome, so we can return the original diff.\n return diffs;\n } else {\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n // Case 1)\n // It is possible to perform a naive shift\n ndiffs.splice(cursor_pointer, 2, d_next, d)\n return merge_tuples(ndiffs, cursor_pointer, 2)\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n // Case 2)\n // d[1] is a prefix of d_next[1]\n // We can assume that d_next[0] !== 0, since d[0] === 0\n // Shift edit locations..\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n var suffix = d_next[1].slice(d[1].length);\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\n return merge_tuples(ndiffs, cursor_pointer, 3)\n } else {\n // Not possible to perform any modification\n return diffs;\n }\n }\n}\n\n/*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n * '\\uD83D\\uDC36' === '🐶', '\\uD83D\\uDC2F' === '🐯'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\nfunction fix_emoji (diffs) {\n var compact = false;\n var starts_with_pair_end = function(str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n }\n var ends_with_pair_start = function(str) {\n return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\n }\n for (var i = 2; i < diffs.length; i += 1) {\n if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\n diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\n diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\n\n diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\n diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\n\n diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\n }\n }\n if (!compact) {\n return diffs;\n }\n var fixed_diffs = [];\n for (var i = 0; i < diffs.length; i += 1) {\n if (diffs[i][1].length > 0) {\n fixed_diffs.push(diffs[i]);\n }\n }\n return fixed_diffs;\n}\n\n/*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\nfunction merge_tuples (diffs, start, length) {\n // Check from (start-1) to (start+length).\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n if (i + 1 < diffs.length) {\n var left_d = diffs[i];\n var right_d = diffs[i+1];\n if (left_d[0] === right_d[1]) {\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n }\n }\n }\n return diffs;\n}\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\nexports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nvar supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\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 * @api 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 {Mixed} 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 * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api 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 * @api 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 * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\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 * @api 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 {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\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 {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\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 {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api 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 if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[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 if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[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 if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[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 * @api 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]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\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// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\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\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\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\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend2 = __webpack_require__(3);\n\nvar _extend3 = _interopRequireDefault(_extend2);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _align = __webpack_require__(36);\n\nvar _background = __webpack_require__(37);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _color = __webpack_require__(26);\n\nvar _direction = __webpack_require__(38);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:clipboard');\n\nvar DOM_KEY = '__ql-matcher';\n\nvar CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];\n\nvar ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = function (_Module) {\n _inherits(Clipboard, _Module);\n\n function Clipboard(quill, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options));\n\n _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this));\n _this.container = _this.quill.addContainer('ql-clipboard');\n _this.container.setAttribute('contenteditable', true);\n _this.container.setAttribute('tabindex', -1);\n _this.matchers = [];\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n\n if (!options.matchVisual && matcher === matchSpacing) return;\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n\n _createClass(Clipboard, [{\n key: 'addMatcher',\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: 'convert',\n value: function convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\<'); // Remove spaces between tags\n return this.convert();\n }\n var formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[_code2.default.blotName]) {\n var text = this.container.innerText;\n this.container.innerHTML = '';\n return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName]));\n }\n\n var _prepareMatching = this.prepareMatching(),\n _prepareMatching2 = _slicedToArray(_prepareMatching, 2),\n elementMatchers = _prepareMatching2[0],\n textMatchers = _prepareMatching2[1];\n\n var delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\n return delta;\n }\n }, {\n key: 'dangerouslyPasteHTML',\n value: function dangerouslyPasteHTML(index, html) {\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API;\n\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, _quill2.default.sources.SILENT);\n } else {\n var paste = this.convert(html);\n this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);\n }\n }\n }, {\n key: 'onPaste',\n value: function onPaste(e) {\n var _this2 = this;\n\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n var range = this.quill.getSelection();\n var delta = new _quillDelta2.default().retain(range.index);\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(_quill2.default.sources.SILENT);\n setTimeout(function () {\n delta = delta.concat(_this2.convert()).delete(range.length);\n _this2.quill.updateContents(delta, _quill2.default.sources.USER);\n // range.length contributes to delta.length()\n _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);\n _this2.quill.scrollingContainer.scrollTop = scrollTop;\n _this2.quill.focus();\n }, 1);\n }\n }, {\n key: 'prepareMatching',\n value: function prepareMatching() {\n var _this3 = this;\n\n var elementMatchers = [],\n textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n selector = _pair[0],\n matcher = _pair[1];\n\n switch (selector) {\n case Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(_this3.container.querySelectorAll(selector), function (node) {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }]);\n\n return Clipboard;\n}(_module2.default);\n\nClipboard.DEFAULTS = {\n matchers: [],\n matchVisual: true\n};\n\nfunction applyFormat(delta, format, value) {\n if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') {\n return Object.keys(format).reduce(function (delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function (delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes));\n }\n }, new _quillDelta2.default());\n }\n}\n\nfunction computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n var DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n}\n\nfunction deltaEndsWith(delta, text) {\n var endText = \"\";\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1 * text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n var style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n}\n\nfunction traverse(node, elementMatchers, textMatchers) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta);\n }, new _quillDelta2.default());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], function (delta, childNode) {\n var childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new _quillDelta2.default());\n } else {\n return new _quillDelta2.default();\n }\n}\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta) {\n var attributes = _parchment2.default.Attributor.Attribute.keys(node);\n var classes = _parchment2.default.Attributor.Class.keys(node);\n var styles = _parchment2.default.Attributor.Style.keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n}\n\nfunction matchBlot(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof _parchment2.default.Embed) {\n var embed = {};\n var value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new _quillDelta2.default().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchIgnore() {\n return new _quillDelta2.default();\n}\n\nfunction matchIndent(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n var indent = -1,\n parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((_parchment2.default.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent }));\n}\n\nfunction matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchSpacing(node, delta) {\n if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\\n\\n')) {\n var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);\n if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n delta = new _quillDelta2.default().insert('\\t').concat(delta);\n }\n return delta;\n}\n\nfunction matchText(node, delta) {\n var text = node.data;\n // Word represents empty line with  \n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n var replacer = function replacer(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n}\n\nexports.default = Clipboard;\nexports.matchAttributor = matchAttributor;\nexports.matchBlot = matchBlot;\nexports.matchNewline = matchNewline;\nexports.matchSpacing = matchSpacing;\nexports.matchText = matchText;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Bold = function (_Inline) {\n _inherits(Bold, _Inline);\n\n function Bold() {\n _classCallCheck(this, Bold);\n\n return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments));\n }\n\n _createClass(Bold, [{\n key: 'optimize',\n value: function optimize(context) {\n _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this, context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n }], [{\n key: 'create',\n value: function create() {\n return _get(Bold.__proto__ || Object.getPrototypeOf(Bold), 'create', this).call(this);\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return Bold;\n}(_inline2.default);\n\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n\nexports.default = Bold;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addControls = exports.default = undefined;\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\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:toolbar');\n\nvar Toolbar = function (_Module) {\n _inherits(Toolbar, _Module);\n\n function Toolbar(quill, options) {\n _classCallCheck(this, Toolbar);\n\n var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options));\n\n if (Array.isArray(_this.options.container)) {\n var container = document.createElement('div');\n addControls(container, _this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n _this.container = container;\n } else if (typeof _this.options.container === 'string') {\n _this.container = document.querySelector(_this.options.container);\n } else {\n _this.container = _this.options.container;\n }\n if (!(_this.container instanceof HTMLElement)) {\n var _ret;\n\n return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret);\n }\n _this.container.classList.add('ql-toolbar');\n _this.controls = [];\n _this.handlers = {};\n Object.keys(_this.options.handlers).forEach(function (format) {\n _this.addHandler(format, _this.options.handlers[format]);\n });\n [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) {\n _this.attach(input);\n });\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) {\n if (type === _quill2.default.events.SELECTION_CHANGE) {\n _this.update(range);\n }\n });\n _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n var _this$quill$selection = _this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0]; // quill.getSelection triggers update\n\n\n _this.update(range);\n });\n return _this;\n }\n\n _createClass(Toolbar, [{\n key: 'addHandler',\n value: function addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n }, {\n key: 'attach',\n value: function attach(input) {\n var _this2 = this;\n\n var format = [].find.call(input.classList, function (className) {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (_parchment2.default.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n var eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, function (e) {\n var value = void 0;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n var selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n _this2.quill.focus();\n\n var _quill$selection$getR = _this2.quill.selection.getRange(),\n _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1),\n range = _quill$selection$getR2[0];\n\n if (_this2.handlers[format] != null) {\n _this2.handlers[format].call(_this2, value);\n } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) {\n value = prompt('Enter ' + format);\n if (!value) return;\n _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER);\n } else {\n _this2.quill.format(format, value, _quill2.default.sources.USER);\n }\n _this2.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n }, {\n key: 'update',\n value: function update(range) {\n var formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n format = _pair[0],\n input = _pair[1];\n\n if (input.tagName === 'SELECT') {\n var option = void 0;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n var value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector('option[value=\"' + value + '\"]');\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n }]);\n\n return Toolbar;\n}(_module2.default);\n\nToolbar.DEFAULTS = {};\n\nfunction addButton(container, format, value) {\n var input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n}\n\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function (controls) {\n var group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function (control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n var format = Object.keys(control)[0];\n var value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\n\nfunction addSelect(container, format, values) {\n var input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\n\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function clean() {\n var _this3 = this;\n\n var range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n var formats = this.quill.getFormat();\n Object.keys(formats).forEach(function (name) {\n // Clean functionality in existing apps only clean inline formats\n if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) {\n _this3.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, _quill2.default.sources.USER);\n }\n },\n direction: function direction(value) {\n var align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', _quill2.default.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, _quill2.default.sources.USER);\n }\n this.quill.format('direction', value, _quill2.default.sources.USER);\n },\n indent: function indent(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n var indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n var modifier = value === '+1' ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, _quill2.default.sources.USER);\n }\n },\n link: function link(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, _quill2.default.sources.USER);\n },\n list: function list(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, _quill2.default.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', _quill2.default.sources.USER);\n }\n } else {\n this.quill.format('list', value, _quill2.default.sources.USER);\n }\n }\n }\n};\n\nexports.default = Toolbar;\nexports.addControls = addControls;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorPicker = function (_Picker) {\n _inherits(ColorPicker, _Picker);\n\n function ColorPicker(select, label) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this, select));\n\n _this.label.innerHTML = label;\n _this.container.classList.add('ql-color-picker');\n [].slice.call(_this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function (item) {\n item.classList.add('ql-primary');\n });\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'buildItem',\n value: function buildItem(option) {\n var item = _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'buildItem', this).call(this, option);\n item.style.backgroundColor = option.getAttribute('value') || '';\n return item;\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'selectItem', this).call(this, item, trigger);\n var colorLabel = this.label.querySelector('.ql-color-label');\n var value = item ? item.getAttribute('data-value') || '' : '';\n if (colorLabel) {\n if (colorLabel.tagName === 'line') {\n colorLabel.style.stroke = value;\n } else {\n colorLabel.style.fill = value;\n }\n }\n }\n }]);\n\n return ColorPicker;\n}(_picker2.default);\n\nexports.default = ColorPicker;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IconPicker = function (_Picker) {\n _inherits(IconPicker, _Picker);\n\n function IconPicker(select, icons) {\n _classCallCheck(this, IconPicker);\n\n var _this = _possibleConstructorReturn(this, (IconPicker.__proto__ || Object.getPrototypeOf(IconPicker)).call(this, select));\n\n _this.container.classList.add('ql-icon-picker');\n [].forEach.call(_this.container.querySelectorAll('.ql-picker-item'), function (item) {\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\n });\n _this.defaultItem = _this.container.querySelector('.ql-selected');\n _this.selectItem(_this.defaultItem);\n return _this;\n }\n\n _createClass(IconPicker, [{\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(IconPicker.prototype.__proto__ || Object.getPrototypeOf(IconPicker.prototype), 'selectItem', this).call(this, item, trigger);\n item = item || this.defaultItem;\n this.label.innerHTML = item.innerHTML;\n }\n }]);\n\n return IconPicker;\n}(_picker2.default);\n\nexports.default = IconPicker;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Tooltip = function () {\n function Tooltip(quill, boundsContainer) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n this.quill = quill;\n this.boundsContainer = boundsContainer || document.body;\n this.root = quill.addContainer('ql-tooltip');\n this.root.innerHTML = this.constructor.TEMPLATE;\n if (this.quill.root === this.quill.scrollingContainer) {\n this.quill.root.addEventListener('scroll', function () {\n _this.root.style.marginTop = -1 * _this.quill.root.scrollTop + 'px';\n });\n }\n this.hide();\n }\n\n _createClass(Tooltip, [{\n key: 'hide',\n value: function hide() {\n this.root.classList.add('ql-hidden');\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\n // root.scrollTop should be 0 if scrollContainer !== root\n var top = reference.bottom + this.quill.root.scrollTop;\n this.root.style.left = left + 'px';\n this.root.style.top = top + 'px';\n this.root.classList.remove('ql-flip');\n var containerBounds = this.boundsContainer.getBoundingClientRect();\n var rootBounds = this.root.getBoundingClientRect();\n var shift = 0;\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.bottom > containerBounds.bottom) {\n var height = rootBounds.bottom - rootBounds.top;\n var verticalShift = reference.bottom - reference.top + height;\n this.root.style.top = top - verticalShift + 'px';\n this.root.classList.add('ql-flip');\n }\n return shift;\n }\n }, {\n key: 'show',\n value: function show() {\n this.root.classList.remove('ql-editing');\n this.root.classList.remove('ql-hidden');\n }\n }]);\n\n return Tooltip;\n}();\n\nexports.default = Tooltip;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [[{ header: ['1', '2', '3', false] }], ['bold', 'italic', 'underline', 'link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\n\nvar SnowTheme = function (_BaseTheme) {\n _inherits(SnowTheme, _BaseTheme);\n\n function SnowTheme(quill, options) {\n _classCallCheck(this, SnowTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (SnowTheme.__proto__ || Object.getPrototypeOf(SnowTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-snow');\n return _this;\n }\n\n _createClass(SnowTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n toolbar.container.classList.add('ql-snow');\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function (range, context) {\n toolbar.handlers['link'].call(toolbar, !context.format.link);\n });\n }\n }\n }]);\n\n return SnowTheme;\n}(_base2.default);\n\nSnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (value) {\n var range = this.quill.getSelection();\n if (range == null || range.length == 0) return;\n var preview = this.quill.getText(range);\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = 'mailto:' + preview;\n }\n var tooltip = this.quill.theme.tooltip;\n tooltip.edit('link', preview);\n } else {\n this.quill.format('link', false);\n }\n }\n }\n }\n }\n});\n\nvar SnowTooltip = function (_BaseTooltip) {\n _inherits(SnowTooltip, _BaseTooltip);\n\n function SnowTooltip(quill, bounds) {\n _classCallCheck(this, SnowTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (SnowTooltip.__proto__ || Object.getPrototypeOf(SnowTooltip)).call(this, quill, bounds));\n\n _this2.preview = _this2.root.querySelector('a.ql-preview');\n return _this2;\n }\n\n _createClass(SnowTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('a.ql-action').addEventListener('click', function (event) {\n if (_this3.root.classList.contains('ql-editing')) {\n _this3.save();\n } else {\n _this3.edit('link', _this3.preview.textContent);\n }\n event.preventDefault();\n });\n this.root.querySelector('a.ql-remove').addEventListener('click', function (event) {\n if (_this3.linkRange != null) {\n var range = _this3.linkRange;\n _this3.restoreFocus();\n _this3.quill.formatText(range, 'link', false, _emitter2.default.sources.USER);\n delete _this3.linkRange;\n }\n event.preventDefault();\n _this3.hide();\n });\n this.quill.on(_emitter2.default.events.SELECTION_CHANGE, function (range, oldRange, source) {\n if (range == null) return;\n if (range.length === 0 && source === _emitter2.default.sources.USER) {\n var _quill$scroll$descend = _this3.quill.scroll.descendant(_link2.default, range.index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n link = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (link != null) {\n _this3.linkRange = new _selection.Range(range.index - offset, link.length());\n var preview = _link2.default.formats(link.domNode);\n _this3.preview.textContent = preview;\n _this3.preview.setAttribute('href', preview);\n _this3.show();\n _this3.position(_this3.quill.getBounds(_this3.linkRange));\n return;\n }\n } else {\n delete _this3.linkRange;\n }\n _this3.hide();\n });\n }\n }, {\n key: 'show',\n value: function show() {\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'show', this).call(this);\n this.root.removeAttribute('data-mode');\n }\n }]);\n\n return SnowTooltip;\n}(_base.BaseTooltip);\n\nSnowTooltip.TEMPLATE = ['', '', '', ''].join('');\n\nexports.default = SnowTheme;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(29);\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _align = __webpack_require__(36);\n\nvar _direction = __webpack_require__(38);\n\nvar _indent = __webpack_require__(64);\n\nvar _blockquote = __webpack_require__(65);\n\nvar _blockquote2 = _interopRequireDefault(_blockquote);\n\nvar _header = __webpack_require__(66);\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar _list = __webpack_require__(67);\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _background = __webpack_require__(37);\n\nvar _color = __webpack_require__(26);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nvar _italic = __webpack_require__(68);\n\nvar _italic2 = _interopRequireDefault(_italic);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _script = __webpack_require__(69);\n\nvar _script2 = _interopRequireDefault(_script);\n\nvar _strike = __webpack_require__(70);\n\nvar _strike2 = _interopRequireDefault(_strike);\n\nvar _underline = __webpack_require__(71);\n\nvar _underline2 = _interopRequireDefault(_underline);\n\nvar _image = __webpack_require__(72);\n\nvar _image2 = _interopRequireDefault(_image);\n\nvar _video = __webpack_require__(73);\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _formula = __webpack_require__(74);\n\nvar _formula2 = _interopRequireDefault(_formula);\n\nvar _syntax = __webpack_require__(75);\n\nvar _syntax2 = _interopRequireDefault(_syntax);\n\nvar _toolbar = __webpack_require__(57);\n\nvar _toolbar2 = _interopRequireDefault(_toolbar);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nvar _bubble = __webpack_require__(108);\n\nvar _bubble2 = _interopRequireDefault(_bubble);\n\nvar _snow = __webpack_require__(62);\n\nvar _snow2 = _interopRequireDefault(_snow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_core2.default.register({\n 'attributors/attribute/direction': _direction.DirectionAttribute,\n\n 'attributors/class/align': _align.AlignClass,\n 'attributors/class/background': _background.BackgroundClass,\n 'attributors/class/color': _color.ColorClass,\n 'attributors/class/direction': _direction.DirectionClass,\n 'attributors/class/font': _font.FontClass,\n 'attributors/class/size': _size.SizeClass,\n\n 'attributors/style/align': _align.AlignStyle,\n 'attributors/style/background': _background.BackgroundStyle,\n 'attributors/style/color': _color.ColorStyle,\n 'attributors/style/direction': _direction.DirectionStyle,\n 'attributors/style/font': _font.FontStyle,\n 'attributors/style/size': _size.SizeStyle\n}, true);\n\n_core2.default.register({\n 'formats/align': _align.AlignClass,\n 'formats/direction': _direction.DirectionClass,\n 'formats/indent': _indent.IndentClass,\n\n 'formats/background': _background.BackgroundStyle,\n 'formats/color': _color.ColorStyle,\n 'formats/font': _font.FontClass,\n 'formats/size': _size.SizeClass,\n\n 'formats/blockquote': _blockquote2.default,\n 'formats/code-block': _code2.default,\n 'formats/header': _header2.default,\n 'formats/list': _list2.default,\n\n 'formats/bold': _bold2.default,\n 'formats/code': _code.Code,\n 'formats/italic': _italic2.default,\n 'formats/link': _link2.default,\n 'formats/script': _script2.default,\n 'formats/strike': _strike2.default,\n 'formats/underline': _underline2.default,\n\n 'formats/image': _image2.default,\n 'formats/video': _video2.default,\n\n 'formats/list/item': _list.ListItem,\n\n 'modules/formula': _formula2.default,\n 'modules/syntax': _syntax2.default,\n 'modules/toolbar': _toolbar2.default,\n\n 'themes/bubble': _bubble2.default,\n 'themes/snow': _snow2.default,\n\n 'ui/icons': _icons2.default,\n 'ui/picker': _picker2.default,\n 'ui/icon-picker': _iconPicker2.default,\n 'ui/color-picker': _colorPicker2.default,\n 'ui/tooltip': _tooltip2.default\n}, true);\n\nexports.default = _core2.default;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IndentClass = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IdentAttributor = function (_Parchment$Attributor) {\n _inherits(IdentAttributor, _Parchment$Attributor);\n\n function IdentAttributor() {\n _classCallCheck(this, IdentAttributor);\n\n return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments));\n }\n\n _createClass(IdentAttributor, [{\n key: 'add',\n value: function add(node, value) {\n if (value === '+1' || value === '-1') {\n var indent = this.value(node) || 0;\n value = value === '+1' ? indent + 1 : indent - 1;\n }\n if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value);\n }\n }\n }, {\n key: 'canAdd',\n value: function canAdd(node, value) {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, value) || _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, parseInt(value));\n }\n }, {\n key: 'value',\n value: function value(node) {\n return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN\n }\n }]);\n\n return IdentAttributor;\n}(_parchment2.default.Attributor.Class);\n\nvar IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n\nexports.IndentClass = IndentClass;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Blockquote = function (_Block) {\n _inherits(Blockquote, _Block);\n\n function Blockquote() {\n _classCallCheck(this, Blockquote);\n\n return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments));\n }\n\n return Blockquote;\n}(_block2.default);\n\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n\nexports.default = Blockquote;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Header = function (_Block) {\n _inherits(Header, _Block);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, null, [{\n key: 'formats',\n value: function formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n }]);\n\n return Header;\n}(_block2.default);\n\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\nexports.default = Header;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.ListItem = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ListItem = function (_Block) {\n _inherits(ListItem, _Block);\n\n function ListItem() {\n _classCallCheck(this, ListItem);\n\n return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));\n }\n\n _createClass(ListItem, [{\n key: 'format',\n value: function format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(_parchment2.default.create(this.statics.scope));\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value);\n }\n }\n }, {\n key: 'remove',\n value: function remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this);\n }\n }\n }, {\n key: 'replaceWith',\n value: function replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value);\n }\n }\n }], [{\n key: 'formats',\n value: function formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode);\n }\n }]);\n\n return ListItem;\n}(_block2.default);\n\nListItem.blotName = 'list-item';\nListItem.tagName = 'LI';\n\nvar List = function (_Container) {\n _inherits(List, _Container);\n\n _createClass(List, null, [{\n key: 'create',\n value: function create(value) {\n var tagName = value === 'ordered' ? 'OL' : 'UL';\n var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n }]);\n\n function List(domNode) {\n _classCallCheck(this, List);\n\n var _this2 = _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).call(this, domNode));\n\n var listEventHandler = function listEventHandler(e) {\n if (e.target.parentNode !== domNode) return;\n var format = _this2.statics.formats(domNode);\n var blot = _parchment2.default.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if (format === 'unchecked') {\n blot.format('list', 'checked');\n }\n };\n\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n return _this2;\n }\n\n _createClass(List, [{\n key: 'format',\n value: function format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats() {\n // We don't inherit from FormatBlot\n return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode));\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref);\n } else {\n var index = ref == null ? this.length() : ref.offset(this);\n var after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n var item = _parchment2.default.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target);\n }\n }]);\n\n return List;\n}(_container2.default);\n\nList.blotName = 'list';\nList.scope = _parchment2.default.Scope.BLOCK_BLOT;\nList.tagName = ['OL', 'UL'];\nList.defaultChild = 'list-item';\nList.allowedChildren = [ListItem];\n\nexports.ListItem = ListItem;\nexports.default = List;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Italic = function (_Bold) {\n _inherits(Italic, _Bold);\n\n function Italic() {\n _classCallCheck(this, Italic);\n\n return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments));\n }\n\n return Italic;\n}(_bold2.default);\n\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n\nexports.default = Italic;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Script = function (_Inline) {\n _inherits(Script, _Inline);\n\n function Script() {\n _classCallCheck(this, Script);\n\n return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments));\n }\n\n _createClass(Script, null, [{\n key: 'create',\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n }]);\n\n return Script;\n}(_inline2.default);\n\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n\nexports.default = Script;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Strike = function (_Inline) {\n _inherits(Strike, _Inline);\n\n function Strike() {\n _classCallCheck(this, Strike);\n\n return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments));\n }\n\n return Strike;\n}(_inline2.default);\n\nStrike.blotName = 'strike';\nStrike.tagName = 'S';\n\nexports.default = Strike;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Underline = function (_Inline) {\n _inherits(Underline, _Inline);\n\n function Underline() {\n _classCallCheck(this, Underline);\n\n return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments));\n }\n\n return Underline;\n}(_inline2.default);\n\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n\nexports.default = Underline;\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _link = __webpack_require__(27);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['alt', 'height', 'width'];\n\nvar Image = function (_Parchment$Embed) {\n _inherits(Image, _Parchment$Embed);\n\n function Image() {\n _classCallCheck(this, Image);\n\n return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments));\n }\n\n _createClass(Image, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'match',\n value: function match(url) {\n return (/\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url)\n );\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return (0, _link.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Image;\n}(_parchment2.default.Embed);\n\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n\nexports.default = Image;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _block = __webpack_require__(4);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['height', 'width'];\n\nvar Video = function (_BlockEmbed) {\n _inherits(Video, _BlockEmbed);\n\n function Video() {\n _classCallCheck(this, Video);\n\n return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments));\n }\n\n _createClass(Video, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _link2.default.sanitize(url);\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Video;\n}(_block.BlockEmbed);\n\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n\nexports.default = Video;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.FormulaBlot = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar FormulaBlot = function (_Embed) {\n _inherits(FormulaBlot, _Embed);\n\n function FormulaBlot() {\n _classCallCheck(this, FormulaBlot);\n\n return _possibleConstructorReturn(this, (FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot)).apply(this, arguments));\n }\n\n _createClass(FormulaBlot, null, [{\n key: 'create',\n value: function create(value) {\n var node = _get(FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot), 'create', this).call(this, value);\n if (typeof value === 'string') {\n window.katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n return node;\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('data-value');\n }\n }]);\n\n return FormulaBlot;\n}(_embed2.default);\n\nFormulaBlot.blotName = 'formula';\nFormulaBlot.className = 'ql-formula';\nFormulaBlot.tagName = 'SPAN';\n\nvar Formula = function (_Module) {\n _inherits(Formula, _Module);\n\n _createClass(Formula, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(FormulaBlot, true);\n }\n }]);\n\n function Formula() {\n _classCallCheck(this, Formula);\n\n var _this2 = _possibleConstructorReturn(this, (Formula.__proto__ || Object.getPrototypeOf(Formula)).call(this));\n\n if (window.katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n return _this2;\n }\n\n return Formula;\n}(_module2.default);\n\nexports.FormulaBlot = FormulaBlot;\nexports.default = Formula;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.CodeToken = exports.CodeBlock = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SyntaxCodeBlock = function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n\n return _possibleConstructorReturn(this, (SyntaxCodeBlock.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock)).apply(this, arguments));\n }\n\n _createClass(SyntaxCodeBlock, [{\n key: 'replaceWith',\n value: function replaceWith(block) {\n this.domNode.textContent = this.domNode.textContent;\n this.attach();\n _get(SyntaxCodeBlock.prototype.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock.prototype), 'replaceWith', this).call(this, block);\n }\n }, {\n key: 'highlight',\n value: function highlight(_highlight) {\n var text = this.domNode.textContent;\n if (this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n this.domNode.innerHTML = _highlight(text);\n this.domNode.normalize();\n this.attach();\n }\n this.cachedText = text;\n }\n }\n }]);\n\n return SyntaxCodeBlock;\n}(_code2.default);\n\nSyntaxCodeBlock.className = 'ql-syntax';\n\nvar CodeToken = new _parchment2.default.Attributor.Class('token', 'hljs', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nvar Syntax = function (_Module) {\n _inherits(Syntax, _Module);\n\n _createClass(Syntax, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(CodeToken, true);\n _quill2.default.register(SyntaxCodeBlock, true);\n }\n }]);\n\n function Syntax(quill, options) {\n _classCallCheck(this, Syntax);\n\n var _this2 = _possibleConstructorReturn(this, (Syntax.__proto__ || Object.getPrototypeOf(Syntax)).call(this, quill, options));\n\n if (typeof _this2.options.highlight !== 'function') {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n var timer = null;\n _this2.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this2.highlight();\n timer = null;\n }, _this2.options.interval);\n });\n _this2.highlight();\n return _this2;\n }\n\n _createClass(Syntax, [{\n key: 'highlight',\n value: function highlight() {\n var _this3 = this;\n\n if (this.quill.selection.composing) return;\n this.quill.update(_quill2.default.sources.USER);\n var range = this.quill.getSelection();\n this.quill.scroll.descendants(SyntaxCodeBlock).forEach(function (code) {\n code.highlight(_this3.options.highlight);\n });\n this.quill.update(_quill2.default.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, _quill2.default.sources.SILENT);\n }\n }\n }]);\n\n return Syntax;\n}(_module2.default);\n\nSyntax.DEFAULTS = {\n highlight: function () {\n if (window.hljs == null) return null;\n return function (text) {\n var result = window.hljs.highlightAuto(text);\n return result.value;\n };\n }(),\n interval: 1000\n};\n\nexports.CodeBlock = SyntaxCodeBlock;\nexports.CodeToken = CodeToken;\nexports.default = Syntax;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BubbleTooltip = undefined;\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{ header: 1 }, { header: 2 }, 'blockquote']];\n\nvar BubbleTheme = function (_BaseTheme) {\n _inherits(BubbleTheme, _BaseTheme);\n\n function BubbleTheme(quill, options) {\n _classCallCheck(this, BubbleTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (BubbleTheme.__proto__ || Object.getPrototypeOf(BubbleTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-bubble');\n return _this;\n }\n\n _createClass(BubbleTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n this.tooltip.root.appendChild(toolbar.container);\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n }\n }]);\n\n return BubbleTheme;\n}(_base2.default);\n\nBubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (!value) {\n this.quill.format('link', false);\n } else {\n this.quill.theme.tooltip.edit();\n }\n }\n }\n }\n }\n});\n\nvar BubbleTooltip = function (_BaseTooltip) {\n _inherits(BubbleTooltip, _BaseTooltip);\n\n function BubbleTooltip(quill, bounds) {\n _classCallCheck(this, BubbleTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (BubbleTooltip.__proto__ || Object.getPrototypeOf(BubbleTooltip)).call(this, quill, bounds));\n\n _this2.quill.on(_emitter2.default.events.EDITOR_CHANGE, function (type, range, oldRange, source) {\n if (type !== _emitter2.default.events.SELECTION_CHANGE) return;\n if (range != null && range.length > 0 && source === _emitter2.default.sources.USER) {\n _this2.show();\n // Lock our width so we will expand beyond our offsetParent boundaries\n _this2.root.style.left = '0px';\n _this2.root.style.width = '';\n _this2.root.style.width = _this2.root.offsetWidth + 'px';\n var lines = _this2.quill.getLines(range.index, range.length);\n if (lines.length === 1) {\n _this2.position(_this2.quill.getBounds(range));\n } else {\n var lastLine = lines[lines.length - 1];\n var index = _this2.quill.getIndex(lastLine);\n var length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n var _bounds = _this2.quill.getBounds(new _selection.Range(index, length));\n _this2.position(_bounds);\n }\n } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) {\n _this2.hide();\n }\n });\n return _this2;\n }\n\n _createClass(BubbleTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('.ql-close').addEventListener('click', function () {\n _this3.root.classList.remove('ql-editing');\n });\n this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, function () {\n // Let selection be restored by toolbar handlers before repositioning\n setTimeout(function () {\n if (_this3.root.classList.contains('ql-hidden')) return;\n var range = _this3.quill.getSelection();\n if (range != null) {\n _this3.position(_this3.quill.getBounds(range));\n }\n }, 1);\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.show();\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var shift = _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'position', this).call(this, reference);\n var arrow = this.root.querySelector('.ql-tooltip-arrow');\n arrow.style.marginLeft = '';\n if (shift === 0) return shift;\n arrow.style.marginLeft = -1 * shift - arrow.offsetWidth / 2 + 'px';\n }\n }]);\n\n return BubbleTooltip;\n}(_base.BaseTooltip);\n\nBubbleTooltip.TEMPLATE = ['', '
', '', '', '
'].join('');\n\nexports.BubbleTooltip = BubbleTooltip;\nexports.default = BubbleTheme;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(63);\n\n\n/***/ })\n/******/ ])[\"default\"];\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 React = require('react');\nvar factory = require('./factory');\n\nif (typeof React === 'undefined') {\n throw Error(\n 'create-react-class could not find the React object. If you are using script tags, ' +\n 'make sure that React is being loaded before create-react-class.'\n );\n}\n\n// Hack to grab NoopUpdateQueue from isomorphic React\nvar ReactNoopUpdateQueue = new React.Component().updater;\n\nmodule.exports = factory(\n React.Component,\n React.isValidElement,\n ReactNoopUpdateQueue\n);\n","'use strict';\n\nvar Quill = require('quill');\n\nvar QuillMixin = {\n\n\t/**\n\tCreates an editor on the given element. The editor will\n\tbe passed the configuration, have its events bound,\n\t*/\n\tcreateEditor: function($el, config) {\n\t\tvar editor = new Quill($el, config);\n\t\tif (config.tabIndex !== undefined) {\n\t\t\tthis.setEditorTabIndex(editor, config.tabIndex);\n\t\t}\n\t\tthis.hookEditor(editor);\n\t\treturn editor;\n\t},\n\n\thookEditor: function(editor) {\n\t\t// Expose the editor on change events via a weaker,\n\t\t// unprivileged proxy object that does not allow\n\t\t// accidentally modifying editor state.\n\t\tvar unprivilegedEditor = this.makeUnprivilegedEditor(editor);\n\n\t\tthis.handleTextChange = function(delta, oldDelta, source) {\n\t\t\tif (this.onEditorChangeText) {\n\t\t\t\tthis.onEditorChangeText(\n\t\t\t\t\teditor.root.innerHTML, delta, source,\n\t\t\t\t\tunprivilegedEditor\n\t\t\t\t);\n\t\t\t\tthis.onEditorChangeSelection(\n\t\t\t\t\teditor.getSelection(), source,\n\t\t\t\t\tunprivilegedEditor\n\t\t\t\t);\n\t\t\t}\n\t\t}.bind(this);\n\n\t\tthis.handleSelectionChange = function(range, oldRange, source) {\n\t\t\tif (this.onEditorChangeSelection) {\n\t\t\t\tthis.onEditorChangeSelection(\n\t\t\t\t\trange, source,\n\t\t\t\t\tunprivilegedEditor\n\t\t\t\t);\n\t\t\t}\n\t\t}.bind(this);\n\n\t\teditor.on('editor-change', function(eventType, rangeOrDelta, oldRangeOrOldDelta, source) {\n\t\t\tif (eventType === Quill.events.SELECTION_CHANGE) {\n\t\t\t\tthis.handleSelectionChange(rangeOrDelta, oldRangeOrOldDelta, source);\n\t\t\t}\n\t\t\t\n\t\t\tif (eventType === Quill.events.TEXT_CHANGE) {\n\t\t\t\tthis.handleTextChange(rangeOrDelta, oldRangeOrOldDelta, source);\n\t\t\t}\n\t\t}.bind(this));\n\t},\n\n\tunhookEditor: function(editor) {\n\t\teditor.off('selection-change');\n\t\teditor.off('text-change');\n\t},\n\n\tsetEditorReadOnly: function(editor, value) {\n\t\tvalue? editor.disable()\n\t\t : editor.enable();\n\t},\n\n\t/*\n\tReplace the contents of the editor, but keep\n\tthe previous selection hanging around so that\n\tthe cursor won't move.\n\t*/\n\tsetEditorContents: function(editor, value) {\n\t\tvar sel = editor.getSelection();\n\n\t\tif (typeof value === 'string') {\n\t\t\teditor.setContents(editor.clipboard.convert(value));\n\t\t} else {\n\t\t\teditor.setContents(value);\n\t\t}\n\n\t\tif (sel && editor.hasFocus()) this.setEditorSelection(editor, sel);\n\t},\n\n\tsetEditorSelection: function(editor, range) {\n\t\tif (range) {\n\t\t\t// Validate bounds before applying.\n\t\t\tvar length = editor.getLength();\n\t\t\trange.index = Math.max(0, Math.min(range.index, length-1));\n\t\t\trange.length = Math.max(0, Math.min(range.length, (length-1) - range.index));\n\t\t}\n\t\teditor.setSelection(range);\n\t},\n\n\tsetEditorTabIndex: function(editor, tabIndex) {\n\t\tif (editor.editor && editor.editor.scroll && editor.editor.scroll.domNode) {\n\t\t\teditor.editor.scroll.domNode.tabIndex = tabIndex;\n\t\t}\n\t},\n\n\t/*\n\tReturns an weaker, unprivileged proxy object that only\n\texposes read-only accessors found on the editor instance,\n\twithout any state-modificating methods.\n\t*/\n\tmakeUnprivilegedEditor: function(editor) {\n\t\tvar e = editor;\n\t\treturn {\n\t\t\tgetLength: function(){ return e.getLength.apply(e, arguments); },\n\t\t\tgetText: function(){ return e.getText.apply(e, arguments); },\n\t\t\tgetHTML: function(){ return e.root.innerHTML },\n\t\t\tgetContents: function(){ return e.getContents.apply(e, arguments); },\n\t\t\tgetSelection: function(){ return e.getSelection.apply(e, arguments); },\n\t\t\tgetBounds: function(){ return e.getBounds.apply(e, arguments); },\n\t\t};\n\t}\n\n};\n\nmodule.exports = QuillMixin;\n","var createFind = require('./_createFind'),\n findIndex = require('./findIndex');\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","'use strict';\n\n/**\n * Copyright (c) 2015-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(function(f) {\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n module.exports = f(require('react'));\n /* global define */\n } else if (typeof define === 'function' && define.amd) {\n define(['react'], f);\n } else {\n var g;\n if (typeof window !== 'undefined') {\n g = window;\n } else if (typeof global !== 'undefined') {\n g = global;\n } else if (typeof self !== 'undefined') {\n g = self;\n } else {\n g = this;\n }\n\n if (typeof g.React === 'undefined') {\n throw Error('React module should be required before ReactDOMFactories');\n }\n\n g.ReactDOMFactories = f(g.React);\n }\n})(function(React) {\n /**\n * Create a factory that creates HTML tag elements.\n */\n function createDOMFactory(type) {\n var factory = React.createElement.bind(null, type);\n // Expose the type on the factory and the prototype so that it can be\n // easily accessed on elements. E.g. `.type === Foo`.\n // This should not be named `constructor` since this may not be the function\n // that created the element, and it may not even be a constructor.\n factory.type = type;\n return factory;\n };\n\n /**\n * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes.\n */\n var ReactDOMFactories = {\n a: createDOMFactory('a'),\n abbr: createDOMFactory('abbr'),\n address: createDOMFactory('address'),\n area: createDOMFactory('area'),\n article: createDOMFactory('article'),\n aside: createDOMFactory('aside'),\n audio: createDOMFactory('audio'),\n b: createDOMFactory('b'),\n base: createDOMFactory('base'),\n bdi: createDOMFactory('bdi'),\n bdo: createDOMFactory('bdo'),\n big: createDOMFactory('big'),\n blockquote: createDOMFactory('blockquote'),\n body: createDOMFactory('body'),\n br: createDOMFactory('br'),\n button: createDOMFactory('button'),\n canvas: createDOMFactory('canvas'),\n caption: createDOMFactory('caption'),\n cite: createDOMFactory('cite'),\n code: createDOMFactory('code'),\n col: createDOMFactory('col'),\n colgroup: createDOMFactory('colgroup'),\n data: createDOMFactory('data'),\n datalist: createDOMFactory('datalist'),\n dd: createDOMFactory('dd'),\n del: createDOMFactory('del'),\n details: createDOMFactory('details'),\n dfn: createDOMFactory('dfn'),\n dialog: createDOMFactory('dialog'),\n div: createDOMFactory('div'),\n dl: createDOMFactory('dl'),\n dt: createDOMFactory('dt'),\n em: createDOMFactory('em'),\n embed: createDOMFactory('embed'),\n fieldset: createDOMFactory('fieldset'),\n figcaption: createDOMFactory('figcaption'),\n figure: createDOMFactory('figure'),\n footer: createDOMFactory('footer'),\n form: createDOMFactory('form'),\n h1: createDOMFactory('h1'),\n h2: createDOMFactory('h2'),\n h3: createDOMFactory('h3'),\n h4: createDOMFactory('h4'),\n h5: createDOMFactory('h5'),\n h6: createDOMFactory('h6'),\n head: createDOMFactory('head'),\n header: createDOMFactory('header'),\n hgroup: createDOMFactory('hgroup'),\n hr: createDOMFactory('hr'),\n html: createDOMFactory('html'),\n i: createDOMFactory('i'),\n iframe: createDOMFactory('iframe'),\n img: createDOMFactory('img'),\n input: createDOMFactory('input'),\n ins: createDOMFactory('ins'),\n kbd: createDOMFactory('kbd'),\n keygen: createDOMFactory('keygen'),\n label: createDOMFactory('label'),\n legend: createDOMFactory('legend'),\n li: createDOMFactory('li'),\n link: createDOMFactory('link'),\n main: createDOMFactory('main'),\n map: createDOMFactory('map'),\n mark: createDOMFactory('mark'),\n menu: createDOMFactory('menu'),\n menuitem: createDOMFactory('menuitem'),\n meta: createDOMFactory('meta'),\n meter: createDOMFactory('meter'),\n nav: createDOMFactory('nav'),\n noscript: createDOMFactory('noscript'),\n object: createDOMFactory('object'),\n ol: createDOMFactory('ol'),\n optgroup: createDOMFactory('optgroup'),\n option: createDOMFactory('option'),\n output: createDOMFactory('output'),\n p: createDOMFactory('p'),\n param: createDOMFactory('param'),\n picture: createDOMFactory('picture'),\n pre: createDOMFactory('pre'),\n progress: createDOMFactory('progress'),\n q: createDOMFactory('q'),\n rp: createDOMFactory('rp'),\n rt: createDOMFactory('rt'),\n ruby: createDOMFactory('ruby'),\n s: createDOMFactory('s'),\n samp: createDOMFactory('samp'),\n script: createDOMFactory('script'),\n section: createDOMFactory('section'),\n select: createDOMFactory('select'),\n small: createDOMFactory('small'),\n source: createDOMFactory('source'),\n span: createDOMFactory('span'),\n strong: createDOMFactory('strong'),\n style: createDOMFactory('style'),\n sub: createDOMFactory('sub'),\n summary: createDOMFactory('summary'),\n sup: createDOMFactory('sup'),\n table: createDOMFactory('table'),\n tbody: createDOMFactory('tbody'),\n td: createDOMFactory('td'),\n textarea: createDOMFactory('textarea'),\n tfoot: createDOMFactory('tfoot'),\n th: createDOMFactory('th'),\n thead: createDOMFactory('thead'),\n time: createDOMFactory('time'),\n title: createDOMFactory('title'),\n tr: createDOMFactory('tr'),\n track: createDOMFactory('track'),\n u: createDOMFactory('u'),\n ul: createDOMFactory('ul'),\n var: createDOMFactory('var'),\n video: createDOMFactory('video'),\n wbr: createDOMFactory('wbr'),\n\n // SVG\n circle: createDOMFactory('circle'),\n clipPath: createDOMFactory('clipPath'),\n defs: createDOMFactory('defs'),\n ellipse: createDOMFactory('ellipse'),\n g: createDOMFactory('g'),\n image: createDOMFactory('image'),\n line: createDOMFactory('line'),\n linearGradient: createDOMFactory('linearGradient'),\n mask: createDOMFactory('mask'),\n path: createDOMFactory('path'),\n pattern: createDOMFactory('pattern'),\n polygon: createDOMFactory('polygon'),\n polyline: createDOMFactory('polyline'),\n radialGradient: createDOMFactory('radialGradient'),\n rect: createDOMFactory('rect'),\n stop: createDOMFactory('stop'),\n svg: createDOMFactory('svg'),\n text: createDOMFactory('text'),\n tspan: createDOMFactory('tspan'),\n };\n\n // due to wrapper and conditionals at the top, this will either become\n // `module.exports ReactDOMFactories` if that is available,\n // otherwise it will be defined via `define(['react'], ReactDOMFactories)`\n // if that is available,\n // otherwise it will be defined as global variable.\n return ReactDOMFactories;\n});\n\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\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\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\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\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\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","// HTML5 entities map: { name -> utf16string }\n//\n'use strict';\n\n/*eslint quotes:0*/\nmodule.exports = require('entities/lib/maps/entities.json');\n","'use strict';\n\n\nmodule.exports.encode = require('./encode');\nmodule.exports.decode = require('./decode');\nmodule.exports.format = require('./format');\nmodule.exports.parse = require('./parse');\n","module.exports=/[\\0-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/","module.exports=/[\\0-\\x1F\\x7F-\\x9F]/","module.exports=/[ \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/","// Regexps to match html elements\n\n'use strict';\n\nvar attr_name = '[a-zA-Z_:][a-zA-Z0-9:._-]*';\n\nvar unquoted = '[^\"\\'=<>`\\\\x00-\\\\x20]+';\nvar single_quoted = \"'[^']*'\";\nvar double_quoted = '\"[^\"]*\"';\n\nvar attr_value = '(?:' + unquoted + '|' + single_quoted + '|' + double_quoted + ')';\n\nvar attribute = '(?:\\\\s+' + attr_name + '(?:\\\\s*=\\\\s*' + attr_value + ')?)';\n\nvar open_tag = '<[A-Za-z][A-Za-z0-9\\\\-]*' + attribute + '*\\\\s*\\\\/?>';\n\nvar close_tag = '<\\\\/[A-Za-z][A-Za-z0-9\\\\-]*\\\\s*>';\nvar comment = '|';\nvar processing = '<[?].*?[?]>';\nvar declaration = ']*>';\nvar cdata = '';\n\nvar HTML_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + '|' + comment +\n '|' + processing + '|' + declaration + '|' + cdata + ')');\nvar HTML_OPEN_CLOSE_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + ')');\n\nmodule.exports.HTML_TAG_RE = HTML_TAG_RE;\nmodule.exports.HTML_OPEN_CLOSE_TAG_RE = HTML_OPEN_CLOSE_TAG_RE;\n","// ~~strike through~~\n//\n'use strict';\n\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nmodule.exports.tokenize = function strikethrough(state, silent) {\n var i, scanned, token, len, ch,\n start = state.pos,\n marker = state.src.charCodeAt(start);\n\n if (silent) { return false; }\n\n if (marker !== 0x7E/* ~ */) { return false; }\n\n scanned = state.scanDelims(state.pos, true);\n len = scanned.length;\n ch = String.fromCharCode(marker);\n\n if (len < 2) { return false; }\n\n if (len % 2) {\n token = state.push('text', '', 0);\n token.content = ch;\n len--;\n }\n\n for (i = 0; i < len; i += 2) {\n token = state.push('text', '', 0);\n token.content = ch + ch;\n\n state.delimiters.push({\n marker: marker,\n length: 0, // disable \"rule of 3\" length checks meant for emphasis\n jump: i,\n token: state.tokens.length - 1,\n end: -1,\n open: scanned.can_open,\n close: scanned.can_close\n });\n }\n\n state.pos += scanned.length;\n\n return true;\n};\n\n\nfunction postProcess(state, delimiters) {\n var i, j,\n startDelim,\n endDelim,\n token,\n loneMarkers = [],\n max = delimiters.length;\n\n for (i = 0; i < max; i++) {\n startDelim = delimiters[i];\n\n if (startDelim.marker !== 0x7E/* ~ */) {\n continue;\n }\n\n if (startDelim.end === -1) {\n continue;\n }\n\n endDelim = delimiters[startDelim.end];\n\n token = state.tokens[startDelim.token];\n token.type = 's_open';\n token.tag = 's';\n token.nesting = 1;\n token.markup = '~~';\n token.content = '';\n\n token = state.tokens[endDelim.token];\n token.type = 's_close';\n token.tag = 's';\n token.nesting = -1;\n token.markup = '~~';\n token.content = '';\n\n if (state.tokens[endDelim.token - 1].type === 'text' &&\n state.tokens[endDelim.token - 1].content === '~') {\n\n loneMarkers.push(endDelim.token - 1);\n }\n }\n\n // If a marker sequence has an odd number of characters, it's splitted\n // like this: `~~~~~` -> `~` + `~~` + `~~`, leaving one marker at the\n // start of the sequence.\n //\n // So, we have to move all those markers after subsequent s_close tags.\n //\n while (loneMarkers.length) {\n i = loneMarkers.pop();\n j = i + 1;\n\n while (j < state.tokens.length && state.tokens[j].type === 's_close') {\n j++;\n }\n\n j--;\n\n if (i !== j) {\n token = state.tokens[j];\n state.tokens[j] = state.tokens[i];\n state.tokens[i] = token;\n }\n }\n}\n\n\n// Walk through delimiter list and replace text tokens with tags\n//\nmodule.exports.postProcess = function strikethrough(state) {\n var curr,\n tokens_meta = state.tokens_meta,\n max = state.tokens_meta.length;\n\n postProcess(state, state.delimiters);\n\n for (curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n postProcess(state, tokens_meta[curr].delimiters);\n }\n }\n};\n","// Process *this* and _that_\n//\n'use strict';\n\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nmodule.exports.tokenize = function emphasis(state, silent) {\n var i, scanned, token,\n start = state.pos,\n marker = state.src.charCodeAt(start);\n\n if (silent) { return false; }\n\n if (marker !== 0x5F /* _ */ && marker !== 0x2A /* * */) { return false; }\n\n scanned = state.scanDelims(state.pos, marker === 0x2A);\n\n for (i = 0; i < scanned.length; i++) {\n token = state.push('text', '', 0);\n token.content = String.fromCharCode(marker);\n\n state.delimiters.push({\n // Char code of the starting marker (number).\n //\n marker: marker,\n\n // Total length of these series of delimiters.\n //\n length: scanned.length,\n\n // An amount of characters before this one that's equivalent to\n // current one. In plain English: if this delimiter does not open\n // an emphasis, neither do previous `jump` characters.\n //\n // Used to skip sequences like \"*****\" in one step, for 1st asterisk\n // value will be 0, for 2nd it's 1 and so on.\n //\n jump: i,\n\n // A position of the token this delimiter corresponds to.\n //\n token: state.tokens.length - 1,\n\n // If this delimiter is matched as a valid opener, `end` will be\n // equal to its position, otherwise it's `-1`.\n //\n end: -1,\n\n // Boolean flags that determine if this delimiter could open or close\n // an emphasis.\n //\n open: scanned.can_open,\n close: scanned.can_close\n });\n }\n\n state.pos += scanned.length;\n\n return true;\n};\n\n\nfunction postProcess(state, delimiters) {\n var i,\n startDelim,\n endDelim,\n token,\n ch,\n isStrong,\n max = delimiters.length;\n\n for (i = max - 1; i >= 0; i--) {\n startDelim = delimiters[i];\n\n if (startDelim.marker !== 0x5F/* _ */ && startDelim.marker !== 0x2A/* * */) {\n continue;\n }\n\n // Process only opening markers\n if (startDelim.end === -1) {\n continue;\n }\n\n endDelim = delimiters[startDelim.end];\n\n // If the previous delimiter has the same marker and is adjacent to this one,\n // merge those into one strong delimiter.\n //\n // `whatever` -> `whatever`\n //\n isStrong = i > 0 &&\n delimiters[i - 1].end === startDelim.end + 1 &&\n delimiters[i - 1].token === startDelim.token - 1 &&\n delimiters[startDelim.end + 1].token === endDelim.token + 1 &&\n delimiters[i - 1].marker === startDelim.marker;\n\n ch = String.fromCharCode(startDelim.marker);\n\n token = state.tokens[startDelim.token];\n token.type = isStrong ? 'strong_open' : 'em_open';\n token.tag = isStrong ? 'strong' : 'em';\n token.nesting = 1;\n token.markup = isStrong ? ch + ch : ch;\n token.content = '';\n\n token = state.tokens[endDelim.token];\n token.type = isStrong ? 'strong_close' : 'em_close';\n token.tag = isStrong ? 'strong' : 'em';\n token.nesting = -1;\n token.markup = isStrong ? ch + ch : ch;\n token.content = '';\n\n if (isStrong) {\n state.tokens[delimiters[i - 1].token].content = '';\n state.tokens[delimiters[startDelim.end + 1].token].content = '';\n i--;\n }\n }\n}\n\n\n// Walk through delimiter list and replace text tokens with tags\n//\nmodule.exports.postProcess = function emphasis(state) {\n var curr,\n tokens_meta = state.tokens_meta,\n max = state.tokens_meta.length;\n\n postProcess(state, state.delimiters);\n\n for (curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n postProcess(state, tokens_meta[curr].delimiters);\n }\n }\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = onHasCompletion;\n\nvar _graphql = require(\"graphql\");\n\nvar _markdownIt = _interopRequireDefault(require(\"markdown-it\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Copyright (c) 2019 GraphQL Contributors.\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 */\nconst md = new _markdownIt.default();\n/**\n * Render a custom UI for CodeMirror's hint which includes additional info\n * about the type and description for the selected context.\n */\n\nfunction onHasCompletion(cm, data, onHintInformationRender) {\n const CodeMirror = require('codemirror');\n\n let information;\n let deprecation; // When a hint result is selected, we augment the UI with information.\n\n CodeMirror.on(data, 'select', (ctx, el) => {\n // Only the first time (usually when the hint UI is first displayed)\n // do we create the information nodes.\n if (!information) {\n const hintsUl = el.parentNode; // This \"information\" node will contain the additional info about the\n // highlighted typeahead option.\n\n information = document.createElement('div');\n information.className = 'CodeMirror-hint-information';\n hintsUl.appendChild(information); // This \"deprecation\" node will contain info about deprecated usage.\n\n deprecation = document.createElement('div');\n deprecation.className = 'CodeMirror-hint-deprecation';\n hintsUl.appendChild(deprecation); // When CodeMirror attempts to remove the hint UI, we detect that it was\n // removed and in turn remove the information nodes.\n\n let onRemoveFn;\n hintsUl.addEventListener('DOMNodeRemoved', onRemoveFn = event => {\n if (event.target === hintsUl) {\n hintsUl.removeEventListener('DOMNodeRemoved', onRemoveFn);\n information = null;\n deprecation = null;\n onRemoveFn = null;\n }\n });\n } // Now that the UI has been set up, add info to information.\n\n\n const description = ctx.description ? md.render(ctx.description) : 'Self descriptive.';\n const type = ctx.type ? '' + renderType(ctx.type) + '' : '';\n information.innerHTML = '
' + (description.slice(0, 3) === '

' ? '

' + type + description.slice(3) : type + description) + '

';\n\n if (ctx.isDeprecated) {\n const reason = ctx.deprecationReason ? md.render(ctx.deprecationReason) : '';\n deprecation.innerHTML = 'Deprecated' + reason;\n deprecation.style.display = 'block';\n } else {\n deprecation.style.display = 'none';\n } // Additional rendering?\n\n\n if (onHintInformationRender) {\n onHintInformationRender(information);\n }\n });\n}\n\nfunction renderType(type) {\n if (type instanceof _graphql.GraphQLNonNull) {\n return `${renderType(type.ofType)}!`;\n }\n\n if (type instanceof _graphql.GraphQLList) {\n return `[${renderType(type.ofType)}]`;\n }\n\n return `${type.name}`;\n}","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n var HINT_ELEMENT_CLASS = \"CodeMirror-hint\";\n var ACTIVE_HINT_ELEMENT_CLASS = \"CodeMirror-hint-active\";\n\n // This is the old interface, kept around for now to stay\n // backwards-compatible.\n CodeMirror.showHint = function(cm, getHints, options) {\n if (!getHints) return cm.showHint(options);\n if (options && options.async) getHints.async = true;\n var newOpts = {hint: getHints};\n if (options) for (var prop in options) newOpts[prop] = options[prop];\n return cm.showHint(newOpts);\n };\n\n CodeMirror.defineExtension(\"showHint\", function(options) {\n options = parseOptions(this, this.getCursor(\"start\"), options);\n var selections = this.listSelections()\n if (selections.length > 1) return;\n // By default, don't allow completion when something is selected.\n // A hint function can have a `supportsSelection` property to\n // indicate that it can handle selections.\n if (this.somethingSelected()) {\n if (!options.hint.supportsSelection) return;\n // Don't try with cross-line selections\n for (var i = 0; i < selections.length; i++)\n if (selections[i].head.line != selections[i].anchor.line) return;\n }\n\n if (this.state.completionActive) this.state.completionActive.close();\n var completion = this.state.completionActive = new Completion(this, options);\n if (!completion.options.hint) return;\n\n CodeMirror.signal(this, \"startCompletion\", this);\n completion.update(true);\n });\n\n CodeMirror.defineExtension(\"closeHint\", function() {\n if (this.state.completionActive) this.state.completionActive.close()\n })\n\n function Completion(cm, options) {\n this.cm = cm;\n this.options = options;\n this.widget = null;\n this.debounce = 0;\n this.tick = 0;\n this.startPos = this.cm.getCursor(\"start\");\n this.startLen = this.cm.getLine(this.startPos.line).length - this.cm.getSelection().length;\n\n var self = this;\n cm.on(\"cursorActivity\", this.activityFunc = function() { self.cursorActivity(); });\n }\n\n var requestAnimationFrame = window.requestAnimationFrame || function(fn) {\n return setTimeout(fn, 1000/60);\n };\n var cancelAnimationFrame = window.cancelAnimationFrame || clearTimeout;\n\n Completion.prototype = {\n close: function() {\n if (!this.active()) return;\n this.cm.state.completionActive = null;\n this.tick = null;\n this.cm.off(\"cursorActivity\", this.activityFunc);\n\n if (this.widget && this.data) CodeMirror.signal(this.data, \"close\");\n if (this.widget) this.widget.close();\n CodeMirror.signal(this.cm, \"endCompletion\", this.cm);\n },\n\n active: function() {\n return this.cm.state.completionActive == this;\n },\n\n pick: function(data, i) {\n var completion = data.list[i], self = this;\n this.cm.operation(function() {\n if (completion.hint)\n completion.hint(self.cm, data, completion);\n else\n self.cm.replaceRange(getText(completion), completion.from || data.from,\n completion.to || data.to, \"complete\");\n CodeMirror.signal(data, \"pick\", completion);\n self.cm.scrollIntoView();\n })\n this.close();\n },\n\n cursorActivity: function() {\n if (this.debounce) {\n cancelAnimationFrame(this.debounce);\n this.debounce = 0;\n }\n\n var identStart = this.startPos;\n if(this.data) {\n identStart = this.data.from;\n }\n\n var pos = this.cm.getCursor(), line = this.cm.getLine(pos.line);\n if (pos.line != this.startPos.line || line.length - pos.ch != this.startLen - this.startPos.ch ||\n pos.ch < identStart.ch || this.cm.somethingSelected() ||\n (!pos.ch || this.options.closeCharacters.test(line.charAt(pos.ch - 1)))) {\n this.close();\n } else {\n var self = this;\n this.debounce = requestAnimationFrame(function() {self.update();});\n if (this.widget) this.widget.disable();\n }\n },\n\n update: function(first) {\n if (this.tick == null) return\n var self = this, myTick = ++this.tick\n fetchHints(this.options.hint, this.cm, this.options, function(data) {\n if (self.tick == myTick) self.finishUpdate(data, first)\n })\n },\n\n finishUpdate: function(data, first) {\n if (this.data) CodeMirror.signal(this.data, \"update\");\n\n var picked = (this.widget && this.widget.picked) || (first && this.options.completeSingle);\n if (this.widget) this.widget.close();\n\n this.data = data;\n\n if (data && data.list.length) {\n if (picked && data.list.length == 1) {\n this.pick(data, 0);\n } else {\n this.widget = new Widget(this, data);\n CodeMirror.signal(data, \"shown\");\n }\n }\n }\n };\n\n function parseOptions(cm, pos, options) {\n var editor = cm.options.hintOptions;\n var out = {};\n for (var prop in defaultOptions) out[prop] = defaultOptions[prop];\n if (editor) for (var prop in editor)\n if (editor[prop] !== undefined) out[prop] = editor[prop];\n if (options) for (var prop in options)\n if (options[prop] !== undefined) out[prop] = options[prop];\n if (out.hint.resolve) out.hint = out.hint.resolve(cm, pos)\n return out;\n }\n\n function getText(completion) {\n if (typeof completion == \"string\") return completion;\n else return completion.text;\n }\n\n function buildKeyMap(completion, handle) {\n var baseMap = {\n Up: function() {handle.moveFocus(-1);},\n Down: function() {handle.moveFocus(1);},\n PageUp: function() {handle.moveFocus(-handle.menuSize() + 1, true);},\n PageDown: function() {handle.moveFocus(handle.menuSize() - 1, true);},\n Home: function() {handle.setFocus(0);},\n End: function() {handle.setFocus(handle.length - 1);},\n Enter: handle.pick,\n Tab: handle.pick,\n Esc: handle.close\n };\n\n var mac = /Mac/.test(navigator.platform);\n\n if (mac) {\n baseMap[\"Ctrl-P\"] = function() {handle.moveFocus(-1);};\n baseMap[\"Ctrl-N\"] = function() {handle.moveFocus(1);};\n }\n\n var custom = completion.options.customKeys;\n var ourMap = custom ? {} : baseMap;\n function addBinding(key, val) {\n var bound;\n if (typeof val != \"string\")\n bound = function(cm) { return val(cm, handle); };\n // This mechanism is deprecated\n else if (baseMap.hasOwnProperty(val))\n bound = baseMap[val];\n else\n bound = val;\n ourMap[key] = bound;\n }\n if (custom)\n for (var key in custom) if (custom.hasOwnProperty(key))\n addBinding(key, custom[key]);\n var extra = completion.options.extraKeys;\n if (extra)\n for (var key in extra) if (extra.hasOwnProperty(key))\n addBinding(key, extra[key]);\n return ourMap;\n }\n\n function getHintElement(hintsElement, el) {\n while (el && el != hintsElement) {\n if (el.nodeName.toUpperCase() === \"LI\" && el.parentNode == hintsElement) return el;\n el = el.parentNode;\n }\n }\n\n function Widget(completion, data) {\n this.completion = completion;\n this.data = data;\n this.picked = false;\n var widget = this, cm = completion.cm;\n var ownerDocument = cm.getInputField().ownerDocument;\n var parentWindow = ownerDocument.defaultView || ownerDocument.parentWindow;\n\n var hints = this.hints = ownerDocument.createElement(\"ul\");\n var theme = completion.cm.options.theme;\n hints.className = \"CodeMirror-hints \" + theme;\n this.selectedHint = data.selectedHint || 0;\n\n var completions = data.list;\n for (var i = 0; i < completions.length; ++i) {\n var elt = hints.appendChild(ownerDocument.createElement(\"li\")), cur = completions[i];\n var className = HINT_ELEMENT_CLASS + (i != this.selectedHint ? \"\" : \" \" + ACTIVE_HINT_ELEMENT_CLASS);\n if (cur.className != null) className = cur.className + \" \" + className;\n elt.className = className;\n if (cur.render) cur.render(elt, data, cur);\n else elt.appendChild(ownerDocument.createTextNode(cur.displayText || getText(cur)));\n elt.hintId = i;\n }\n\n var container = completion.options.container || ownerDocument.body;\n var pos = cm.cursorCoords(completion.options.alignWithWord ? data.from : null);\n var left = pos.left, top = pos.bottom, below = true;\n var offsetLeft = 0, offsetTop = 0;\n if (container !== ownerDocument.body) {\n // We offset the cursor position because left and top are relative to the offsetParent's top left corner.\n var isContainerPositioned = ['absolute', 'relative', 'fixed'].indexOf(parentWindow.getComputedStyle(container).position) !== -1;\n var offsetParent = isContainerPositioned ? container : container.offsetParent;\n var offsetParentPosition = offsetParent.getBoundingClientRect();\n var bodyPosition = ownerDocument.body.getBoundingClientRect();\n offsetLeft = (offsetParentPosition.left - bodyPosition.left - offsetParent.scrollLeft);\n offsetTop = (offsetParentPosition.top - bodyPosition.top - offsetParent.scrollTop);\n }\n hints.style.left = (left - offsetLeft) + \"px\";\n hints.style.top = (top - offsetTop) + \"px\";\n\n // If we're at the edge of the screen, then we want the menu to appear on the left of the cursor.\n var winW = parentWindow.innerWidth || Math.max(ownerDocument.body.offsetWidth, ownerDocument.documentElement.offsetWidth);\n var winH = parentWindow.innerHeight || Math.max(ownerDocument.body.offsetHeight, ownerDocument.documentElement.offsetHeight);\n container.appendChild(hints);\n var box = hints.getBoundingClientRect(), overlapY = box.bottom - winH;\n var scrolls = hints.scrollHeight > hints.clientHeight + 1\n var startScroll = cm.getScrollInfo();\n\n if (overlapY > 0) {\n var height = box.bottom - box.top, curTop = pos.top - (pos.bottom - box.top);\n if (curTop - height > 0) { // Fits above cursor\n hints.style.top = (top = pos.top - height - offsetTop) + \"px\";\n below = false;\n } else if (height > winH) {\n hints.style.height = (winH - 5) + \"px\";\n hints.style.top = (top = pos.bottom - box.top - offsetTop) + \"px\";\n var cursor = cm.getCursor();\n if (data.from.ch != cursor.ch) {\n pos = cm.cursorCoords(cursor);\n hints.style.left = (left = pos.left - offsetLeft) + \"px\";\n box = hints.getBoundingClientRect();\n }\n }\n }\n var overlapX = box.right - winW;\n if (overlapX > 0) {\n if (box.right - box.left > winW) {\n hints.style.width = (winW - 5) + \"px\";\n overlapX -= (box.right - box.left) - winW;\n }\n hints.style.left = (left = pos.left - overlapX - offsetLeft) + \"px\";\n }\n if (scrolls) for (var node = hints.firstChild; node; node = node.nextSibling)\n node.style.paddingRight = cm.display.nativeBarWidth + \"px\"\n\n cm.addKeyMap(this.keyMap = buildKeyMap(completion, {\n moveFocus: function(n, avoidWrap) { widget.changeActive(widget.selectedHint + n, avoidWrap); },\n setFocus: function(n) { widget.changeActive(n); },\n menuSize: function() { return widget.screenAmount(); },\n length: completions.length,\n close: function() { completion.close(); },\n pick: function() { widget.pick(); },\n data: data\n }));\n\n if (completion.options.closeOnUnfocus) {\n var closingOnBlur;\n cm.on(\"blur\", this.onBlur = function() { closingOnBlur = setTimeout(function() { completion.close(); }, 100); });\n cm.on(\"focus\", this.onFocus = function() { clearTimeout(closingOnBlur); });\n }\n\n cm.on(\"scroll\", this.onScroll = function() {\n var curScroll = cm.getScrollInfo(), editor = cm.getWrapperElement().getBoundingClientRect();\n var newTop = top + startScroll.top - curScroll.top;\n var point = newTop - (parentWindow.pageYOffset || (ownerDocument.documentElement || ownerDocument.body).scrollTop);\n if (!below) point += hints.offsetHeight;\n if (point <= editor.top || point >= editor.bottom) return completion.close();\n hints.style.top = newTop + \"px\";\n hints.style.left = (left + startScroll.left - curScroll.left) + \"px\";\n });\n\n CodeMirror.on(hints, \"dblclick\", function(e) {\n var t = getHintElement(hints, e.target || e.srcElement);\n if (t && t.hintId != null) {widget.changeActive(t.hintId); widget.pick();}\n });\n\n CodeMirror.on(hints, \"click\", function(e) {\n var t = getHintElement(hints, e.target || e.srcElement);\n if (t && t.hintId != null) {\n widget.changeActive(t.hintId);\n if (completion.options.completeOnSingleClick) widget.pick();\n }\n });\n\n CodeMirror.on(hints, \"mousedown\", function() {\n setTimeout(function(){cm.focus();}, 20);\n });\n this.scrollToActive()\n\n CodeMirror.signal(data, \"select\", completions[this.selectedHint], hints.childNodes[this.selectedHint]);\n return true;\n }\n\n Widget.prototype = {\n close: function() {\n if (this.completion.widget != this) return;\n this.completion.widget = null;\n this.hints.parentNode.removeChild(this.hints);\n this.completion.cm.removeKeyMap(this.keyMap);\n\n var cm = this.completion.cm;\n if (this.completion.options.closeOnUnfocus) {\n cm.off(\"blur\", this.onBlur);\n cm.off(\"focus\", this.onFocus);\n }\n cm.off(\"scroll\", this.onScroll);\n },\n\n disable: function() {\n this.completion.cm.removeKeyMap(this.keyMap);\n var widget = this;\n this.keyMap = {Enter: function() { widget.picked = true; }};\n this.completion.cm.addKeyMap(this.keyMap);\n },\n\n pick: function() {\n this.completion.pick(this.data, this.selectedHint);\n },\n\n changeActive: function(i, avoidWrap) {\n if (i >= this.data.list.length)\n i = avoidWrap ? this.data.list.length - 1 : 0;\n else if (i < 0)\n i = avoidWrap ? 0 : this.data.list.length - 1;\n if (this.selectedHint == i) return;\n var node = this.hints.childNodes[this.selectedHint];\n if (node) node.className = node.className.replace(\" \" + ACTIVE_HINT_ELEMENT_CLASS, \"\");\n node = this.hints.childNodes[this.selectedHint = i];\n node.className += \" \" + ACTIVE_HINT_ELEMENT_CLASS;\n this.scrollToActive()\n CodeMirror.signal(this.data, \"select\", this.data.list[this.selectedHint], node);\n },\n\n scrollToActive: function() {\n var margin = this.completion.options.scrollMargin || 0;\n var node1 = this.hints.childNodes[Math.max(0, this.selectedHint - margin)];\n var node2 = this.hints.childNodes[Math.min(this.data.list.length - 1, this.selectedHint + margin)];\n var firstNode = this.hints.firstChild;\n if (node1.offsetTop < this.hints.scrollTop)\n this.hints.scrollTop = node1.offsetTop - firstNode.offsetTop;\n else if (node2.offsetTop + node2.offsetHeight > this.hints.scrollTop + this.hints.clientHeight)\n this.hints.scrollTop = node2.offsetTop + node2.offsetHeight - this.hints.clientHeight + firstNode.offsetTop;\n },\n\n screenAmount: function() {\n return Math.floor(this.hints.clientHeight / this.hints.firstChild.offsetHeight) || 1;\n }\n };\n\n function applicableHelpers(cm, helpers) {\n if (!cm.somethingSelected()) return helpers\n var result = []\n for (var i = 0; i < helpers.length; i++)\n if (helpers[i].supportsSelection) result.push(helpers[i])\n return result\n }\n\n function fetchHints(hint, cm, options, callback) {\n if (hint.async) {\n hint(cm, callback, options)\n } else {\n var result = hint(cm, options)\n if (result && result.then) result.then(callback)\n else callback(result)\n }\n }\n\n function resolveAutoHints(cm, pos) {\n var helpers = cm.getHelpers(pos, \"hint\"), words\n if (helpers.length) {\n var resolved = function(cm, callback, options) {\n var app = applicableHelpers(cm, helpers);\n function run(i) {\n if (i == app.length) return callback(null)\n fetchHints(app[i], cm, options, function(result) {\n if (result && result.list.length > 0) callback(result)\n else run(i + 1)\n })\n }\n run(0)\n }\n resolved.async = true\n resolved.supportsSelection = true\n return resolved\n } else if (words = cm.getHelper(cm.getCursor(), \"hintWords\")) {\n return function(cm) { return CodeMirror.hint.fromList(cm, {words: words}) }\n } else if (CodeMirror.hint.anyword) {\n return function(cm, options) { return CodeMirror.hint.anyword(cm, options) }\n } else {\n return function() {}\n }\n }\n\n CodeMirror.registerHelper(\"hint\", \"auto\", {\n resolve: resolveAutoHints\n });\n\n CodeMirror.registerHelper(\"hint\", \"fromList\", function(cm, options) {\n var cur = cm.getCursor(), token = cm.getTokenAt(cur)\n var term, from = CodeMirror.Pos(cur.line, token.start), to = cur\n if (token.start < cur.ch && /\\w/.test(token.string.charAt(cur.ch - token.start - 1))) {\n term = token.string.substr(0, cur.ch - token.start)\n } else {\n term = \"\"\n from = cur\n }\n var found = [];\n for (var i = 0; i < options.words.length; i++) {\n var word = options.words[i];\n if (word.slice(0, term.length) == term)\n found.push(word);\n }\n\n if (found.length) return {list: found, from: from, to: to};\n });\n\n CodeMirror.commands.autocomplete = CodeMirror.showHint;\n\n var defaultOptions = {\n hint: CodeMirror.hint.auto,\n completeSingle: true,\n alignWithWord: true,\n closeCharacters: /[\\s()\\[\\]{};:>,]/,\n closeOnUnfocus: true,\n completeOnSingleClick: true,\n container: null,\n customKeys: null,\n extraKeys: null\n };\n\n CodeMirror.defineOption(\"hintOptions\", null);\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n var defaults = {\n pairs: \"()[]{}''\\\"\\\"\",\n closeBefore: \")]}'\\\":;>\",\n triples: \"\",\n explode: \"[]{}\"\n };\n\n var Pos = CodeMirror.Pos;\n\n CodeMirror.defineOption(\"autoCloseBrackets\", false, function(cm, val, old) {\n if (old && old != CodeMirror.Init) {\n cm.removeKeyMap(keyMap);\n cm.state.closeBrackets = null;\n }\n if (val) {\n ensureBound(getOption(val, \"pairs\"))\n cm.state.closeBrackets = val;\n cm.addKeyMap(keyMap);\n }\n });\n\n function getOption(conf, name) {\n if (name == \"pairs\" && typeof conf == \"string\") return conf;\n if (typeof conf == \"object\" && conf[name] != null) return conf[name];\n return defaults[name];\n }\n\n var keyMap = {Backspace: handleBackspace, Enter: handleEnter};\n function ensureBound(chars) {\n for (var i = 0; i < chars.length; i++) {\n var ch = chars.charAt(i), key = \"'\" + ch + \"'\"\n if (!keyMap[key]) keyMap[key] = handler(ch)\n }\n }\n ensureBound(defaults.pairs + \"`\")\n\n function handler(ch) {\n return function(cm) { return handleChar(cm, ch); };\n }\n\n function getConfig(cm) {\n var deflt = cm.state.closeBrackets;\n if (!deflt || deflt.override) return deflt;\n var mode = cm.getModeAt(cm.getCursor());\n return mode.closeBrackets || deflt;\n }\n\n function handleBackspace(cm) {\n var conf = getConfig(cm);\n if (!conf || cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n\n var pairs = getOption(conf, \"pairs\");\n var ranges = cm.listSelections();\n for (var i = 0; i < ranges.length; i++) {\n if (!ranges[i].empty()) return CodeMirror.Pass;\n var around = charsAround(cm, ranges[i].head);\n if (!around || pairs.indexOf(around) % 2 != 0) return CodeMirror.Pass;\n }\n for (var i = ranges.length - 1; i >= 0; i--) {\n var cur = ranges[i].head;\n cm.replaceRange(\"\", Pos(cur.line, cur.ch - 1), Pos(cur.line, cur.ch + 1), \"+delete\");\n }\n }\n\n function handleEnter(cm) {\n var conf = getConfig(cm);\n var explode = conf && getOption(conf, \"explode\");\n if (!explode || cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n\n var ranges = cm.listSelections();\n for (var i = 0; i < ranges.length; i++) {\n if (!ranges[i].empty()) return CodeMirror.Pass;\n var around = charsAround(cm, ranges[i].head);\n if (!around || explode.indexOf(around) % 2 != 0) return CodeMirror.Pass;\n }\n cm.operation(function() {\n var linesep = cm.lineSeparator() || \"\\n\";\n cm.replaceSelection(linesep + linesep, null);\n cm.execCommand(\"goCharLeft\");\n ranges = cm.listSelections();\n for (var i = 0; i < ranges.length; i++) {\n var line = ranges[i].head.line;\n cm.indentLine(line, null, true);\n cm.indentLine(line + 1, null, true);\n }\n });\n }\n\n function contractSelection(sel) {\n var inverted = CodeMirror.cmpPos(sel.anchor, sel.head) > 0;\n return {anchor: new Pos(sel.anchor.line, sel.anchor.ch + (inverted ? -1 : 1)),\n head: new Pos(sel.head.line, sel.head.ch + (inverted ? 1 : -1))};\n }\n\n function handleChar(cm, ch) {\n var conf = getConfig(cm);\n if (!conf || cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n\n var pairs = getOption(conf, \"pairs\");\n var pos = pairs.indexOf(ch);\n if (pos == -1) return CodeMirror.Pass;\n\n var closeBefore = getOption(conf,\"closeBefore\");\n\n var triples = getOption(conf, \"triples\");\n\n var identical = pairs.charAt(pos + 1) == ch;\n var ranges = cm.listSelections();\n var opening = pos % 2 == 0;\n\n var type;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i], cur = range.head, curType;\n var next = cm.getRange(cur, Pos(cur.line, cur.ch + 1));\n if (opening && !range.empty()) {\n curType = \"surround\";\n } else if ((identical || !opening) && next == ch) {\n if (identical && stringStartsAfter(cm, cur))\n curType = \"both\";\n else if (triples.indexOf(ch) >= 0 && cm.getRange(cur, Pos(cur.line, cur.ch + 3)) == ch + ch + ch)\n curType = \"skipThree\";\n else\n curType = \"skip\";\n } else if (identical && cur.ch > 1 && triples.indexOf(ch) >= 0 &&\n cm.getRange(Pos(cur.line, cur.ch - 2), cur) == ch + ch) {\n if (cur.ch > 2 && /\\bstring/.test(cm.getTokenTypeAt(Pos(cur.line, cur.ch - 2)))) return CodeMirror.Pass;\n curType = \"addFour\";\n } else if (identical) {\n var prev = cur.ch == 0 ? \" \" : cm.getRange(Pos(cur.line, cur.ch - 1), cur)\n if (!CodeMirror.isWordChar(next) && prev != ch && !CodeMirror.isWordChar(prev)) curType = \"both\";\n else return CodeMirror.Pass;\n } else if (opening && (next.length === 0 || /\\s/.test(next) || closeBefore.indexOf(next) > -1)) {\n curType = \"both\";\n } else {\n return CodeMirror.Pass;\n }\n if (!type) type = curType;\n else if (type != curType) return CodeMirror.Pass;\n }\n\n var left = pos % 2 ? pairs.charAt(pos - 1) : ch;\n var right = pos % 2 ? ch : pairs.charAt(pos + 1);\n cm.operation(function() {\n if (type == \"skip\") {\n cm.execCommand(\"goCharRight\");\n } else if (type == \"skipThree\") {\n for (var i = 0; i < 3; i++)\n cm.execCommand(\"goCharRight\");\n } else if (type == \"surround\") {\n var sels = cm.getSelections();\n for (var i = 0; i < sels.length; i++)\n sels[i] = left + sels[i] + right;\n cm.replaceSelections(sels, \"around\");\n sels = cm.listSelections().slice();\n for (var i = 0; i < sels.length; i++)\n sels[i] = contractSelection(sels[i]);\n cm.setSelections(sels);\n } else if (type == \"both\") {\n cm.replaceSelection(left + right, null);\n cm.triggerElectric(left + right);\n cm.execCommand(\"goCharLeft\");\n } else if (type == \"addFour\") {\n cm.replaceSelection(left + left + left + left, \"before\");\n cm.execCommand(\"goCharRight\");\n }\n });\n }\n\n function charsAround(cm, pos) {\n var str = cm.getRange(Pos(pos.line, pos.ch - 1),\n Pos(pos.line, pos.ch + 1));\n return str.length == 2 ? str : null;\n }\n\n function stringStartsAfter(cm, pos) {\n var token = cm.getTokenAt(Pos(pos.line, pos.ch + 1))\n return /\\bstring/.test(token.type) && token.start == pos.ch &&\n (pos.ch == 0 || !/\\bstring/.test(cm.getTokenTypeAt(pos)))\n }\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Define search commands. Depends on dialog.js or another\n// implementation of the openDialog method.\n\n// Replace works a little oddly -- it will do the replace on the next\n// Ctrl-G (or whatever is bound to findNext) press. You prevent a\n// replace by making sure the match is no longer selected when hitting\n// Ctrl-G.\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"./searchcursor\"), require(\"../dialog/dialog\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"./searchcursor\", \"../dialog/dialog\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n function searchOverlay(query, caseInsensitive) {\n if (typeof query == \"string\")\n query = new RegExp(query.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\"), caseInsensitive ? \"gi\" : \"g\");\n else if (!query.global)\n query = new RegExp(query.source, query.ignoreCase ? \"gi\" : \"g\");\n\n return {token: function(stream) {\n query.lastIndex = stream.pos;\n var match = query.exec(stream.string);\n if (match && match.index == stream.pos) {\n stream.pos += match[0].length || 1;\n return \"searching\";\n } else if (match) {\n stream.pos = match.index;\n } else {\n stream.skipToEnd();\n }\n }};\n }\n\n function SearchState() {\n this.posFrom = this.posTo = this.lastQuery = this.query = null;\n this.overlay = null;\n }\n\n function getSearchState(cm) {\n return cm.state.search || (cm.state.search = new SearchState());\n }\n\n function queryCaseInsensitive(query) {\n return typeof query == \"string\" && query == query.toLowerCase();\n }\n\n function getSearchCursor(cm, query, pos) {\n // Heuristic: if the query string is all lowercase, do a case insensitive search.\n return cm.getSearchCursor(query, pos, {caseFold: queryCaseInsensitive(query), multiline: true});\n }\n\n function persistentDialog(cm, text, deflt, onEnter, onKeyDown) {\n cm.openDialog(text, onEnter, {\n value: deflt,\n selectValueOnOpen: true,\n closeOnEnter: false,\n onClose: function() { clearSearch(cm); },\n onKeyDown: onKeyDown\n });\n }\n\n function dialog(cm, text, shortText, deflt, f) {\n if (cm.openDialog) cm.openDialog(text, f, {value: deflt, selectValueOnOpen: true});\n else f(prompt(shortText, deflt));\n }\n\n function confirmDialog(cm, text, shortText, fs) {\n if (cm.openConfirm) cm.openConfirm(text, fs);\n else if (confirm(shortText)) fs[0]();\n }\n\n function parseString(string) {\n return string.replace(/\\\\([nrt\\\\])/g, function(match, ch) {\n if (ch == \"n\") return \"\\n\"\n if (ch == \"r\") return \"\\r\"\n if (ch == \"t\") return \"\\t\"\n if (ch == \"\\\\\") return \"\\\\\"\n return match\n })\n }\n\n function parseQuery(query) {\n var isRE = query.match(/^\\/(.*)\\/([a-z]*)$/);\n if (isRE) {\n try { query = new RegExp(isRE[1], isRE[2].indexOf(\"i\") == -1 ? \"\" : \"i\"); }\n catch(e) {} // Not a regular expression after all, do a string search\n } else {\n query = parseString(query)\n }\n if (typeof query == \"string\" ? query == \"\" : query.test(\"\"))\n query = /x^/;\n return query;\n }\n\n function startSearch(cm, state, query) {\n state.queryText = query;\n state.query = parseQuery(query);\n cm.removeOverlay(state.overlay, queryCaseInsensitive(state.query));\n state.overlay = searchOverlay(state.query, queryCaseInsensitive(state.query));\n cm.addOverlay(state.overlay);\n if (cm.showMatchesOnScrollbar) {\n if (state.annotate) { state.annotate.clear(); state.annotate = null; }\n state.annotate = cm.showMatchesOnScrollbar(state.query, queryCaseInsensitive(state.query));\n }\n }\n\n function doSearch(cm, rev, persistent, immediate) {\n var state = getSearchState(cm);\n if (state.query) return findNext(cm, rev);\n var q = cm.getSelection() || state.lastQuery;\n if (q instanceof RegExp && q.source == \"x^\") q = null\n if (persistent && cm.openDialog) {\n var hiding = null\n var searchNext = function(query, event) {\n CodeMirror.e_stop(event);\n if (!query) return;\n if (query != state.queryText) {\n startSearch(cm, state, query);\n state.posFrom = state.posTo = cm.getCursor();\n }\n if (hiding) hiding.style.opacity = 1\n findNext(cm, event.shiftKey, function(_, to) {\n var dialog\n if (to.line < 3 && document.querySelector &&\n (dialog = cm.display.wrapper.querySelector(\".CodeMirror-dialog\")) &&\n dialog.getBoundingClientRect().bottom - 4 > cm.cursorCoords(to, \"window\").top)\n (hiding = dialog).style.opacity = .4\n })\n };\n persistentDialog(cm, getQueryDialog(cm), q, searchNext, function(event, query) {\n var keyName = CodeMirror.keyName(event)\n var extra = cm.getOption('extraKeys'), cmd = (extra && extra[keyName]) || CodeMirror.keyMap[cm.getOption(\"keyMap\")][keyName]\n if (cmd == \"findNext\" || cmd == \"findPrev\" ||\n cmd == \"findPersistentNext\" || cmd == \"findPersistentPrev\") {\n CodeMirror.e_stop(event);\n startSearch(cm, getSearchState(cm), query);\n cm.execCommand(cmd);\n } else if (cmd == \"find\" || cmd == \"findPersistent\") {\n CodeMirror.e_stop(event);\n searchNext(query, event);\n }\n });\n if (immediate && q) {\n startSearch(cm, state, q);\n findNext(cm, rev);\n }\n } else {\n dialog(cm, getQueryDialog(cm), \"Search for:\", q, function(query) {\n if (query && !state.query) cm.operation(function() {\n startSearch(cm, state, query);\n state.posFrom = state.posTo = cm.getCursor();\n findNext(cm, rev);\n });\n });\n }\n }\n\n function findNext(cm, rev, callback) {cm.operation(function() {\n var state = getSearchState(cm);\n var cursor = getSearchCursor(cm, state.query, rev ? state.posFrom : state.posTo);\n if (!cursor.find(rev)) {\n cursor = getSearchCursor(cm, state.query, rev ? CodeMirror.Pos(cm.lastLine()) : CodeMirror.Pos(cm.firstLine(), 0));\n if (!cursor.find(rev)) return;\n }\n cm.setSelection(cursor.from(), cursor.to());\n cm.scrollIntoView({from: cursor.from(), to: cursor.to()}, 20);\n state.posFrom = cursor.from(); state.posTo = cursor.to();\n if (callback) callback(cursor.from(), cursor.to())\n });}\n\n function clearSearch(cm) {cm.operation(function() {\n var state = getSearchState(cm);\n state.lastQuery = state.query;\n if (!state.query) return;\n state.query = state.queryText = null;\n cm.removeOverlay(state.overlay);\n if (state.annotate) { state.annotate.clear(); state.annotate = null; }\n });}\n\n\n function getQueryDialog(cm) {\n return '' + cm.phrase(\"Search:\") + ' ' + cm.phrase(\"(Use /re/ syntax for regexp search)\") + '';\n }\n function getReplaceQueryDialog(cm) {\n return ' ' + cm.phrase(\"(Use /re/ syntax for regexp search)\") + '';\n }\n function getReplacementQueryDialog(cm) {\n return '' + cm.phrase(\"With:\") + ' ';\n }\n function getDoReplaceConfirm(cm) {\n return '' + cm.phrase(\"Replace?\") + ' ';\n }\n\n function replaceAll(cm, query, text) {\n cm.operation(function() {\n for (var cursor = getSearchCursor(cm, query); cursor.findNext();) {\n if (typeof query != \"string\") {\n var match = cm.getRange(cursor.from(), cursor.to()).match(query);\n cursor.replace(text.replace(/\\$(\\d)/g, function(_, i) {return match[i];}));\n } else cursor.replace(text);\n }\n });\n }\n\n function replace(cm, all) {\n if (cm.getOption(\"readOnly\")) return;\n var query = cm.getSelection() || getSearchState(cm).lastQuery;\n var dialogText = '' + (all ? cm.phrase(\"Replace all:\") : cm.phrase(\"Replace:\")) + '';\n dialog(cm, dialogText + getReplaceQueryDialog(cm), dialogText, query, function(query) {\n if (!query) return;\n query = parseQuery(query);\n dialog(cm, getReplacementQueryDialog(cm), cm.phrase(\"Replace with:\"), \"\", function(text) {\n text = parseString(text)\n if (all) {\n replaceAll(cm, query, text)\n } else {\n clearSearch(cm);\n var cursor = getSearchCursor(cm, query, cm.getCursor(\"from\"));\n var advance = function() {\n var start = cursor.from(), match;\n if (!(match = cursor.findNext())) {\n cursor = getSearchCursor(cm, query);\n if (!(match = cursor.findNext()) ||\n (start && cursor.from().line == start.line && cursor.from().ch == start.ch)) return;\n }\n cm.setSelection(cursor.from(), cursor.to());\n cm.scrollIntoView({from: cursor.from(), to: cursor.to()});\n confirmDialog(cm, getDoReplaceConfirm(cm), cm.phrase(\"Replace?\"),\n [function() {doReplace(match);}, advance,\n function() {replaceAll(cm, query, text)}]);\n };\n var doReplace = function(match) {\n cursor.replace(typeof query == \"string\" ? text :\n text.replace(/\\$(\\d)/g, function(_, i) {return match[i];}));\n advance();\n };\n advance();\n }\n });\n });\n }\n\n CodeMirror.commands.find = function(cm) {clearSearch(cm); doSearch(cm);};\n CodeMirror.commands.findPersistent = function(cm) {clearSearch(cm); doSearch(cm, false, true);};\n CodeMirror.commands.findPersistentNext = function(cm) {doSearch(cm, false, true, true);};\n CodeMirror.commands.findPersistentPrev = function(cm) {doSearch(cm, true, true, true);};\n CodeMirror.commands.findNext = doSearch;\n CodeMirror.commands.findPrev = function(cm) {doSearch(cm, true);};\n CodeMirror.commands.clearSearch = clearSearch;\n CodeMirror.commands.replace = replace;\n CodeMirror.commands.replaceAll = function(cm) {replace(cm, true);};\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n var GUTTER_ID = \"CodeMirror-lint-markers\";\n\n function showTooltip(cm, e, content) {\n var tt = document.createElement(\"div\");\n tt.className = \"CodeMirror-lint-tooltip cm-s-\" + cm.options.theme;\n tt.appendChild(content.cloneNode(true));\n if (cm.state.lint.options.selfContain)\n cm.getWrapperElement().appendChild(tt);\n else\n document.body.appendChild(tt);\n\n function position(e) {\n if (!tt.parentNode) return CodeMirror.off(document, \"mousemove\", position);\n tt.style.top = Math.max(0, e.clientY - tt.offsetHeight - 5) + \"px\";\n tt.style.left = (e.clientX + 5) + \"px\";\n }\n CodeMirror.on(document, \"mousemove\", position);\n position(e);\n if (tt.style.opacity != null) tt.style.opacity = 1;\n return tt;\n }\n function rm(elt) {\n if (elt.parentNode) elt.parentNode.removeChild(elt);\n }\n function hideTooltip(tt) {\n if (!tt.parentNode) return;\n if (tt.style.opacity == null) rm(tt);\n tt.style.opacity = 0;\n setTimeout(function() { rm(tt); }, 600);\n }\n\n function showTooltipFor(cm, e, content, node) {\n var tooltip = showTooltip(cm, e, content);\n function hide() {\n CodeMirror.off(node, \"mouseout\", hide);\n if (tooltip) { hideTooltip(tooltip); tooltip = null; }\n }\n var poll = setInterval(function() {\n if (tooltip) for (var n = node;; n = n.parentNode) {\n if (n && n.nodeType == 11) n = n.host;\n if (n == document.body) return;\n if (!n) { hide(); break; }\n }\n if (!tooltip) return clearInterval(poll);\n }, 400);\n CodeMirror.on(node, \"mouseout\", hide);\n }\n\n function LintState(cm, options, hasGutter) {\n this.marked = [];\n this.options = options;\n this.timeout = null;\n this.hasGutter = hasGutter;\n this.onMouseOver = function(e) { onMouseOver(cm, e); };\n this.waitingFor = 0\n }\n\n function parseOptions(_cm, options) {\n if (options instanceof Function) return {getAnnotations: options};\n if (!options || options === true) options = {};\n return options;\n }\n\n function clearMarks(cm) {\n var state = cm.state.lint;\n if (state.hasGutter) cm.clearGutter(GUTTER_ID);\n for (var i = 0; i < state.marked.length; ++i)\n state.marked[i].clear();\n state.marked.length = 0;\n }\n\n function makeMarker(cm, labels, severity, multiple, tooltips) {\n var marker = document.createElement(\"div\"), inner = marker;\n marker.className = \"CodeMirror-lint-marker CodeMirror-lint-marker-\" + severity;\n if (multiple) {\n inner = marker.appendChild(document.createElement(\"div\"));\n inner.className = \"CodeMirror-lint-marker CodeMirror-lint-marker-multiple\";\n }\n\n if (tooltips != false) CodeMirror.on(inner, \"mouseover\", function(e) {\n showTooltipFor(cm, e, labels, inner);\n });\n\n return marker;\n }\n\n function getMaxSeverity(a, b) {\n if (a == \"error\") return a;\n else return b;\n }\n\n function groupByLine(annotations) {\n var lines = [];\n for (var i = 0; i < annotations.length; ++i) {\n var ann = annotations[i], line = ann.from.line;\n (lines[line] || (lines[line] = [])).push(ann);\n }\n return lines;\n }\n\n function annotationTooltip(ann) {\n var severity = ann.severity;\n if (!severity) severity = \"error\";\n var tip = document.createElement(\"div\");\n tip.className = \"CodeMirror-lint-message CodeMirror-lint-message-\" + severity;\n if (typeof ann.messageHTML != 'undefined') {\n tip.innerHTML = ann.messageHTML;\n } else {\n tip.appendChild(document.createTextNode(ann.message));\n }\n return tip;\n }\n\n function lintAsync(cm, getAnnotations, passOptions) {\n var state = cm.state.lint\n var id = ++state.waitingFor\n function abort() {\n id = -1\n cm.off(\"change\", abort)\n }\n cm.on(\"change\", abort)\n getAnnotations(cm.getValue(), function(annotations, arg2) {\n cm.off(\"change\", abort)\n if (state.waitingFor != id) return\n if (arg2 && annotations instanceof CodeMirror) annotations = arg2\n cm.operation(function() {updateLinting(cm, annotations)})\n }, passOptions, cm);\n }\n\n function startLinting(cm) {\n var state = cm.state.lint, options = state.options;\n /*\n * Passing rules in `options` property prevents JSHint (and other linters) from complaining\n * about unrecognized rules like `onUpdateLinting`, `delay`, `lintOnChange`, etc.\n */\n var passOptions = options.options || options;\n var getAnnotations = options.getAnnotations || cm.getHelper(CodeMirror.Pos(0, 0), \"lint\");\n if (!getAnnotations) return;\n if (options.async || getAnnotations.async) {\n lintAsync(cm, getAnnotations, passOptions)\n } else {\n var annotations = getAnnotations(cm.getValue(), passOptions, cm);\n if (!annotations) return;\n if (annotations.then) annotations.then(function(issues) {\n cm.operation(function() {updateLinting(cm, issues)})\n });\n else cm.operation(function() {updateLinting(cm, annotations)})\n }\n }\n\n function updateLinting(cm, annotationsNotSorted) {\n clearMarks(cm);\n var state = cm.state.lint, options = state.options;\n\n var annotations = groupByLine(annotationsNotSorted);\n\n for (var line = 0; line < annotations.length; ++line) {\n var anns = annotations[line];\n if (!anns) continue;\n\n var maxSeverity = null;\n var tipLabel = state.hasGutter && document.createDocumentFragment();\n\n for (var i = 0; i < anns.length; ++i) {\n var ann = anns[i];\n var severity = ann.severity;\n if (!severity) severity = \"error\";\n maxSeverity = getMaxSeverity(maxSeverity, severity);\n\n if (options.formatAnnotation) ann = options.formatAnnotation(ann);\n if (state.hasGutter) tipLabel.appendChild(annotationTooltip(ann));\n\n if (ann.to) state.marked.push(cm.markText(ann.from, ann.to, {\n className: \"CodeMirror-lint-mark CodeMirror-lint-mark-\" + severity,\n __annotation: ann\n }));\n }\n\n if (state.hasGutter)\n cm.setGutterMarker(line, GUTTER_ID, makeMarker(cm, tipLabel, maxSeverity, anns.length > 1,\n state.options.tooltips));\n }\n if (options.onUpdateLinting) options.onUpdateLinting(annotationsNotSorted, annotations, cm);\n }\n\n function onChange(cm) {\n var state = cm.state.lint;\n if (!state) return;\n clearTimeout(state.timeout);\n state.timeout = setTimeout(function(){startLinting(cm);}, state.options.delay || 500);\n }\n\n function popupTooltips(cm, annotations, e) {\n var target = e.target || e.srcElement;\n var tooltip = document.createDocumentFragment();\n for (var i = 0; i < annotations.length; i++) {\n var ann = annotations[i];\n tooltip.appendChild(annotationTooltip(ann));\n }\n showTooltipFor(cm, e, tooltip, target);\n }\n\n function onMouseOver(cm, e) {\n var target = e.target || e.srcElement;\n if (!/\\bCodeMirror-lint-mark-/.test(target.className)) return;\n var box = target.getBoundingClientRect(), x = (box.left + box.right) / 2, y = (box.top + box.bottom) / 2;\n var spans = cm.findMarksAt(cm.coordsChar({left: x, top: y}, \"client\"));\n\n var annotations = [];\n for (var i = 0; i < spans.length; ++i) {\n var ann = spans[i].__annotation;\n if (ann) annotations.push(ann);\n }\n if (annotations.length) popupTooltips(cm, annotations, e);\n }\n\n CodeMirror.defineOption(\"lint\", false, function(cm, val, old) {\n if (old && old != CodeMirror.Init) {\n clearMarks(cm);\n if (cm.state.lint.options.lintOnChange !== false)\n cm.off(\"change\", onChange);\n CodeMirror.off(cm.getWrapperElement(), \"mouseover\", cm.state.lint.onMouseOver);\n clearTimeout(cm.state.lint.timeout);\n delete cm.state.lint;\n }\n\n if (val) {\n var gutters = cm.getOption(\"gutters\"), hasLintGutter = false;\n for (var i = 0; i < gutters.length; ++i) if (gutters[i] == GUTTER_ID) hasLintGutter = true;\n var state = cm.state.lint = new LintState(cm, parseOptions(cm, val), hasLintGutter);\n if (state.options.lintOnChange !== false)\n cm.on(\"change\", onChange);\n if (state.options.tooltips != false && state.options.tooltips != \"gutter\")\n CodeMirror.on(cm.getWrapperElement(), \"mouseover\", state.onMouseOver);\n\n startLinting(cm);\n }\n });\n\n CodeMirror.defineExtension(\"performLint\", function() {\n if (this.state.lint) startLinting(this);\n });\n});\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getTypeInfo;\n\nvar _graphql = require(\"graphql\");\n\nvar _introspection = require(\"graphql/type/introspection\");\n\nvar _forEachState = _interopRequireDefault(require(\"./forEachState\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Copyright (c) 2019 GraphQL Contributors\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/**\n * Utility for collecting rich type information given any token's state\n * from the graphql-mode parser.\n */\nfunction getTypeInfo(schema, tokenState) {\n const info = {\n schema,\n type: null,\n parentType: null,\n inputType: null,\n directiveDef: null,\n fieldDef: null,\n argDef: null,\n argDefs: null,\n objectFieldDefs: null\n };\n (0, _forEachState.default)(tokenState, state => {\n switch (state.kind) {\n case 'Query':\n case 'ShortQuery':\n info.type = schema.getQueryType();\n break;\n\n case 'Mutation':\n info.type = schema.getMutationType();\n break;\n\n case 'Subscription':\n info.type = schema.getSubscriptionType();\n break;\n\n case 'InlineFragment':\n case 'FragmentDefinition':\n if (state.type) {\n info.type = schema.getType(state.type);\n }\n\n break;\n\n case 'Field':\n case 'AliasedField':\n info.fieldDef = info.type && state.name ? getFieldDef(schema, info.parentType, state.name) : null;\n info.type = info.fieldDef && info.fieldDef.type;\n break;\n\n case 'SelectionSet':\n info.parentType = (0, _graphql.getNamedType)(info.type);\n break;\n\n case 'Directive':\n info.directiveDef = state.name && schema.getDirective(state.name);\n break;\n\n case 'Arguments':\n const parentDef = state.prevState.kind === 'Field' ? info.fieldDef : state.prevState.kind === 'Directive' ? info.directiveDef : state.prevState.kind === 'AliasedField' ? state.prevState.name && getFieldDef(schema, info.parentType, state.prevState.name) : null;\n info.argDefs = parentDef && parentDef.args;\n break;\n\n case 'Argument':\n info.argDef = null;\n\n if (info.argDefs) {\n for (let i = 0; i < info.argDefs.length; i++) {\n if (info.argDefs[i].name === state.name) {\n info.argDef = info.argDefs[i];\n break;\n }\n }\n }\n\n info.inputType = info.argDef && info.argDef.type;\n break;\n\n case 'EnumValue':\n const enumType = (0, _graphql.getNamedType)(info.inputType);\n info.enumValue = enumType instanceof _graphql.GraphQLEnumType ? find(enumType.getValues(), val => val.value === state.name) : null;\n break;\n\n case 'ListValue':\n const nullableType = (0, _graphql.getNullableType)(info.inputType);\n info.inputType = nullableType instanceof _graphql.GraphQLList ? nullableType.ofType : null;\n break;\n\n case 'ObjectValue':\n const objectType = (0, _graphql.getNamedType)(info.inputType);\n info.objectFieldDefs = objectType instanceof _graphql.GraphQLInputObjectType ? objectType.getFields() : null;\n break;\n\n case 'ObjectField':\n const objectField = state.name && info.objectFieldDefs ? info.objectFieldDefs[state.name] : null;\n info.inputType = objectField && objectField.type;\n break;\n\n case 'NamedType':\n info.type = schema.getType(state.name);\n break;\n }\n });\n return info;\n} // Gets the field definition given a type and field name\n\n\nfunction getFieldDef(schema, type, fieldName) {\n if (fieldName === _introspection.SchemaMetaFieldDef.name && schema.getQueryType() === type) {\n return _introspection.SchemaMetaFieldDef;\n }\n\n if (fieldName === _introspection.TypeMetaFieldDef.name && schema.getQueryType() === type) {\n return _introspection.TypeMetaFieldDef;\n }\n\n if (fieldName === _introspection.TypeNameMetaFieldDef.name && (0, _graphql.isCompositeType)(type)) {\n return _introspection.TypeNameMetaFieldDef;\n }\n\n if (type.getFields) {\n return type.getFields()[fieldName];\n }\n} // Returns the first item in the array which causes predicate to return truthy.\n\n\nfunction find(array, predicate) {\n for (let i = 0; i < array.length; i++) {\n if (predicate(array[i])) {\n return array[i];\n }\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = forEachState;\n\n/**\n * Copyright (c) 2019 GraphQL Contributors\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// Utility for iterating through a CodeMirror parse state stack bottom-up.\nfunction forEachState(stack, fn) {\n const reverseStateStack = [];\n let state = stack;\n\n while (state && state.kind) {\n reverseStateStack.push(state);\n state = state.prevState;\n }\n\n for (let i = reverseStateStack.length - 1; i >= 0; i--) {\n fn(reverseStateStack[i]);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getFieldReference = getFieldReference;\nexports.getDirectiveReference = getDirectiveReference;\nexports.getArgumentReference = getArgumentReference;\nexports.getEnumValueReference = getEnumValueReference;\nexports.getTypeReference = getTypeReference;\n\nvar _graphql = require(\"graphql\");\n\n/**\n * Copyright (c) 2019 GraphQL Contributors\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 */\nfunction getFieldReference(typeInfo) {\n return {\n kind: 'Field',\n schema: typeInfo.schema,\n field: typeInfo.fieldDef,\n type: isMetaField(typeInfo.fieldDef) ? null : typeInfo.parentType\n };\n}\n\nfunction getDirectiveReference(typeInfo) {\n return {\n kind: 'Directive',\n schema: typeInfo.schema,\n directive: typeInfo.directiveDef\n };\n}\n\nfunction getArgumentReference(typeInfo) {\n return typeInfo.directiveDef ? {\n kind: 'Argument',\n schema: typeInfo.schema,\n argument: typeInfo.argDef,\n directive: typeInfo.directiveDef\n } : {\n kind: 'Argument',\n schema: typeInfo.schema,\n argument: typeInfo.argDef,\n field: typeInfo.fieldDef,\n type: isMetaField(typeInfo.fieldDef) ? null : typeInfo.parentType\n };\n}\n\nfunction getEnumValueReference(typeInfo) {\n return {\n kind: 'EnumValue',\n value: typeInfo.enumValue,\n // $FlowFixMe\n type: (0, _graphql.getNamedType)(typeInfo.inputType)\n };\n} // Note: for reusability, getTypeReference can produce a reference to any type,\n// though it defaults to the current type.\n\n\nfunction getTypeReference(typeInfo, type) {\n return {\n kind: 'Type',\n schema: typeInfo.schema,\n type: type || typeInfo.type\n };\n}\n\nfunction isMetaField(fieldDef) {\n return fieldDef.name.slice(0, 2) === '__';\n}","\"use strict\";\n\nvar _codemirror = _interopRequireDefault(require(\"codemirror\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Copyright (c) 2019 GraphQL Contributors\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_codemirror.default.defineOption('info', false, (cm, options, old) => {\n if (old && old !== _codemirror.default.Init) {\n const oldOnMouseOver = cm.state.info.onMouseOver;\n\n _codemirror.default.off(cm.getWrapperElement(), 'mouseover', oldOnMouseOver);\n\n clearTimeout(cm.state.info.hoverTimeout);\n delete cm.state.info;\n }\n\n if (options) {\n const state = cm.state.info = createState(options);\n state.onMouseOver = onMouseOver.bind(null, cm);\n\n _codemirror.default.on(cm.getWrapperElement(), 'mouseover', state.onMouseOver);\n }\n});\n\nfunction createState(options) {\n return {\n options: options instanceof Function ? {\n render: options\n } : options === true ? {} : options\n };\n}\n\nfunction getHoverTime(cm) {\n const options = cm.state.info.options;\n return options && options.hoverTime || 500;\n}\n\nfunction onMouseOver(cm, e) {\n const state = cm.state.info;\n const target = e.target || e.srcElement;\n\n if (target.nodeName !== 'SPAN' || state.hoverTimeout !== undefined) {\n return;\n }\n\n const box = target.getBoundingClientRect();\n\n const onMouseMove = function () {\n clearTimeout(state.hoverTimeout);\n state.hoverTimeout = setTimeout(onHover, hoverTime);\n };\n\n const onMouseOut = function () {\n _codemirror.default.off(document, 'mousemove', onMouseMove);\n\n _codemirror.default.off(cm.getWrapperElement(), 'mouseout', onMouseOut);\n\n clearTimeout(state.hoverTimeout);\n state.hoverTimeout = undefined;\n };\n\n const onHover = function () {\n _codemirror.default.off(document, 'mousemove', onMouseMove);\n\n _codemirror.default.off(cm.getWrapperElement(), 'mouseout', onMouseOut);\n\n state.hoverTimeout = undefined;\n onMouseHover(cm, box);\n };\n\n const hoverTime = getHoverTime(cm);\n state.hoverTimeout = setTimeout(onHover, hoverTime);\n\n _codemirror.default.on(document, 'mousemove', onMouseMove);\n\n _codemirror.default.on(cm.getWrapperElement(), 'mouseout', onMouseOut);\n}\n\nfunction onMouseHover(cm, box) {\n const pos = cm.coordsChar({\n left: (box.left + box.right) / 2,\n top: (box.top + box.bottom) / 2\n });\n const state = cm.state.info;\n const options = state.options;\n const render = options.render || cm.getHelper(pos, 'info');\n\n if (render) {\n const token = cm.getTokenAt(pos, true);\n\n if (token) {\n const info = render(token, options, cm, pos);\n\n if (info) {\n showPopup(cm, box, info);\n }\n }\n }\n}\n\nfunction showPopup(cm, box, info) {\n const popup = document.createElement('div');\n popup.className = 'CodeMirror-info';\n popup.appendChild(info);\n document.body.appendChild(popup);\n const popupBox = popup.getBoundingClientRect();\n const popupStyle = popup.currentStyle || window.getComputedStyle(popup);\n const popupWidth = popupBox.right - popupBox.left + parseFloat(popupStyle.marginLeft) + parseFloat(popupStyle.marginRight);\n const popupHeight = popupBox.bottom - popupBox.top + parseFloat(popupStyle.marginTop) + parseFloat(popupStyle.marginBottom);\n let topPos = box.bottom;\n\n if (popupHeight > window.innerHeight - box.bottom - 15 && box.top > window.innerHeight - box.bottom) {\n topPos = box.top - popupHeight;\n }\n\n if (topPos < 0) {\n topPos = box.bottom;\n }\n\n let leftPos = Math.max(0, window.innerWidth - popupWidth - 15);\n\n if (leftPos > box.left) {\n leftPos = box.left;\n }\n\n popup.style.opacity = 1;\n popup.style.top = topPos + 'px';\n popup.style.left = leftPos + 'px';\n let popupTimeout;\n\n const onMouseOverPopup = function () {\n clearTimeout(popupTimeout);\n };\n\n const onMouseOut = function () {\n clearTimeout(popupTimeout);\n popupTimeout = setTimeout(hidePopup, 200);\n };\n\n const hidePopup = function () {\n _codemirror.default.off(popup, 'mouseover', onMouseOverPopup);\n\n _codemirror.default.off(popup, 'mouseout', onMouseOut);\n\n _codemirror.default.off(cm.getWrapperElement(), 'mouseout', onMouseOut);\n\n if (popup.style.opacity) {\n popup.style.opacity = 0;\n setTimeout(() => {\n if (popup.parentNode) {\n popup.parentNode.removeChild(popup);\n }\n }, 600);\n } else if (popup.parentNode) {\n popup.parentNode.removeChild(popup);\n }\n };\n\n _codemirror.default.on(popup, 'mouseover', onMouseOverPopup);\n\n _codemirror.default.on(popup, 'mouseout', onMouseOut);\n\n _codemirror.default.on(cm.getWrapperElement(), 'mouseout', onMouseOut);\n}","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}\n\nmodule.exports = _arrayLikeToArray;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = DefaultValue;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _graphql = require(\"graphql\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Copyright (c) 2019 GraphQL Contributors.\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 */\nfunction DefaultValue({\n field\n}) {\n const {\n type,\n defaultValue\n } = field;\n\n if (defaultValue !== undefined) {\n return _react.default.createElement(\"span\", null, ' = ', _react.default.createElement(\"span\", {\n className: \"arg-default-value\"\n }, (0, _graphql.print)((0, _graphql.astFromValue)(defaultValue, type))));\n }\n\n return null;\n}\n\nDefaultValue.propTypes = {\n field: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = debounce;\n\n/**\n * Copyright (c) 2019 GraphQL Contributors.\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 * Provided a duration and a function, returns a new function which is called\n * `duration` milliseconds after the last call.\n */\nfunction debounce(duration, fn) {\n let timeout;\n return function () {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n timeout = null;\n fn.apply(this, arguments);\n }, duration);\n };\n}","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","import { isCompositeType } from 'graphql';\nimport { SchemaMetaFieldDef, TypeMetaFieldDef, TypeNameMetaFieldDef, } from 'graphql/type/introspection';\nexport function getDefinitionState(tokenState) {\n let definitionState;\n forEachState(tokenState, (state) => {\n switch (state.kind) {\n case 'Query':\n case 'ShortQuery':\n case 'Mutation':\n case 'Subscription':\n case 'FragmentDefinition':\n definitionState = state;\n break;\n }\n });\n return definitionState;\n}\nexport function getFieldDef(schema, type, fieldName) {\n if (fieldName === SchemaMetaFieldDef.name && schema.getQueryType() === type) {\n return SchemaMetaFieldDef;\n }\n if (fieldName === TypeMetaFieldDef.name && schema.getQueryType() === type) {\n return TypeMetaFieldDef;\n }\n if (fieldName === TypeNameMetaFieldDef.name && isCompositeType(type)) {\n return TypeNameMetaFieldDef;\n }\n if ('getFields' in type) {\n return type.getFields()[fieldName];\n }\n return null;\n}\nexport function forEachState(stack, fn) {\n const reverseStateStack = [];\n let state = stack;\n while (state && state.kind) {\n reverseStateStack.push(state);\n state = state.prevState;\n }\n for (let i = reverseStateStack.length - 1; i >= 0; i--) {\n fn(reverseStateStack[i]);\n }\n}\nexport function objectValues(object) {\n const keys = Object.keys(object);\n const len = keys.length;\n const values = new Array(len);\n for (let i = 0; i < len; ++i) {\n values[i] = object[keys[i]];\n }\n return values;\n}\nexport function hintList(token, list) {\n return filterAndSortList(list, normalizeText(token.string));\n}\nfunction filterAndSortList(list, text) {\n if (!text) {\n return filterNonEmpty(list, entry => !entry.isDeprecated);\n }\n const byProximity = list.map(entry => ({\n proximity: getProximity(normalizeText(entry.label), text),\n entry,\n }));\n return filterNonEmpty(filterNonEmpty(byProximity, pair => pair.proximity <= 2), pair => !pair.entry.isDeprecated)\n .sort((a, b) => (a.entry.isDeprecated ? 1 : 0) - (b.entry.isDeprecated ? 1 : 0) ||\n a.proximity - b.proximity ||\n a.entry.label.length - b.entry.label.length)\n .map(pair => pair.entry);\n}\nfunction filterNonEmpty(array, predicate) {\n const filtered = array.filter(predicate);\n return filtered.length === 0 ? array : filtered;\n}\nfunction normalizeText(text) {\n return text.toLowerCase().replace(/\\W/g, '');\n}\nfunction getProximity(suggestion, text) {\n let proximity = lexicalDistance(text, suggestion);\n if (suggestion.length > text.length) {\n proximity -= suggestion.length - text.length - 1;\n proximity += suggestion.indexOf(text) === 0 ? 0 : 0.5;\n }\n return proximity;\n}\nfunction lexicalDistance(a, b) {\n let i;\n let j;\n const d = [];\n const aLength = a.length;\n const bLength = b.length;\n for (i = 0; i <= aLength; i++) {\n d[i] = [i];\n }\n for (j = 1; j <= bLength; j++) {\n d[0][j] = j;\n }\n for (i = 1; i <= aLength; i++) {\n for (j = 1; j <= bLength; j++) {\n const cost = a[i - 1] === b[j - 1] ? 0 : 1;\n d[i][j] = Math.min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + cost);\n if (i > 1 && j > 1 && a[i - 1] === b[j - 2] && a[i - 2] === b[j - 1]) {\n d[i][j] = Math.min(d[i][j], d[i - 2][j - 2] + cost);\n }\n }\n }\n return d[aLength][bLength];\n}\n//# sourceMappingURL=autocompleteUtils.js.map","/* --------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n * ------------------------------------------------------------------------------------------ */\r\n'use strict';\r\n/**\r\n * The Position namespace provides helper functions to work with\r\n * [Position](#Position) literals.\r\n */\r\nexport var Position;\r\n(function (Position) {\r\n /**\r\n * Creates a new Position literal from the given line and character.\r\n * @param line The position's line.\r\n * @param character The position's character.\r\n */\r\n function create(line, character) {\r\n return { line: line, character: character };\r\n }\r\n Position.create = create;\r\n /**\r\n * Checks whether the given liternal conforms to the [Position](#Position) interface.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return Is.objectLiteral(candidate) && Is.number(candidate.line) && Is.number(candidate.character);\r\n }\r\n Position.is = is;\r\n})(Position || (Position = {}));\r\n/**\r\n * The Range namespace provides helper functions to work with\r\n * [Range](#Range) literals.\r\n */\r\nexport var Range;\r\n(function (Range) {\r\n function create(one, two, three, four) {\r\n if (Is.number(one) && Is.number(two) && Is.number(three) && Is.number(four)) {\r\n return { start: Position.create(one, two), end: Position.create(three, four) };\r\n }\r\n else if (Position.is(one) && Position.is(two)) {\r\n return { start: one, end: two };\r\n }\r\n else {\r\n throw new Error(\"Range#create called with invalid arguments[\" + one + \", \" + two + \", \" + three + \", \" + four + \"]\");\r\n }\r\n }\r\n Range.create = create;\r\n /**\r\n * Checks whether the given literal conforms to the [Range](#Range) interface.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return Is.objectLiteral(candidate) && Position.is(candidate.start) && Position.is(candidate.end);\r\n }\r\n Range.is = is;\r\n})(Range || (Range = {}));\r\n/**\r\n * The Location namespace provides helper functions to work with\r\n * [Location](#Location) literals.\r\n */\r\nexport var Location;\r\n(function (Location) {\r\n /**\r\n * Creates a Location literal.\r\n * @param uri The location's uri.\r\n * @param range The location's range.\r\n */\r\n function create(uri, range) {\r\n return { uri: uri, range: range };\r\n }\r\n Location.create = create;\r\n /**\r\n * Checks whether the given literal conforms to the [Location](#Location) interface.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return Is.defined(candidate) && Range.is(candidate.range) && (Is.string(candidate.uri) || Is.undefined(candidate.uri));\r\n }\r\n Location.is = is;\r\n})(Location || (Location = {}));\r\n/**\r\n * The LocationLink namespace provides helper functions to work with\r\n * [LocationLink](#LocationLink) literals.\r\n */\r\nexport var LocationLink;\r\n(function (LocationLink) {\r\n /**\r\n * Creates a LocationLink literal.\r\n * @param targetUri The definition's uri.\r\n * @param targetRange The full range of the definition.\r\n * @param targetSelectionRange The span of the symbol definition at the target.\r\n * @param originSelectionRange The span of the symbol being defined in the originating source file.\r\n */\r\n function create(targetUri, targetRange, targetSelectionRange, originSelectionRange) {\r\n return { targetUri: targetUri, targetRange: targetRange, targetSelectionRange: targetSelectionRange, originSelectionRange: originSelectionRange };\r\n }\r\n LocationLink.create = create;\r\n /**\r\n * Checks whether the given literal conforms to the [LocationLink](#LocationLink) interface.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return Is.defined(candidate) && Range.is(candidate.targetRange) && Is.string(candidate.targetUri)\r\n && (Range.is(candidate.targetSelectionRange) || Is.undefined(candidate.targetSelectionRange))\r\n && (Range.is(candidate.originSelectionRange) || Is.undefined(candidate.originSelectionRange));\r\n }\r\n LocationLink.is = is;\r\n})(LocationLink || (LocationLink = {}));\r\n/**\r\n * The Color namespace provides helper functions to work with\r\n * [Color](#Color) literals.\r\n */\r\nexport var Color;\r\n(function (Color) {\r\n /**\r\n * Creates a new Color literal.\r\n */\r\n function create(red, green, blue, alpha) {\r\n return {\r\n red: red,\r\n green: green,\r\n blue: blue,\r\n alpha: alpha,\r\n };\r\n }\r\n Color.create = create;\r\n /**\r\n * Checks whether the given literal conforms to the [Color](#Color) interface.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return Is.number(candidate.red)\r\n && Is.number(candidate.green)\r\n && Is.number(candidate.blue)\r\n && Is.number(candidate.alpha);\r\n }\r\n Color.is = is;\r\n})(Color || (Color = {}));\r\n/**\r\n * The ColorInformation namespace provides helper functions to work with\r\n * [ColorInformation](#ColorInformation) literals.\r\n */\r\nexport var ColorInformation;\r\n(function (ColorInformation) {\r\n /**\r\n * Creates a new ColorInformation literal.\r\n */\r\n function create(range, color) {\r\n return {\r\n range: range,\r\n color: color,\r\n };\r\n }\r\n ColorInformation.create = create;\r\n /**\r\n * Checks whether the given literal conforms to the [ColorInformation](#ColorInformation) interface.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return Range.is(candidate.range) && Color.is(candidate.color);\r\n }\r\n ColorInformation.is = is;\r\n})(ColorInformation || (ColorInformation = {}));\r\n/**\r\n * The Color namespace provides helper functions to work with\r\n * [ColorPresentation](#ColorPresentation) literals.\r\n */\r\nexport var ColorPresentation;\r\n(function (ColorPresentation) {\r\n /**\r\n * Creates a new ColorInformation literal.\r\n */\r\n function create(label, textEdit, additionalTextEdits) {\r\n return {\r\n label: label,\r\n textEdit: textEdit,\r\n additionalTextEdits: additionalTextEdits,\r\n };\r\n }\r\n ColorPresentation.create = create;\r\n /**\r\n * Checks whether the given literal conforms to the [ColorInformation](#ColorInformation) interface.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return Is.string(candidate.label)\r\n && (Is.undefined(candidate.textEdit) || TextEdit.is(candidate))\r\n && (Is.undefined(candidate.additionalTextEdits) || Is.typedArray(candidate.additionalTextEdits, TextEdit.is));\r\n }\r\n ColorPresentation.is = is;\r\n})(ColorPresentation || (ColorPresentation = {}));\r\n/**\r\n * Enum of known range kinds\r\n */\r\nexport var FoldingRangeKind;\r\n(function (FoldingRangeKind) {\r\n /**\r\n * Folding range for a comment\r\n */\r\n FoldingRangeKind[\"Comment\"] = \"comment\";\r\n /**\r\n * Folding range for a imports or includes\r\n */\r\n FoldingRangeKind[\"Imports\"] = \"imports\";\r\n /**\r\n * Folding range for a region (e.g. `#region`)\r\n */\r\n FoldingRangeKind[\"Region\"] = \"region\";\r\n})(FoldingRangeKind || (FoldingRangeKind = {}));\r\n/**\r\n * The folding range namespace provides helper functions to work with\r\n * [FoldingRange](#FoldingRange) literals.\r\n */\r\nexport var FoldingRange;\r\n(function (FoldingRange) {\r\n /**\r\n * Creates a new FoldingRange literal.\r\n */\r\n function create(startLine, endLine, startCharacter, endCharacter, kind) {\r\n var result = {\r\n startLine: startLine,\r\n endLine: endLine\r\n };\r\n if (Is.defined(startCharacter)) {\r\n result.startCharacter = startCharacter;\r\n }\r\n if (Is.defined(endCharacter)) {\r\n result.endCharacter = endCharacter;\r\n }\r\n if (Is.defined(kind)) {\r\n result.kind = kind;\r\n }\r\n return result;\r\n }\r\n FoldingRange.create = create;\r\n /**\r\n * Checks whether the given literal conforms to the [FoldingRange](#FoldingRange) interface.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return Is.number(candidate.startLine) && Is.number(candidate.startLine)\r\n && (Is.undefined(candidate.startCharacter) || Is.number(candidate.startCharacter))\r\n && (Is.undefined(candidate.endCharacter) || Is.number(candidate.endCharacter))\r\n && (Is.undefined(candidate.kind) || Is.string(candidate.kind));\r\n }\r\n FoldingRange.is = is;\r\n})(FoldingRange || (FoldingRange = {}));\r\n/**\r\n * The DiagnosticRelatedInformation namespace provides helper functions to work with\r\n * [DiagnosticRelatedInformation](#DiagnosticRelatedInformation) literals.\r\n */\r\nexport var DiagnosticRelatedInformation;\r\n(function (DiagnosticRelatedInformation) {\r\n /**\r\n * Creates a new DiagnosticRelatedInformation literal.\r\n */\r\n function create(location, message) {\r\n return {\r\n location: location,\r\n message: message\r\n };\r\n }\r\n DiagnosticRelatedInformation.create = create;\r\n /**\r\n * Checks whether the given literal conforms to the [DiagnosticRelatedInformation](#DiagnosticRelatedInformation) interface.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return Is.defined(candidate) && Location.is(candidate.location) && Is.string(candidate.message);\r\n }\r\n DiagnosticRelatedInformation.is = is;\r\n})(DiagnosticRelatedInformation || (DiagnosticRelatedInformation = {}));\r\n/**\r\n * The diagnostic's severity.\r\n */\r\nexport var DiagnosticSeverity;\r\n(function (DiagnosticSeverity) {\r\n /**\r\n * Reports an error.\r\n */\r\n DiagnosticSeverity.Error = 1;\r\n /**\r\n * Reports a warning.\r\n */\r\n DiagnosticSeverity.Warning = 2;\r\n /**\r\n * Reports an information.\r\n */\r\n DiagnosticSeverity.Information = 3;\r\n /**\r\n * Reports a hint.\r\n */\r\n DiagnosticSeverity.Hint = 4;\r\n})(DiagnosticSeverity || (DiagnosticSeverity = {}));\r\n/**\r\n * The diagnostic tags.\r\n *\r\n * @since 3.15.0\r\n */\r\nexport var DiagnosticTag;\r\n(function (DiagnosticTag) {\r\n /**\r\n * Unused or unnecessary code.\r\n *\r\n * Clients are allowed to render diagnostics with this tag faded out instead of having\r\n * an error squiggle.\r\n */\r\n DiagnosticTag.Unnecessary = 1;\r\n /**\r\n * Deprecated or obsolete code.\r\n *\r\n * Clients are allowed to rendered diagnostics with this tag strike through.\r\n */\r\n DiagnosticTag.Deprecated = 2;\r\n})(DiagnosticTag || (DiagnosticTag = {}));\r\n/**\r\n * The Diagnostic namespace provides helper functions to work with\r\n * [Diagnostic](#Diagnostic) literals.\r\n */\r\nexport var Diagnostic;\r\n(function (Diagnostic) {\r\n /**\r\n * Creates a new Diagnostic literal.\r\n */\r\n function create(range, message, severity, code, source, relatedInformation) {\r\n var result = { range: range, message: message };\r\n if (Is.defined(severity)) {\r\n result.severity = severity;\r\n }\r\n if (Is.defined(code)) {\r\n result.code = code;\r\n }\r\n if (Is.defined(source)) {\r\n result.source = source;\r\n }\r\n if (Is.defined(relatedInformation)) {\r\n result.relatedInformation = relatedInformation;\r\n }\r\n return result;\r\n }\r\n Diagnostic.create = create;\r\n /**\r\n * Checks whether the given literal conforms to the [Diagnostic](#Diagnostic) interface.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return Is.defined(candidate)\r\n && Range.is(candidate.range)\r\n && Is.string(candidate.message)\r\n && (Is.number(candidate.severity) || Is.undefined(candidate.severity))\r\n && (Is.number(candidate.code) || Is.string(candidate.code) || Is.undefined(candidate.code))\r\n && (Is.string(candidate.source) || Is.undefined(candidate.source))\r\n && (Is.undefined(candidate.relatedInformation) || Is.typedArray(candidate.relatedInformation, DiagnosticRelatedInformation.is));\r\n }\r\n Diagnostic.is = is;\r\n})(Diagnostic || (Diagnostic = {}));\r\n/**\r\n * The Command namespace provides helper functions to work with\r\n * [Command](#Command) literals.\r\n */\r\nexport var Command;\r\n(function (Command) {\r\n /**\r\n * Creates a new Command literal.\r\n */\r\n function create(title, command) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n var result = { title: title, command: command };\r\n if (Is.defined(args) && args.length > 0) {\r\n result.arguments = args;\r\n }\r\n return result;\r\n }\r\n Command.create = create;\r\n /**\r\n * Checks whether the given literal conforms to the [Command](#Command) interface.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return Is.defined(candidate) && Is.string(candidate.title) && Is.string(candidate.command);\r\n }\r\n Command.is = is;\r\n})(Command || (Command = {}));\r\n/**\r\n * The TextEdit namespace provides helper function to create replace,\r\n * insert and delete edits more easily.\r\n */\r\nexport var TextEdit;\r\n(function (TextEdit) {\r\n /**\r\n * Creates a replace text edit.\r\n * @param range The range of text to be replaced.\r\n * @param newText The new text.\r\n */\r\n function replace(range, newText) {\r\n return { range: range, newText: newText };\r\n }\r\n TextEdit.replace = replace;\r\n /**\r\n * Creates a insert text edit.\r\n * @param position The position to insert the text at.\r\n * @param newText The text to be inserted.\r\n */\r\n function insert(position, newText) {\r\n return { range: { start: position, end: position }, newText: newText };\r\n }\r\n TextEdit.insert = insert;\r\n /**\r\n * Creates a delete text edit.\r\n * @param range The range of text to be deleted.\r\n */\r\n function del(range) {\r\n return { range: range, newText: '' };\r\n }\r\n TextEdit.del = del;\r\n function is(value) {\r\n var candidate = value;\r\n return Is.objectLiteral(candidate)\r\n && Is.string(candidate.newText)\r\n && Range.is(candidate.range);\r\n }\r\n TextEdit.is = is;\r\n})(TextEdit || (TextEdit = {}));\r\n/**\r\n * The TextDocumentEdit namespace provides helper function to create\r\n * an edit that manipulates a text document.\r\n */\r\nexport var TextDocumentEdit;\r\n(function (TextDocumentEdit) {\r\n /**\r\n * Creates a new `TextDocumentEdit`\r\n */\r\n function create(textDocument, edits) {\r\n return { textDocument: textDocument, edits: edits };\r\n }\r\n TextDocumentEdit.create = create;\r\n function is(value) {\r\n var candidate = value;\r\n return Is.defined(candidate)\r\n && VersionedTextDocumentIdentifier.is(candidate.textDocument)\r\n && Array.isArray(candidate.edits);\r\n }\r\n TextDocumentEdit.is = is;\r\n})(TextDocumentEdit || (TextDocumentEdit = {}));\r\nexport var CreateFile;\r\n(function (CreateFile) {\r\n function create(uri, options) {\r\n var result = {\r\n kind: 'create',\r\n uri: uri\r\n };\r\n if (options !== void 0 && (options.overwrite !== void 0 || options.ignoreIfExists !== void 0)) {\r\n result.options = options;\r\n }\r\n return result;\r\n }\r\n CreateFile.create = create;\r\n function is(value) {\r\n var candidate = value;\r\n return candidate && candidate.kind === 'create' && Is.string(candidate.uri) &&\r\n (candidate.options === void 0 ||\r\n ((candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))));\r\n }\r\n CreateFile.is = is;\r\n})(CreateFile || (CreateFile = {}));\r\nexport var RenameFile;\r\n(function (RenameFile) {\r\n function create(oldUri, newUri, options) {\r\n var result = {\r\n kind: 'rename',\r\n oldUri: oldUri,\r\n newUri: newUri\r\n };\r\n if (options !== void 0 && (options.overwrite !== void 0 || options.ignoreIfExists !== void 0)) {\r\n result.options = options;\r\n }\r\n return result;\r\n }\r\n RenameFile.create = create;\r\n function is(value) {\r\n var candidate = value;\r\n return candidate && candidate.kind === 'rename' && Is.string(candidate.oldUri) && Is.string(candidate.newUri) &&\r\n (candidate.options === void 0 ||\r\n ((candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))));\r\n }\r\n RenameFile.is = is;\r\n})(RenameFile || (RenameFile = {}));\r\nexport var DeleteFile;\r\n(function (DeleteFile) {\r\n function create(uri, options) {\r\n var result = {\r\n kind: 'delete',\r\n uri: uri\r\n };\r\n if (options !== void 0 && (options.recursive !== void 0 || options.ignoreIfNotExists !== void 0)) {\r\n result.options = options;\r\n }\r\n return result;\r\n }\r\n DeleteFile.create = create;\r\n function is(value) {\r\n var candidate = value;\r\n return candidate && candidate.kind === 'delete' && Is.string(candidate.uri) &&\r\n (candidate.options === void 0 ||\r\n ((candidate.options.recursive === void 0 || Is.boolean(candidate.options.recursive)) && (candidate.options.ignoreIfNotExists === void 0 || Is.boolean(candidate.options.ignoreIfNotExists))));\r\n }\r\n DeleteFile.is = is;\r\n})(DeleteFile || (DeleteFile = {}));\r\nexport var WorkspaceEdit;\r\n(function (WorkspaceEdit) {\r\n function is(value) {\r\n var candidate = value;\r\n return candidate &&\r\n (candidate.changes !== void 0 || candidate.documentChanges !== void 0) &&\r\n (candidate.documentChanges === void 0 || candidate.documentChanges.every(function (change) {\r\n if (Is.string(change.kind)) {\r\n return CreateFile.is(change) || RenameFile.is(change) || DeleteFile.is(change);\r\n }\r\n else {\r\n return TextDocumentEdit.is(change);\r\n }\r\n }));\r\n }\r\n WorkspaceEdit.is = is;\r\n})(WorkspaceEdit || (WorkspaceEdit = {}));\r\nvar TextEditChangeImpl = /** @class */ (function () {\r\n function TextEditChangeImpl(edits) {\r\n this.edits = edits;\r\n }\r\n TextEditChangeImpl.prototype.insert = function (position, newText) {\r\n this.edits.push(TextEdit.insert(position, newText));\r\n };\r\n TextEditChangeImpl.prototype.replace = function (range, newText) {\r\n this.edits.push(TextEdit.replace(range, newText));\r\n };\r\n TextEditChangeImpl.prototype.delete = function (range) {\r\n this.edits.push(TextEdit.del(range));\r\n };\r\n TextEditChangeImpl.prototype.add = function (edit) {\r\n this.edits.push(edit);\r\n };\r\n TextEditChangeImpl.prototype.all = function () {\r\n return this.edits;\r\n };\r\n TextEditChangeImpl.prototype.clear = function () {\r\n this.edits.splice(0, this.edits.length);\r\n };\r\n return TextEditChangeImpl;\r\n}());\r\n/**\r\n * A workspace change helps constructing changes to a workspace.\r\n */\r\nvar WorkspaceChange = /** @class */ (function () {\r\n function WorkspaceChange(workspaceEdit) {\r\n var _this = this;\r\n this._textEditChanges = Object.create(null);\r\n if (workspaceEdit) {\r\n this._workspaceEdit = workspaceEdit;\r\n if (workspaceEdit.documentChanges) {\r\n workspaceEdit.documentChanges.forEach(function (change) {\r\n if (TextDocumentEdit.is(change)) {\r\n var textEditChange = new TextEditChangeImpl(change.edits);\r\n _this._textEditChanges[change.textDocument.uri] = textEditChange;\r\n }\r\n });\r\n }\r\n else if (workspaceEdit.changes) {\r\n Object.keys(workspaceEdit.changes).forEach(function (key) {\r\n var textEditChange = new TextEditChangeImpl(workspaceEdit.changes[key]);\r\n _this._textEditChanges[key] = textEditChange;\r\n });\r\n }\r\n }\r\n }\r\n Object.defineProperty(WorkspaceChange.prototype, \"edit\", {\r\n /**\r\n * Returns the underlying [WorkspaceEdit](#WorkspaceEdit) literal\r\n * use to be returned from a workspace edit operation like rename.\r\n */\r\n get: function () {\r\n return this._workspaceEdit;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n WorkspaceChange.prototype.getTextEditChange = function (key) {\r\n if (VersionedTextDocumentIdentifier.is(key)) {\r\n if (!this._workspaceEdit) {\r\n this._workspaceEdit = {\r\n documentChanges: []\r\n };\r\n }\r\n if (!this._workspaceEdit.documentChanges) {\r\n throw new Error('Workspace edit is not configured for document changes.');\r\n }\r\n var textDocument = key;\r\n var result = this._textEditChanges[textDocument.uri];\r\n if (!result) {\r\n var edits = [];\r\n var textDocumentEdit = {\r\n textDocument: textDocument,\r\n edits: edits\r\n };\r\n this._workspaceEdit.documentChanges.push(textDocumentEdit);\r\n result = new TextEditChangeImpl(edits);\r\n this._textEditChanges[textDocument.uri] = result;\r\n }\r\n return result;\r\n }\r\n else {\r\n if (!this._workspaceEdit) {\r\n this._workspaceEdit = {\r\n changes: Object.create(null)\r\n };\r\n }\r\n if (!this._workspaceEdit.changes) {\r\n throw new Error('Workspace edit is not configured for normal text edit changes.');\r\n }\r\n var result = this._textEditChanges[key];\r\n if (!result) {\r\n var edits = [];\r\n this._workspaceEdit.changes[key] = edits;\r\n result = new TextEditChangeImpl(edits);\r\n this._textEditChanges[key] = result;\r\n }\r\n return result;\r\n }\r\n };\r\n WorkspaceChange.prototype.createFile = function (uri, options) {\r\n this.checkDocumentChanges();\r\n this._workspaceEdit.documentChanges.push(CreateFile.create(uri, options));\r\n };\r\n WorkspaceChange.prototype.renameFile = function (oldUri, newUri, options) {\r\n this.checkDocumentChanges();\r\n this._workspaceEdit.documentChanges.push(RenameFile.create(oldUri, newUri, options));\r\n };\r\n WorkspaceChange.prototype.deleteFile = function (uri, options) {\r\n this.checkDocumentChanges();\r\n this._workspaceEdit.documentChanges.push(DeleteFile.create(uri, options));\r\n };\r\n WorkspaceChange.prototype.checkDocumentChanges = function () {\r\n if (!this._workspaceEdit || !this._workspaceEdit.documentChanges) {\r\n throw new Error('Workspace edit is not configured for document changes.');\r\n }\r\n };\r\n return WorkspaceChange;\r\n}());\r\nexport { WorkspaceChange };\r\n/**\r\n * The TextDocumentIdentifier namespace provides helper functions to work with\r\n * [TextDocumentIdentifier](#TextDocumentIdentifier) literals.\r\n */\r\nexport var TextDocumentIdentifier;\r\n(function (TextDocumentIdentifier) {\r\n /**\r\n * Creates a new TextDocumentIdentifier literal.\r\n * @param uri The document's uri.\r\n */\r\n function create(uri) {\r\n return { uri: uri };\r\n }\r\n TextDocumentIdentifier.create = create;\r\n /**\r\n * Checks whether the given literal conforms to the [TextDocumentIdentifier](#TextDocumentIdentifier) interface.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return Is.defined(candidate) && Is.string(candidate.uri);\r\n }\r\n TextDocumentIdentifier.is = is;\r\n})(TextDocumentIdentifier || (TextDocumentIdentifier = {}));\r\n/**\r\n * The VersionedTextDocumentIdentifier namespace provides helper functions to work with\r\n * [VersionedTextDocumentIdentifier](#VersionedTextDocumentIdentifier) literals.\r\n */\r\nexport var VersionedTextDocumentIdentifier;\r\n(function (VersionedTextDocumentIdentifier) {\r\n /**\r\n * Creates a new VersionedTextDocumentIdentifier literal.\r\n * @param uri The document's uri.\r\n * @param uri The document's text.\r\n */\r\n function create(uri, version) {\r\n return { uri: uri, version: version };\r\n }\r\n VersionedTextDocumentIdentifier.create = create;\r\n /**\r\n * Checks whether the given literal conforms to the [VersionedTextDocumentIdentifier](#VersionedTextDocumentIdentifier) interface.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return Is.defined(candidate) && Is.string(candidate.uri) && (candidate.version === null || Is.number(candidate.version));\r\n }\r\n VersionedTextDocumentIdentifier.is = is;\r\n})(VersionedTextDocumentIdentifier || (VersionedTextDocumentIdentifier = {}));\r\n/**\r\n * The TextDocumentItem namespace provides helper functions to work with\r\n * [TextDocumentItem](#TextDocumentItem) literals.\r\n */\r\nexport var TextDocumentItem;\r\n(function (TextDocumentItem) {\r\n /**\r\n * Creates a new TextDocumentItem literal.\r\n * @param uri The document's uri.\r\n * @param languageId The document's language identifier.\r\n * @param version The document's version number.\r\n * @param text The document's text.\r\n */\r\n function create(uri, languageId, version, text) {\r\n return { uri: uri, languageId: languageId, version: version, text: text };\r\n }\r\n TextDocumentItem.create = create;\r\n /**\r\n * Checks whether the given literal conforms to the [TextDocumentItem](#TextDocumentItem) interface.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return Is.defined(candidate) && Is.string(candidate.uri) && Is.string(candidate.languageId) && Is.number(candidate.version) && Is.string(candidate.text);\r\n }\r\n TextDocumentItem.is = is;\r\n})(TextDocumentItem || (TextDocumentItem = {}));\r\n/**\r\n * Describes the content type that a client supports in various\r\n * result literals like `Hover`, `ParameterInfo` or `CompletionItem`.\r\n *\r\n * Please note that `MarkupKinds` must not start with a `$`. This kinds\r\n * are reserved for internal usage.\r\n */\r\nexport var MarkupKind;\r\n(function (MarkupKind) {\r\n /**\r\n * Plain text is supported as a content format\r\n */\r\n MarkupKind.PlainText = 'plaintext';\r\n /**\r\n * Markdown is supported as a content format\r\n */\r\n MarkupKind.Markdown = 'markdown';\r\n})(MarkupKind || (MarkupKind = {}));\r\n(function (MarkupKind) {\r\n /**\r\n * Checks whether the given value is a value of the [MarkupKind](#MarkupKind) type.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return candidate === MarkupKind.PlainText || candidate === MarkupKind.Markdown;\r\n }\r\n MarkupKind.is = is;\r\n})(MarkupKind || (MarkupKind = {}));\r\nexport var MarkupContent;\r\n(function (MarkupContent) {\r\n /**\r\n * Checks whether the given value conforms to the [MarkupContent](#MarkupContent) interface.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return Is.objectLiteral(value) && MarkupKind.is(candidate.kind) && Is.string(candidate.value);\r\n }\r\n MarkupContent.is = is;\r\n})(MarkupContent || (MarkupContent = {}));\r\n/**\r\n * The kind of a completion entry.\r\n */\r\nexport var CompletionItemKind;\r\n(function (CompletionItemKind) {\r\n CompletionItemKind.Text = 1;\r\n CompletionItemKind.Method = 2;\r\n CompletionItemKind.Function = 3;\r\n CompletionItemKind.Constructor = 4;\r\n CompletionItemKind.Field = 5;\r\n CompletionItemKind.Variable = 6;\r\n CompletionItemKind.Class = 7;\r\n CompletionItemKind.Interface = 8;\r\n CompletionItemKind.Module = 9;\r\n CompletionItemKind.Property = 10;\r\n CompletionItemKind.Unit = 11;\r\n CompletionItemKind.Value = 12;\r\n CompletionItemKind.Enum = 13;\r\n CompletionItemKind.Keyword = 14;\r\n CompletionItemKind.Snippet = 15;\r\n CompletionItemKind.Color = 16;\r\n CompletionItemKind.File = 17;\r\n CompletionItemKind.Reference = 18;\r\n CompletionItemKind.Folder = 19;\r\n CompletionItemKind.EnumMember = 20;\r\n CompletionItemKind.Constant = 21;\r\n CompletionItemKind.Struct = 22;\r\n CompletionItemKind.Event = 23;\r\n CompletionItemKind.Operator = 24;\r\n CompletionItemKind.TypeParameter = 25;\r\n})(CompletionItemKind || (CompletionItemKind = {}));\r\n/**\r\n * Defines whether the insert text in a completion item should be interpreted as\r\n * plain text or a snippet.\r\n */\r\nexport var InsertTextFormat;\r\n(function (InsertTextFormat) {\r\n /**\r\n * The primary text to be inserted is treated as a plain string.\r\n */\r\n InsertTextFormat.PlainText = 1;\r\n /**\r\n * The primary text to be inserted is treated as a snippet.\r\n *\r\n * A snippet can define tab stops and placeholders with `$1`, `$2`\r\n * and `${3:foo}`. `$0` defines the final tab stop, it defaults to\r\n * the end of the snippet. Placeholders with equal identifiers are linked,\r\n * that is typing in one will update others too.\r\n *\r\n * See also: https://github.com/Microsoft/vscode/blob/master/src/vs/editor/contrib/snippet/common/snippet.md\r\n */\r\n InsertTextFormat.Snippet = 2;\r\n})(InsertTextFormat || (InsertTextFormat = {}));\r\n/**\r\n * Completion item tags are extra annotations that tweak the rendering of a completion\r\n * item.\r\n *\r\n * @since 3.15.0\r\n */\r\nexport var CompletionItemTag;\r\n(function (CompletionItemTag) {\r\n /**\r\n * Render a completion as obsolete, usually using a strike-out.\r\n */\r\n CompletionItemTag.Deprecated = 1;\r\n})(CompletionItemTag || (CompletionItemTag = {}));\r\n/**\r\n * The CompletionItem namespace provides functions to deal with\r\n * completion items.\r\n */\r\nexport var CompletionItem;\r\n(function (CompletionItem) {\r\n /**\r\n * Create a completion item and seed it with a label.\r\n * @param label The completion item's label\r\n */\r\n function create(label) {\r\n return { label: label };\r\n }\r\n CompletionItem.create = create;\r\n})(CompletionItem || (CompletionItem = {}));\r\n/**\r\n * The CompletionList namespace provides functions to deal with\r\n * completion lists.\r\n */\r\nexport var CompletionList;\r\n(function (CompletionList) {\r\n /**\r\n * Creates a new completion list.\r\n *\r\n * @param items The completion items.\r\n * @param isIncomplete The list is not complete.\r\n */\r\n function create(items, isIncomplete) {\r\n return { items: items ? items : [], isIncomplete: !!isIncomplete };\r\n }\r\n CompletionList.create = create;\r\n})(CompletionList || (CompletionList = {}));\r\nexport var MarkedString;\r\n(function (MarkedString) {\r\n /**\r\n * Creates a marked string from plain text.\r\n *\r\n * @param plainText The plain text.\r\n */\r\n function fromPlainText(plainText) {\r\n return plainText.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g, '\\\\$&'); // escape markdown syntax tokens: http://daringfireball.net/projects/markdown/syntax#backslash\r\n }\r\n MarkedString.fromPlainText = fromPlainText;\r\n /**\r\n * Checks whether the given value conforms to the [MarkedString](#MarkedString) type.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return Is.string(candidate) || (Is.objectLiteral(candidate) && Is.string(candidate.language) && Is.string(candidate.value));\r\n }\r\n MarkedString.is = is;\r\n})(MarkedString || (MarkedString = {}));\r\nexport var Hover;\r\n(function (Hover) {\r\n /**\r\n * Checks whether the given value conforms to the [Hover](#Hover) interface.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return !!candidate && Is.objectLiteral(candidate) && (MarkupContent.is(candidate.contents) ||\r\n MarkedString.is(candidate.contents) ||\r\n Is.typedArray(candidate.contents, MarkedString.is)) && (value.range === void 0 || Range.is(value.range));\r\n }\r\n Hover.is = is;\r\n})(Hover || (Hover = {}));\r\n/**\r\n * The ParameterInformation namespace provides helper functions to work with\r\n * [ParameterInformation](#ParameterInformation) literals.\r\n */\r\nexport var ParameterInformation;\r\n(function (ParameterInformation) {\r\n /**\r\n * Creates a new parameter information literal.\r\n *\r\n * @param label A label string.\r\n * @param documentation A doc string.\r\n */\r\n function create(label, documentation) {\r\n return documentation ? { label: label, documentation: documentation } : { label: label };\r\n }\r\n ParameterInformation.create = create;\r\n})(ParameterInformation || (ParameterInformation = {}));\r\n/**\r\n * The SignatureInformation namespace provides helper functions to work with\r\n * [SignatureInformation](#SignatureInformation) literals.\r\n */\r\nexport var SignatureInformation;\r\n(function (SignatureInformation) {\r\n function create(label, documentation) {\r\n var parameters = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n parameters[_i - 2] = arguments[_i];\r\n }\r\n var result = { label: label };\r\n if (Is.defined(documentation)) {\r\n result.documentation = documentation;\r\n }\r\n if (Is.defined(parameters)) {\r\n result.parameters = parameters;\r\n }\r\n else {\r\n result.parameters = [];\r\n }\r\n return result;\r\n }\r\n SignatureInformation.create = create;\r\n})(SignatureInformation || (SignatureInformation = {}));\r\n/**\r\n * A document highlight kind.\r\n */\r\nexport var DocumentHighlightKind;\r\n(function (DocumentHighlightKind) {\r\n /**\r\n * A textual occurrence.\r\n */\r\n DocumentHighlightKind.Text = 1;\r\n /**\r\n * Read-access of a symbol, like reading a variable.\r\n */\r\n DocumentHighlightKind.Read = 2;\r\n /**\r\n * Write-access of a symbol, like writing to a variable.\r\n */\r\n DocumentHighlightKind.Write = 3;\r\n})(DocumentHighlightKind || (DocumentHighlightKind = {}));\r\n/**\r\n * DocumentHighlight namespace to provide helper functions to work with\r\n * [DocumentHighlight](#DocumentHighlight) literals.\r\n */\r\nexport var DocumentHighlight;\r\n(function (DocumentHighlight) {\r\n /**\r\n * Create a DocumentHighlight object.\r\n * @param range The range the highlight applies to.\r\n */\r\n function create(range, kind) {\r\n var result = { range: range };\r\n if (Is.number(kind)) {\r\n result.kind = kind;\r\n }\r\n return result;\r\n }\r\n DocumentHighlight.create = create;\r\n})(DocumentHighlight || (DocumentHighlight = {}));\r\n/**\r\n * A symbol kind.\r\n */\r\nexport var SymbolKind;\r\n(function (SymbolKind) {\r\n SymbolKind.File = 1;\r\n SymbolKind.Module = 2;\r\n SymbolKind.Namespace = 3;\r\n SymbolKind.Package = 4;\r\n SymbolKind.Class = 5;\r\n SymbolKind.Method = 6;\r\n SymbolKind.Property = 7;\r\n SymbolKind.Field = 8;\r\n SymbolKind.Constructor = 9;\r\n SymbolKind.Enum = 10;\r\n SymbolKind.Interface = 11;\r\n SymbolKind.Function = 12;\r\n SymbolKind.Variable = 13;\r\n SymbolKind.Constant = 14;\r\n SymbolKind.String = 15;\r\n SymbolKind.Number = 16;\r\n SymbolKind.Boolean = 17;\r\n SymbolKind.Array = 18;\r\n SymbolKind.Object = 19;\r\n SymbolKind.Key = 20;\r\n SymbolKind.Null = 21;\r\n SymbolKind.EnumMember = 22;\r\n SymbolKind.Struct = 23;\r\n SymbolKind.Event = 24;\r\n SymbolKind.Operator = 25;\r\n SymbolKind.TypeParameter = 26;\r\n})(SymbolKind || (SymbolKind = {}));\r\n/**\r\n * Symbol tags are extra annotations that tweak the rendering of a symbol.\r\n * @since 3.15\r\n */\r\nexport var SymbolTag;\r\n(function (SymbolTag) {\r\n /**\r\n * Render a symbol as obsolete, usually using a strike-out.\r\n */\r\n SymbolTag.Deprecated = 1;\r\n})(SymbolTag || (SymbolTag = {}));\r\nexport var SymbolInformation;\r\n(function (SymbolInformation) {\r\n /**\r\n * Creates a new symbol information literal.\r\n *\r\n * @param name The name of the symbol.\r\n * @param kind The kind of the symbol.\r\n * @param range The range of the location of the symbol.\r\n * @param uri The resource of the location of symbol, defaults to the current document.\r\n * @param containerName The name of the symbol containing the symbol.\r\n */\r\n function create(name, kind, range, uri, containerName) {\r\n var result = {\r\n name: name,\r\n kind: kind,\r\n location: { uri: uri, range: range }\r\n };\r\n if (containerName) {\r\n result.containerName = containerName;\r\n }\r\n return result;\r\n }\r\n SymbolInformation.create = create;\r\n})(SymbolInformation || (SymbolInformation = {}));\r\nexport var DocumentSymbol;\r\n(function (DocumentSymbol) {\r\n /**\r\n * Creates a new symbol information literal.\r\n *\r\n * @param name The name of the symbol.\r\n * @param detail The detail of the symbol.\r\n * @param kind The kind of the symbol.\r\n * @param range The range of the symbol.\r\n * @param selectionRange The selectionRange of the symbol.\r\n * @param children Children of the symbol.\r\n */\r\n function create(name, detail, kind, range, selectionRange, children) {\r\n var result = {\r\n name: name,\r\n detail: detail,\r\n kind: kind,\r\n range: range,\r\n selectionRange: selectionRange\r\n };\r\n if (children !== void 0) {\r\n result.children = children;\r\n }\r\n return result;\r\n }\r\n DocumentSymbol.create = create;\r\n /**\r\n * Checks whether the given literal conforms to the [DocumentSymbol](#DocumentSymbol) interface.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return candidate &&\r\n Is.string(candidate.name) && Is.number(candidate.kind) &&\r\n Range.is(candidate.range) && Range.is(candidate.selectionRange) &&\r\n (candidate.detail === void 0 || Is.string(candidate.detail)) &&\r\n (candidate.deprecated === void 0 || Is.boolean(candidate.deprecated)) &&\r\n (candidate.children === void 0 || Array.isArray(candidate.children));\r\n }\r\n DocumentSymbol.is = is;\r\n})(DocumentSymbol || (DocumentSymbol = {}));\r\n/**\r\n * A set of predefined code action kinds\r\n */\r\nexport var CodeActionKind;\r\n(function (CodeActionKind) {\r\n /**\r\n * Empty kind.\r\n */\r\n CodeActionKind.Empty = '';\r\n /**\r\n * Base kind for quickfix actions: 'quickfix'\r\n */\r\n CodeActionKind.QuickFix = 'quickfix';\r\n /**\r\n * Base kind for refactoring actions: 'refactor'\r\n */\r\n CodeActionKind.Refactor = 'refactor';\r\n /**\r\n * Base kind for refactoring extraction actions: 'refactor.extract'\r\n *\r\n * Example extract actions:\r\n *\r\n * - Extract method\r\n * - Extract function\r\n * - Extract variable\r\n * - Extract interface from class\r\n * - ...\r\n */\r\n CodeActionKind.RefactorExtract = 'refactor.extract';\r\n /**\r\n * Base kind for refactoring inline actions: 'refactor.inline'\r\n *\r\n * Example inline actions:\r\n *\r\n * - Inline function\r\n * - Inline variable\r\n * - Inline constant\r\n * - ...\r\n */\r\n CodeActionKind.RefactorInline = 'refactor.inline';\r\n /**\r\n * Base kind for refactoring rewrite actions: 'refactor.rewrite'\r\n *\r\n * Example rewrite actions:\r\n *\r\n * - Convert JavaScript function to class\r\n * - Add or remove parameter\r\n * - Encapsulate field\r\n * - Make method static\r\n * - Move method to base class\r\n * - ...\r\n */\r\n CodeActionKind.RefactorRewrite = 'refactor.rewrite';\r\n /**\r\n * Base kind for source actions: `source`\r\n *\r\n * Source code actions apply to the entire file.\r\n */\r\n CodeActionKind.Source = 'source';\r\n /**\r\n * Base kind for an organize imports source action: `source.organizeImports`\r\n */\r\n CodeActionKind.SourceOrganizeImports = 'source.organizeImports';\r\n /**\r\n * Base kind for auto-fix source actions: `source.fixAll`.\r\n *\r\n * Fix all actions automatically fix errors that have a clear fix that do not require user input.\r\n * They should not suppress errors or perform unsafe fixes such as generating new types or classes.\r\n *\r\n * @since 3.15.0\r\n */\r\n CodeActionKind.SourceFixAll = 'source.fixAll';\r\n})(CodeActionKind || (CodeActionKind = {}));\r\n/**\r\n * The CodeActionContext namespace provides helper functions to work with\r\n * [CodeActionContext](#CodeActionContext) literals.\r\n */\r\nexport var CodeActionContext;\r\n(function (CodeActionContext) {\r\n /**\r\n * Creates a new CodeActionContext literal.\r\n */\r\n function create(diagnostics, only) {\r\n var result = { diagnostics: diagnostics };\r\n if (only !== void 0 && only !== null) {\r\n result.only = only;\r\n }\r\n return result;\r\n }\r\n CodeActionContext.create = create;\r\n /**\r\n * Checks whether the given literal conforms to the [CodeActionContext](#CodeActionContext) interface.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return Is.defined(candidate) && Is.typedArray(candidate.diagnostics, Diagnostic.is) && (candidate.only === void 0 || Is.typedArray(candidate.only, Is.string));\r\n }\r\n CodeActionContext.is = is;\r\n})(CodeActionContext || (CodeActionContext = {}));\r\nexport var CodeAction;\r\n(function (CodeAction) {\r\n function create(title, commandOrEdit, kind) {\r\n var result = { title: title };\r\n if (Command.is(commandOrEdit)) {\r\n result.command = commandOrEdit;\r\n }\r\n else {\r\n result.edit = commandOrEdit;\r\n }\r\n if (kind !== void 0) {\r\n result.kind = kind;\r\n }\r\n return result;\r\n }\r\n CodeAction.create = create;\r\n function is(value) {\r\n var candidate = value;\r\n return candidate && Is.string(candidate.title) &&\r\n (candidate.diagnostics === void 0 || Is.typedArray(candidate.diagnostics, Diagnostic.is)) &&\r\n (candidate.kind === void 0 || Is.string(candidate.kind)) &&\r\n (candidate.edit !== void 0 || candidate.command !== void 0) &&\r\n (candidate.command === void 0 || Command.is(candidate.command)) &&\r\n (candidate.isPreferred === void 0 || Is.boolean(candidate.isPreferred)) &&\r\n (candidate.edit === void 0 || WorkspaceEdit.is(candidate.edit));\r\n }\r\n CodeAction.is = is;\r\n})(CodeAction || (CodeAction = {}));\r\n/**\r\n * The CodeLens namespace provides helper functions to work with\r\n * [CodeLens](#CodeLens) literals.\r\n */\r\nexport var CodeLens;\r\n(function (CodeLens) {\r\n /**\r\n * Creates a new CodeLens literal.\r\n */\r\n function create(range, data) {\r\n var result = { range: range };\r\n if (Is.defined(data)) {\r\n result.data = data;\r\n }\r\n return result;\r\n }\r\n CodeLens.create = create;\r\n /**\r\n * Checks whether the given literal conforms to the [CodeLens](#CodeLens) interface.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.command) || Command.is(candidate.command));\r\n }\r\n CodeLens.is = is;\r\n})(CodeLens || (CodeLens = {}));\r\n/**\r\n * The FormattingOptions namespace provides helper functions to work with\r\n * [FormattingOptions](#FormattingOptions) literals.\r\n */\r\nexport var FormattingOptions;\r\n(function (FormattingOptions) {\r\n /**\r\n * Creates a new FormattingOptions literal.\r\n */\r\n function create(tabSize, insertSpaces) {\r\n return { tabSize: tabSize, insertSpaces: insertSpaces };\r\n }\r\n FormattingOptions.create = create;\r\n /**\r\n * Checks whether the given literal conforms to the [FormattingOptions](#FormattingOptions) interface.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return Is.defined(candidate) && Is.number(candidate.tabSize) && Is.boolean(candidate.insertSpaces);\r\n }\r\n FormattingOptions.is = is;\r\n})(FormattingOptions || (FormattingOptions = {}));\r\n/**\r\n * The DocumentLink namespace provides helper functions to work with\r\n * [DocumentLink](#DocumentLink) literals.\r\n */\r\nexport var DocumentLink;\r\n(function (DocumentLink) {\r\n /**\r\n * Creates a new DocumentLink literal.\r\n */\r\n function create(range, target, data) {\r\n return { range: range, target: target, data: data };\r\n }\r\n DocumentLink.create = create;\r\n /**\r\n * Checks whether the given literal conforms to the [DocumentLink](#DocumentLink) interface.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.target) || Is.string(candidate.target));\r\n }\r\n DocumentLink.is = is;\r\n})(DocumentLink || (DocumentLink = {}));\r\n/**\r\n * The SelectionRange namespace provides helper function to work with\r\n * SelectionRange literals.\r\n */\r\nexport var SelectionRange;\r\n(function (SelectionRange) {\r\n /**\r\n * Creates a new SelectionRange\r\n * @param range the range.\r\n * @param parent an optional parent.\r\n */\r\n function create(range, parent) {\r\n return { range: range, parent: parent };\r\n }\r\n SelectionRange.create = create;\r\n function is(value) {\r\n var candidate = value;\r\n return candidate !== undefined && Range.is(candidate.range) && (candidate.parent === undefined || SelectionRange.is(candidate.parent));\r\n }\r\n SelectionRange.is = is;\r\n})(SelectionRange || (SelectionRange = {}));\r\nexport var EOL = ['\\n', '\\r\\n', '\\r'];\r\n/**\r\n * @deprecated Use the text document from the new vscode-languageserver-textdocument package.\r\n */\r\nexport var TextDocument;\r\n(function (TextDocument) {\r\n /**\r\n * Creates a new ITextDocument literal from the given uri and content.\r\n * @param uri The document's uri.\r\n * @param languageId The document's language Id.\r\n * @param content The document's content.\r\n */\r\n function create(uri, languageId, version, content) {\r\n return new FullTextDocument(uri, languageId, version, content);\r\n }\r\n TextDocument.create = create;\r\n /**\r\n * Checks whether the given literal conforms to the [ITextDocument](#ITextDocument) interface.\r\n */\r\n function is(value) {\r\n var candidate = value;\r\n return Is.defined(candidate) && Is.string(candidate.uri) && (Is.undefined(candidate.languageId) || Is.string(candidate.languageId)) && Is.number(candidate.lineCount)\r\n && Is.func(candidate.getText) && Is.func(candidate.positionAt) && Is.func(candidate.offsetAt) ? true : false;\r\n }\r\n TextDocument.is = is;\r\n function applyEdits(document, edits) {\r\n var text = document.getText();\r\n var sortedEdits = mergeSort(edits, function (a, b) {\r\n var diff = a.range.start.line - b.range.start.line;\r\n if (diff === 0) {\r\n return a.range.start.character - b.range.start.character;\r\n }\r\n return diff;\r\n });\r\n var lastModifiedOffset = text.length;\r\n for (var i = sortedEdits.length - 1; i >= 0; i--) {\r\n var e = sortedEdits[i];\r\n var startOffset = document.offsetAt(e.range.start);\r\n var endOffset = document.offsetAt(e.range.end);\r\n if (endOffset <= lastModifiedOffset) {\r\n text = text.substring(0, startOffset) + e.newText + text.substring(endOffset, text.length);\r\n }\r\n else {\r\n throw new Error('Overlapping edit');\r\n }\r\n lastModifiedOffset = startOffset;\r\n }\r\n return text;\r\n }\r\n TextDocument.applyEdits = applyEdits;\r\n function mergeSort(data, compare) {\r\n if (data.length <= 1) {\r\n // sorted\r\n return data;\r\n }\r\n var p = (data.length / 2) | 0;\r\n var left = data.slice(0, p);\r\n var right = data.slice(p);\r\n mergeSort(left, compare);\r\n mergeSort(right, compare);\r\n var leftIdx = 0;\r\n var rightIdx = 0;\r\n var i = 0;\r\n while (leftIdx < left.length && rightIdx < right.length) {\r\n var ret = compare(left[leftIdx], right[rightIdx]);\r\n if (ret <= 0) {\r\n // smaller_equal -> take left to preserve order\r\n data[i++] = left[leftIdx++];\r\n }\r\n else {\r\n // greater -> take right\r\n data[i++] = right[rightIdx++];\r\n }\r\n }\r\n while (leftIdx < left.length) {\r\n data[i++] = left[leftIdx++];\r\n }\r\n while (rightIdx < right.length) {\r\n data[i++] = right[rightIdx++];\r\n }\r\n return data;\r\n }\r\n})(TextDocument || (TextDocument = {}));\r\nvar FullTextDocument = /** @class */ (function () {\r\n function FullTextDocument(uri, languageId, version, content) {\r\n this._uri = uri;\r\n this._languageId = languageId;\r\n this._version = version;\r\n this._content = content;\r\n this._lineOffsets = undefined;\r\n }\r\n Object.defineProperty(FullTextDocument.prototype, \"uri\", {\r\n get: function () {\r\n return this._uri;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FullTextDocument.prototype, \"languageId\", {\r\n get: function () {\r\n return this._languageId;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FullTextDocument.prototype, \"version\", {\r\n get: function () {\r\n return this._version;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n FullTextDocument.prototype.getText = function (range) {\r\n if (range) {\r\n var start = this.offsetAt(range.start);\r\n var end = this.offsetAt(range.end);\r\n return this._content.substring(start, end);\r\n }\r\n return this._content;\r\n };\r\n FullTextDocument.prototype.update = function (event, version) {\r\n this._content = event.text;\r\n this._version = version;\r\n this._lineOffsets = undefined;\r\n };\r\n FullTextDocument.prototype.getLineOffsets = function () {\r\n if (this._lineOffsets === undefined) {\r\n var lineOffsets = [];\r\n var text = this._content;\r\n var isLineStart = true;\r\n for (var i = 0; i < text.length; i++) {\r\n if (isLineStart) {\r\n lineOffsets.push(i);\r\n isLineStart = false;\r\n }\r\n var ch = text.charAt(i);\r\n isLineStart = (ch === '\\r' || ch === '\\n');\r\n if (ch === '\\r' && i + 1 < text.length && text.charAt(i + 1) === '\\n') {\r\n i++;\r\n }\r\n }\r\n if (isLineStart && text.length > 0) {\r\n lineOffsets.push(text.length);\r\n }\r\n this._lineOffsets = lineOffsets;\r\n }\r\n return this._lineOffsets;\r\n };\r\n FullTextDocument.prototype.positionAt = function (offset) {\r\n offset = Math.max(Math.min(offset, this._content.length), 0);\r\n var lineOffsets = this.getLineOffsets();\r\n var low = 0, high = lineOffsets.length;\r\n if (high === 0) {\r\n return Position.create(0, offset);\r\n }\r\n while (low < high) {\r\n var mid = Math.floor((low + high) / 2);\r\n if (lineOffsets[mid] > offset) {\r\n high = mid;\r\n }\r\n else {\r\n low = mid + 1;\r\n }\r\n }\r\n // low is the least x for which the line offset is larger than the current offset\r\n // or array.length if no line offset is larger than the current offset\r\n var line = low - 1;\r\n return Position.create(line, offset - lineOffsets[line]);\r\n };\r\n FullTextDocument.prototype.offsetAt = function (position) {\r\n var lineOffsets = this.getLineOffsets();\r\n if (position.line >= lineOffsets.length) {\r\n return this._content.length;\r\n }\r\n else if (position.line < 0) {\r\n return 0;\r\n }\r\n var lineOffset = lineOffsets[position.line];\r\n var nextLineOffset = (position.line + 1 < lineOffsets.length) ? lineOffsets[position.line + 1] : this._content.length;\r\n return Math.max(Math.min(lineOffset + position.character, nextLineOffset), lineOffset);\r\n };\r\n Object.defineProperty(FullTextDocument.prototype, \"lineCount\", {\r\n get: function () {\r\n return this.getLineOffsets().length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return FullTextDocument;\r\n}());\r\nvar Is;\r\n(function (Is) {\r\n var toString = Object.prototype.toString;\r\n function defined(value) {\r\n return typeof value !== 'undefined';\r\n }\r\n Is.defined = defined;\r\n function undefined(value) {\r\n return typeof value === 'undefined';\r\n }\r\n Is.undefined = undefined;\r\n function boolean(value) {\r\n return value === true || value === false;\r\n }\r\n Is.boolean = boolean;\r\n function string(value) {\r\n return toString.call(value) === '[object String]';\r\n }\r\n Is.string = string;\r\n function number(value) {\r\n return toString.call(value) === '[object Number]';\r\n }\r\n Is.number = number;\r\n function func(value) {\r\n return toString.call(value) === '[object Function]';\r\n }\r\n Is.func = func;\r\n function objectLiteral(value) {\r\n // Strictly speaking class instances pass this check as well. Since the LSP\r\n // doesn't use classes we ignore this for now. If we do we need to add something\r\n // like this: `Object.getPrototypeOf(Object.getPrototypeOf(x)) === null`\r\n return value !== null && typeof value === 'object';\r\n }\r\n Is.objectLiteral = objectLiteral;\r\n function typedArray(value, check) {\r\n return Array.isArray(value) && value.every(check);\r\n }\r\n Is.typedArray = typedArray;\r\n})(Is || (Is = {}));\r\n","import { CompletionItemKind } from 'vscode-languageserver-types';\nimport { parse, visit, } from 'graphql';\nimport { GraphQLBoolean, GraphQLEnumType, GraphQLInputObjectType, GraphQLList, SchemaMetaFieldDef, TypeMetaFieldDef, TypeNameMetaFieldDef, assertAbstractType, doTypesOverlap, getNamedType, getNullableType, isAbstractType, isCompositeType, isInputType, } from 'graphql';\nimport { CharacterStream, onlineParser, RuleKinds, } from 'graphql-language-service-parser';\nimport { forEachState, getDefinitionState, getFieldDef, hintList, objectValues, } from './autocompleteUtils';\nexport function getAutocompleteSuggestions(schema, queryText, cursor, contextToken, fragmentDefs) {\n const token = contextToken || getTokenAtPosition(queryText, cursor);\n const state = token.state.kind === 'Invalid' ? token.state.prevState : token.state;\n if (!state) {\n return [];\n }\n const kind = state.kind;\n const step = state.step;\n const typeInfo = getTypeInfo(schema, token.state);\n if (kind === RuleKinds.DOCUMENT) {\n return hintList(token, [\n { label: 'query', kind: CompletionItemKind.Function },\n { label: 'mutation', kind: CompletionItemKind.Function },\n { label: 'subscription', kind: CompletionItemKind.Function },\n { label: 'fragment', kind: CompletionItemKind.Function },\n { label: '{', kind: CompletionItemKind.Constructor },\n ]);\n }\n if (kind === RuleKinds.SELECTION_SET ||\n kind === RuleKinds.FIELD ||\n kind === RuleKinds.ALIASED_FIELD) {\n return getSuggestionsForFieldNames(token, typeInfo, schema, kind);\n }\n if (kind === RuleKinds.ARGUMENTS ||\n (kind === RuleKinds.ARGUMENT && step === 0)) {\n const argDefs = typeInfo.argDefs;\n if (argDefs) {\n return hintList(token, argDefs.map(argDef => {\n var _a;\n return ({\n label: argDef.name,\n detail: String(argDef.type),\n documentation: (_a = argDef.description) !== null && _a !== void 0 ? _a : undefined,\n kind: CompletionItemKind.Variable,\n });\n }));\n }\n }\n if (kind === RuleKinds.OBJECT_VALUE ||\n (kind === RuleKinds.OBJECT_FIELD && step === 0)) {\n if (typeInfo.objectFieldDefs) {\n const objectFields = objectValues(typeInfo.objectFieldDefs);\n const completionKind = kind === RuleKinds.OBJECT_VALUE\n ? CompletionItemKind.Value\n : CompletionItemKind.Field;\n return hintList(token, objectFields.map(field => {\n var _a;\n return ({\n label: field.name,\n detail: String(field.type),\n documentation: (_a = field.description) !== null && _a !== void 0 ? _a : undefined,\n kind: completionKind,\n });\n }));\n }\n }\n if (kind === RuleKinds.ENUM_VALUE ||\n (kind === RuleKinds.LIST_VALUE && step === 1) ||\n (kind === RuleKinds.OBJECT_FIELD && step === 2) ||\n (kind === RuleKinds.ARGUMENT && step === 2)) {\n return getSuggestionsForInputValues(token, typeInfo, kind);\n }\n if (kind === RuleKinds.VARIABLE && step === 1) {\n const queryVariables = [];\n visit(parse(queryText, {\n allowLegacySDLEmptyFields: true,\n allowLegacySDLImplementsInterfaces: true,\n }), {\n VariableDefinition(node) {\n queryVariables.push(node);\n },\n });\n return hintList(token, queryVariables.map(variableDef => ({\n label: `$${variableDef.variable.name.value}`,\n kind: CompletionItemKind.Variable,\n detail: 'name' in variableDef.type\n ? variableDef.type.name.value\n : 'Variable',\n })));\n }\n if ((kind === RuleKinds.TYPE_CONDITION && step === 1) ||\n (kind === RuleKinds.NAMED_TYPE &&\n state.prevState != null &&\n state.prevState.kind === RuleKinds.TYPE_CONDITION)) {\n return getSuggestionsForFragmentTypeConditions(token, typeInfo, schema, kind);\n }\n if (kind === RuleKinds.FRAGMENT_SPREAD && step === 1) {\n return getSuggestionsForFragmentSpread(token, typeInfo, schema, queryText, fragmentDefs);\n }\n if ((kind === RuleKinds.VARIABLE_DEFINITION && step === 2) ||\n (kind === RuleKinds.LIST_TYPE && step === 1) ||\n (kind === RuleKinds.NAMED_TYPE &&\n state.prevState &&\n (state.prevState.kind === RuleKinds.VARIABLE_DEFINITION ||\n state.prevState.kind === RuleKinds.LIST_TYPE ||\n state.prevState.kind === RuleKinds.NON_NULL_TYPE))) {\n return getSuggestionsForVariableDefinition(token, schema, kind);\n }\n if (kind === RuleKinds.DIRECTIVE) {\n return getSuggestionsForDirective(token, state, schema, kind);\n }\n return [];\n}\nfunction getSuggestionsForFieldNames(token, typeInfo, schema, _kind) {\n if (typeInfo.parentType) {\n const parentType = typeInfo.parentType;\n let fields = [];\n if ('getFields' in parentType) {\n fields = objectValues(parentType.getFields());\n }\n if (isCompositeType(parentType)) {\n fields.push(TypeNameMetaFieldDef);\n }\n if (parentType === schema.getQueryType()) {\n fields.push(SchemaMetaFieldDef, TypeMetaFieldDef);\n }\n return hintList(token, fields.map((field, index) => {\n var _a;\n return ({\n sortText: String(index) + field.name,\n label: field.name,\n detail: String(field.type),\n documentation: (_a = field.description) !== null && _a !== void 0 ? _a : undefined,\n deprecated: field.isDeprecated,\n isDeprecated: field.isDeprecated,\n deprecationReason: field.deprecationReason,\n kind: CompletionItemKind.Field,\n });\n }));\n }\n return [];\n}\nfunction getSuggestionsForInputValues(token, typeInfo, _kind) {\n const namedInputType = getNamedType(typeInfo.inputType);\n if (namedInputType instanceof GraphQLEnumType) {\n const values = namedInputType.getValues();\n return hintList(token, values.map((value) => {\n var _a;\n return ({\n label: value.name,\n detail: String(namedInputType),\n documentation: (_a = value.description) !== null && _a !== void 0 ? _a : undefined,\n deprecated: value.isDeprecated,\n isDeprecated: value.isDeprecated,\n deprecationReason: value.deprecationReason,\n kind: CompletionItemKind.EnumMember,\n });\n }));\n }\n else if (namedInputType === GraphQLBoolean) {\n return hintList(token, [\n {\n label: 'true',\n detail: String(GraphQLBoolean),\n documentation: 'Not false.',\n kind: CompletionItemKind.Variable,\n },\n {\n label: 'false',\n detail: String(GraphQLBoolean),\n documentation: 'Not true.',\n kind: CompletionItemKind.Variable,\n },\n ]);\n }\n return [];\n}\nfunction getSuggestionsForFragmentTypeConditions(token, typeInfo, schema, _kind) {\n let possibleTypes;\n if (typeInfo.parentType) {\n if (isAbstractType(typeInfo.parentType)) {\n const abstractType = assertAbstractType(typeInfo.parentType);\n const possibleObjTypes = schema.getPossibleTypes(abstractType);\n const possibleIfaceMap = Object.create(null);\n possibleObjTypes.forEach(type => {\n type.getInterfaces().forEach(iface => {\n possibleIfaceMap[iface.name] = iface;\n });\n });\n possibleTypes = possibleObjTypes.concat(objectValues(possibleIfaceMap));\n }\n else {\n possibleTypes = [typeInfo.parentType];\n }\n }\n else {\n const typeMap = schema.getTypeMap();\n possibleTypes = objectValues(typeMap).filter(isCompositeType);\n }\n return hintList(token, possibleTypes.map((type) => {\n const namedType = getNamedType(type);\n return {\n label: String(type),\n documentation: (namedType && namedType.description) || '',\n kind: CompletionItemKind.Field,\n };\n }));\n}\nfunction getSuggestionsForFragmentSpread(token, typeInfo, schema, queryText, fragmentDefs) {\n const typeMap = schema.getTypeMap();\n const defState = getDefinitionState(token.state);\n const fragments = getFragmentDefinitions(queryText);\n if (fragmentDefs) {\n fragments.push(...fragmentDefs);\n }\n const relevantFrags = fragments.filter(frag => typeMap[frag.typeCondition.name.value] &&\n !(defState &&\n defState.kind === RuleKinds.FRAGMENT_DEFINITION &&\n defState.name === frag.name.value) &&\n isCompositeType(typeInfo.parentType) &&\n isCompositeType(typeMap[frag.typeCondition.name.value]) &&\n doTypesOverlap(schema, typeInfo.parentType, typeMap[frag.typeCondition.name.value]));\n return hintList(token, relevantFrags.map(frag => ({\n label: frag.name.value,\n detail: String(typeMap[frag.typeCondition.name.value]),\n documentation: `fragment ${frag.name.value} on ${frag.typeCondition.name.value}`,\n kind: CompletionItemKind.Field,\n })));\n}\nexport function getFragmentDefinitions(queryText) {\n const fragmentDefs = [];\n runOnlineParser(queryText, (_, state) => {\n if (state.kind === RuleKinds.FRAGMENT_DEFINITION &&\n state.name &&\n state.type) {\n fragmentDefs.push({\n kind: RuleKinds.FRAGMENT_DEFINITION,\n name: {\n kind: 'Name',\n value: state.name,\n },\n selectionSet: {\n kind: RuleKinds.SELECTION_SET,\n selections: [],\n },\n typeCondition: {\n kind: RuleKinds.NAMED_TYPE,\n name: {\n kind: 'Name',\n value: state.type,\n },\n },\n });\n }\n });\n return fragmentDefs;\n}\nfunction getSuggestionsForVariableDefinition(token, schema, _kind) {\n const inputTypeMap = schema.getTypeMap();\n const inputTypes = objectValues(inputTypeMap).filter(isInputType);\n return hintList(token, inputTypes.map((type) => ({\n label: type.name,\n documentation: type.description,\n kind: CompletionItemKind.Variable,\n })));\n}\nfunction getSuggestionsForDirective(token, state, schema, _kind) {\n if (state.prevState && state.prevState.kind) {\n const directives = schema\n .getDirectives()\n .filter(directive => canUseDirective(state.prevState, directive));\n return hintList(token, directives.map(directive => ({\n label: directive.name,\n documentation: directive.description || '',\n kind: CompletionItemKind.Function,\n })));\n }\n return [];\n}\nexport function getTokenAtPosition(queryText, cursor) {\n let styleAtCursor = null;\n let stateAtCursor = null;\n let stringAtCursor = null;\n const token = runOnlineParser(queryText, (stream, state, style, index) => {\n if (index === cursor.line) {\n if (stream.getCurrentPosition() >= cursor.character) {\n styleAtCursor = style;\n stateAtCursor = Object.assign({}, state);\n stringAtCursor = stream.current();\n return 'BREAK';\n }\n }\n });\n return {\n start: token.start,\n end: token.end,\n string: stringAtCursor || token.string,\n state: stateAtCursor || token.state,\n style: styleAtCursor || token.style,\n };\n}\nexport function runOnlineParser(queryText, callback) {\n const lines = queryText.split('\\n');\n const parser = onlineParser();\n let state = parser.startState();\n let style = '';\n let stream = new CharacterStream('');\n for (let i = 0; i < lines.length; i++) {\n stream = new CharacterStream(lines[i]);\n while (!stream.eol()) {\n style = parser.token(stream, state);\n const code = callback(stream, state, style, i);\n if (code === 'BREAK') {\n break;\n }\n }\n callback(stream, state, style, i);\n if (!state.kind) {\n state = parser.startState();\n }\n }\n return {\n start: stream.getStartOfToken(),\n end: stream.getCurrentPosition(),\n string: stream.current(),\n state,\n style,\n };\n}\nexport function canUseDirective(state, directive) {\n if (!state || !state.kind) {\n return false;\n }\n const kind = state.kind;\n const locations = directive.locations;\n switch (kind) {\n case RuleKinds.QUERY:\n return locations.indexOf('QUERY') !== -1;\n case RuleKinds.MUTATION:\n return locations.indexOf('MUTATION') !== -1;\n case RuleKinds.SUBSCRIPTION:\n return locations.indexOf('SUBSCRIPTION') !== -1;\n case RuleKinds.FIELD:\n case RuleKinds.ALIASED_FIELD:\n return locations.indexOf('FIELD') !== -1;\n case RuleKinds.FRAGMENT_DEFINITION:\n return locations.indexOf('FRAGMENT_DEFINITION') !== -1;\n case RuleKinds.FRAGMENT_SPREAD:\n return locations.indexOf('FRAGMENT_SPREAD') !== -1;\n case RuleKinds.INLINE_FRAGMENT:\n return locations.indexOf('INLINE_FRAGMENT') !== -1;\n case RuleKinds.SCHEMA_DEF:\n return locations.indexOf('SCHEMA') !== -1;\n case RuleKinds.SCALAR_DEF:\n return locations.indexOf('SCALAR') !== -1;\n case RuleKinds.OBJECT_TYPE_DEF:\n return locations.indexOf('OBJECT') !== -1;\n case RuleKinds.FIELD_DEF:\n return locations.indexOf('FIELD_DEFINITION') !== -1;\n case RuleKinds.INTERFACE_DEF:\n return locations.indexOf('INTERFACE') !== -1;\n case RuleKinds.UNION_DEF:\n return locations.indexOf('UNION') !== -1;\n case RuleKinds.ENUM_DEF:\n return locations.indexOf('ENUM') !== -1;\n case RuleKinds.ENUM_VALUE:\n return locations.indexOf('ENUM_VALUE') !== -1;\n case RuleKinds.INPUT_DEF:\n return locations.indexOf('INPUT_OBJECT') !== -1;\n case RuleKinds.INPUT_VALUE_DEF:\n const prevStateKind = state.prevState && state.prevState.kind;\n switch (prevStateKind) {\n case RuleKinds.ARGUMENTS_DEF:\n return locations.indexOf('ARGUMENT_DEFINITION') !== -1;\n case RuleKinds.INPUT_DEF:\n return locations.indexOf('INPUT_FIELD_DEFINITION') !== -1;\n }\n }\n return false;\n}\nexport function getTypeInfo(schema, tokenState) {\n let argDef;\n let argDefs;\n let directiveDef;\n let enumValue;\n let fieldDef;\n let inputType;\n let objectFieldDefs;\n let parentType;\n let type;\n forEachState(tokenState, state => {\n switch (state.kind) {\n case RuleKinds.QUERY:\n case 'ShortQuery':\n type = schema.getQueryType();\n break;\n case RuleKinds.MUTATION:\n type = schema.getMutationType();\n break;\n case RuleKinds.SUBSCRIPTION:\n type = schema.getSubscriptionType();\n break;\n case RuleKinds.INLINE_FRAGMENT:\n case RuleKinds.FRAGMENT_DEFINITION:\n if (state.type) {\n type = schema.getType(state.type);\n }\n break;\n case RuleKinds.FIELD:\n case RuleKinds.ALIASED_FIELD:\n if (!type || !state.name) {\n fieldDef = null;\n }\n else {\n fieldDef = parentType\n ? getFieldDef(schema, parentType, state.name)\n : null;\n type = fieldDef ? fieldDef.type : null;\n }\n break;\n case RuleKinds.SELECTION_SET:\n parentType = getNamedType(type);\n break;\n case RuleKinds.DIRECTIVE:\n directiveDef = state.name ? schema.getDirective(state.name) : null;\n break;\n case RuleKinds.ARGUMENTS:\n if (!state.prevState) {\n argDefs = null;\n }\n else {\n switch (state.prevState.kind) {\n case RuleKinds.FIELD:\n argDefs = fieldDef && fieldDef.args;\n break;\n case RuleKinds.DIRECTIVE:\n argDefs = directiveDef && directiveDef.args;\n break;\n case RuleKinds.ALIASED_FIELD:\n const name = state.prevState && state.prevState.name;\n if (!name) {\n argDefs = null;\n break;\n }\n const field = parentType\n ? getFieldDef(schema, parentType, name)\n : null;\n if (!field) {\n argDefs = null;\n break;\n }\n argDefs = field.args;\n break;\n default:\n argDefs = null;\n break;\n }\n }\n break;\n case RuleKinds.ARGUMENT:\n if (argDefs) {\n for (let i = 0; i < argDefs.length; i++) {\n if (argDefs[i].name === state.name) {\n argDef = argDefs[i];\n break;\n }\n }\n }\n inputType = argDef && argDef.type;\n break;\n case RuleKinds.ENUM_VALUE:\n const enumType = getNamedType(inputType);\n enumValue =\n enumType instanceof GraphQLEnumType\n ? find(enumType.getValues(), (val) => val.value === state.name)\n : null;\n break;\n case RuleKinds.LIST_VALUE:\n const nullableType = getNullableType(inputType);\n inputType =\n nullableType instanceof GraphQLList ? nullableType.ofType : null;\n break;\n case RuleKinds.OBJECT_VALUE:\n const objectType = getNamedType(inputType);\n objectFieldDefs =\n objectType instanceof GraphQLInputObjectType\n ? objectType.getFields()\n : null;\n break;\n case RuleKinds.OBJECT_FIELD:\n const objectField = state.name && objectFieldDefs ? objectFieldDefs[state.name] : null;\n inputType = objectField && objectField.type;\n break;\n case RuleKinds.NAMED_TYPE:\n if (state.name) {\n type = schema.getType(state.name);\n }\n break;\n }\n });\n return {\n argDef,\n argDefs,\n directiveDef,\n enumValue,\n fieldDef,\n inputType,\n objectFieldDefs,\n parentType,\n type,\n };\n}\nfunction find(array, predicate) {\n for (let i = 0; i < array.length; i++) {\n if (predicate(array[i])) {\n return array[i];\n }\n }\n return null;\n}\n//# sourceMappingURL=getAutocompleteSuggestions.js.map","import { visit } from 'graphql';\nexport function getASTNodeAtPosition(query, ast, point) {\n const offset = pointToOffset(query, point);\n let nodeContainingPosition;\n visit(ast, {\n enter(node) {\n if (node.kind !== 'Name' &&\n node.loc &&\n node.loc.start <= offset &&\n offset <= node.loc.end) {\n nodeContainingPosition = node;\n }\n else {\n return false;\n }\n },\n leave(node) {\n if (node.loc && node.loc.start <= offset && offset <= node.loc.end) {\n return false;\n }\n },\n });\n return nodeContainingPosition;\n}\nexport function pointToOffset(text, point) {\n const linesUntilPosition = text.split('\\n').slice(0, point.line);\n return (point.character +\n linesUntilPosition\n .map(line => line.length + 1)\n .reduce((a, b) => a + b, 0));\n}\n//# sourceMappingURL=getASTNodeAtPosition.js.map","export class Range {\n constructor(start, end) {\n this.containsPosition = (position) => {\n if (this.start.line === position.line) {\n return this.start.character <= position.character;\n }\n else if (this.end.line === position.line) {\n return this.end.character >= position.character;\n }\n else {\n return this.start.line <= position.line && this.end.line >= position.line;\n }\n };\n this.start = start;\n this.end = end;\n }\n setStart(line, character) {\n this.start = new Position(line, character);\n }\n setEnd(line, character) {\n this.end = new Position(line, character);\n }\n}\nexport class Position {\n constructor(line, character) {\n this.lessThanOrEqualTo = (position) => this.line < position.line ||\n (this.line === position.line && this.character <= position.character);\n this.line = line;\n this.character = character;\n }\n setLine(line) {\n this.line = line;\n }\n setCharacter(character) {\n this.character = character;\n }\n}\nexport function offsetToPosition(text, loc) {\n const EOL = '\\n';\n const buf = text.slice(0, loc);\n const lines = buf.split(EOL).length - 1;\n const lastLineIndex = buf.lastIndexOf(EOL);\n return new Position(lines, loc - lastLineIndex - 1);\n}\nexport function locToRange(text, loc) {\n const start = offsetToPosition(text, loc.start);\n const end = offsetToPosition(text, loc.end);\n return new Range(start, end);\n}\n//# sourceMappingURL=Range.js.map","import { Kind, specifiedRules, validate, NoUnusedFragmentsRule, KnownFragmentNamesRule, } from 'graphql';\nimport { ExecutableDefinitions } from 'graphql/validation/rules/ExecutableDefinitions';\nexport function validateWithCustomRules(schema, ast, customRules, isRelayCompatMode) {\n const rules = specifiedRules.filter(rule => {\n if (rule === NoUnusedFragmentsRule || rule === ExecutableDefinitions) {\n return false;\n }\n if (isRelayCompatMode && rule === KnownFragmentNamesRule) {\n return false;\n }\n return true;\n });\n if (customRules) {\n Array.prototype.push.apply(rules, customRules);\n }\n const errors = validate(schema, ast, rules);\n return errors.filter(error => {\n if (error.message.indexOf('Unknown directive') !== -1 && error.nodes) {\n const node = error.nodes[0];\n if (node && node.kind === Kind.DIRECTIVE) {\n const name = node.name.value;\n if (name === 'arguments' || name === 'argumentDefinitions') {\n return false;\n }\n }\n }\n return true;\n });\n}\n//# sourceMappingURL=validateWithCustomRules.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { locToRange, offsetToPosition } from 'graphql-language-service-utils';\nimport assert from 'assert';\nexport const LANGUAGE = 'GraphQL';\nfunction getRange(text, node) {\n const location = node.loc;\n assert(location, 'Expected ASTNode to have a location.');\n return locToRange(text, location);\n}\nfunction getPosition(text, node) {\n const location = node.loc;\n assert(location, 'Expected ASTNode to have a location.');\n return offsetToPosition(text, location.start);\n}\nexport function getDefinitionQueryResultForNamedType(text, node, dependencies) {\n return __awaiter(this, void 0, void 0, function* () {\n const name = node.name.value;\n const defNodes = dependencies.filter(({ definition }) => definition.name && definition.name.value === name);\n if (defNodes.length === 0) {\n throw Error(`Definition not found for GraphQL type ${name}`);\n }\n const definitions = defNodes.map(({ filePath, content, definition }) => getDefinitionForNodeDefinition(filePath || '', content, definition));\n return {\n definitions,\n queryRange: definitions.map(_ => getRange(text, node)),\n };\n });\n}\nexport function getDefinitionQueryResultForFragmentSpread(text, fragment, dependencies) {\n return __awaiter(this, void 0, void 0, function* () {\n const name = fragment.name.value;\n const defNodes = dependencies.filter(({ definition }) => definition.name.value === name);\n if (defNodes.length === 0) {\n throw Error(`Definition not found for GraphQL fragment ${name}`);\n }\n const definitions = defNodes.map(({ filePath, content, definition }) => getDefinitionForFragmentDefinition(filePath || '', content, definition));\n return {\n definitions,\n queryRange: definitions.map(_ => getRange(text, fragment)),\n };\n });\n}\nexport function getDefinitionQueryResultForDefinitionNode(path, text, definition) {\n return {\n definitions: [getDefinitionForFragmentDefinition(path, text, definition)],\n queryRange: definition.name ? [getRange(text, definition.name)] : [],\n };\n}\nfunction getDefinitionForFragmentDefinition(path, text, definition) {\n const name = definition.name;\n if (!name) {\n throw Error('Expected ASTNode to have a Name.');\n }\n return {\n path,\n position: getPosition(text, definition),\n range: getRange(text, definition),\n name: name.value || '',\n language: LANGUAGE,\n projectRoot: path,\n };\n}\nfunction getDefinitionForNodeDefinition(path, text, definition) {\n const name = definition.name;\n assert(name, 'Expected ASTNode to have a Name.');\n return {\n path,\n position: getPosition(text, definition),\n range: getRange(text, definition),\n name: name.value || '',\n language: LANGUAGE,\n projectRoot: path,\n };\n}\n//# sourceMappingURL=getDefinition.js.map","import invariant from 'assert';\nimport { findDeprecatedUsages, parse } from 'graphql';\nimport { CharacterStream, onlineParser } from 'graphql-language-service-parser';\nimport { Range, validateWithCustomRules, Position, } from 'graphql-language-service-utils';\nexport const SEVERITY = {\n Error: 'Error',\n Warning: 'Warning',\n Information: 'Information',\n Hint: 'Hint',\n};\nexport const DIAGNOSTIC_SEVERITY = {\n [SEVERITY.Error]: 1,\n [SEVERITY.Warning]: 2,\n [SEVERITY.Information]: 3,\n [SEVERITY.Hint]: 4,\n};\nexport function getDiagnostics(query, schema = null, customRules, isRelayCompatMode) {\n let ast = null;\n try {\n ast = parse(query);\n }\n catch (error) {\n const range = getRange(error.locations[0], query);\n return [\n {\n severity: DIAGNOSTIC_SEVERITY.Error,\n message: error.message,\n source: 'GraphQL: Syntax',\n range,\n },\n ];\n }\n return validateQuery(ast, schema, customRules, isRelayCompatMode);\n}\nexport function validateQuery(ast, schema = null, customRules, isRelayCompatMode) {\n if (!schema) {\n return [];\n }\n const validationErrorAnnotations = mapCat(validateWithCustomRules(schema, ast, customRules, isRelayCompatMode), error => annotations(error, DIAGNOSTIC_SEVERITY.Error, 'Validation'));\n const deprecationWarningAnnotations = !findDeprecatedUsages\n ? []\n : mapCat(findDeprecatedUsages(schema, ast), error => annotations(error, DIAGNOSTIC_SEVERITY.Warning, 'Deprecation'));\n return validationErrorAnnotations.concat(deprecationWarningAnnotations);\n}\nfunction mapCat(array, mapper) {\n return Array.prototype.concat.apply([], array.map(mapper));\n}\nfunction annotations(error, severity, type) {\n if (!error.nodes) {\n return [];\n }\n const highlightedNodes = [];\n error.nodes.forEach(node => {\n const highlightNode = node.kind !== 'Variable' && 'name' in node && node.name !== undefined\n ? node.name\n : 'variable' in node && node.variable !== undefined\n ? node.variable\n : node;\n if (highlightNode) {\n invariant(error.locations, 'GraphQL validation error requires locations.');\n const loc = error.locations[0];\n const highlightLoc = getLocation(highlightNode);\n const end = loc.column + (highlightLoc.end - highlightLoc.start);\n highlightedNodes.push({\n source: `GraphQL: ${type}`,\n message: error.message,\n severity,\n range: new Range(new Position(loc.line - 1, loc.column - 1), new Position(loc.line - 1, end)),\n });\n }\n });\n return highlightedNodes;\n}\nexport function getRange(location, queryText) {\n const parser = onlineParser();\n const state = parser.startState();\n const lines = queryText.split('\\n');\n invariant(lines.length >= location.line, 'Query text must have more lines than where the error happened');\n let stream = null;\n for (let i = 0; i < location.line; i++) {\n stream = new CharacterStream(lines[i]);\n while (!stream.eol()) {\n const style = parser.token(stream, state);\n if (style === 'invalidchar') {\n break;\n }\n }\n }\n invariant(stream, 'Expected Parser stream to be available.');\n const line = location.line - 1;\n const start = stream.getStartOfToken();\n const end = stream.getCurrentPosition();\n return new Range(new Position(line, start), new Position(line, end));\n}\nfunction getLocation(node) {\n const typeCastedNode = node;\n const location = typeCastedNode.loc;\n invariant(location, 'Expected ASTNode to have a location.');\n return location;\n}\n//# sourceMappingURL=getDiagnostics.js.map","import { Kind, parse, visit, } from 'graphql';\nimport { offsetToPosition } from 'graphql-language-service-utils';\nconst { INLINE_FRAGMENT } = Kind;\nconst OUTLINEABLE_KINDS = {\n Field: true,\n OperationDefinition: true,\n Document: true,\n SelectionSet: true,\n Name: true,\n FragmentDefinition: true,\n FragmentSpread: true,\n InlineFragment: true,\n ObjectTypeDefinition: true,\n InputObjectTypeDefinition: true,\n InterfaceTypeDefinition: true,\n EnumTypeDefinition: true,\n EnumValueDefinition: true,\n InputValueDefinition: true,\n FieldDefinition: true,\n};\nexport function getOutline(documentText) {\n let ast;\n try {\n ast = parse(documentText);\n }\n catch (error) {\n return null;\n }\n const visitorFns = outlineTreeConverter(documentText);\n const outlineTrees = visit(ast, {\n leave(node) {\n if (visitorFns !== undefined && node.kind in visitorFns) {\n return visitorFns[node.kind](node);\n }\n return null;\n },\n });\n return { outlineTrees };\n}\nfunction outlineTreeConverter(docText) {\n const meta = (node) => {\n return {\n representativeName: node.name,\n startPosition: offsetToPosition(docText, node.loc.start),\n endPosition: offsetToPosition(docText, node.loc.end),\n kind: node.kind,\n children: node.selectionSet || node.fields || node.values || node.arguments || [],\n };\n };\n return {\n Field: (node) => {\n const tokenizedText = node.alias\n ? [buildToken('plain', node.alias), buildToken('plain', ': ')]\n : [];\n tokenizedText.push(buildToken('plain', node.name));\n return Object.assign({ tokenizedText }, meta(node));\n },\n OperationDefinition: (node) => (Object.assign({ tokenizedText: [\n buildToken('keyword', node.operation),\n buildToken('whitespace', ' '),\n buildToken('class-name', node.name),\n ] }, meta(node))),\n Document: (node) => node.definitions,\n SelectionSet: (node) => concatMap(node.selections, (child) => {\n return child.kind === INLINE_FRAGMENT ? child.selectionSet : child;\n }),\n Name: (node) => node.value,\n FragmentDefinition: (node) => (Object.assign({ tokenizedText: [\n buildToken('keyword', 'fragment'),\n buildToken('whitespace', ' '),\n buildToken('class-name', node.name),\n ] }, meta(node))),\n InterfaceTypeDefinition: (node) => (Object.assign({ tokenizedText: [\n buildToken('keyword', 'interface'),\n buildToken('whitespace', ' '),\n buildToken('class-name', node.name),\n ] }, meta(node))),\n EnumTypeDefinition: (node) => (Object.assign({ tokenizedText: [\n buildToken('keyword', 'enum'),\n buildToken('whitespace', ' '),\n buildToken('class-name', node.name),\n ] }, meta(node))),\n EnumValueDefinition: (node) => (Object.assign({ tokenizedText: [buildToken('plain', node.name)] }, meta(node))),\n ObjectTypeDefinition: (node) => (Object.assign({ tokenizedText: [\n buildToken('keyword', 'type'),\n buildToken('whitespace', ' '),\n buildToken('class-name', node.name),\n ] }, meta(node))),\n InputObjectTypeDefinition: (node) => (Object.assign({ tokenizedText: [\n buildToken('keyword', 'input'),\n buildToken('whitespace', ' '),\n buildToken('class-name', node.name),\n ] }, meta(node))),\n FragmentSpread: (node) => (Object.assign({ tokenizedText: [\n buildToken('plain', '...'),\n buildToken('class-name', node.name),\n ] }, meta(node))),\n InputValueDefinition: (node) => {\n return Object.assign({ tokenizedText: [buildToken('plain', node.name)] }, meta(node));\n },\n FieldDefinition: (node) => {\n return Object.assign({ tokenizedText: [buildToken('plain', node.name)] }, meta(node));\n },\n InlineFragment: (node) => node.selectionSet,\n };\n}\nfunction buildToken(kind, value) {\n return { kind, value };\n}\nfunction concatMap(arr, fn) {\n const res = [];\n for (let i = 0; i < arr.length; i++) {\n const x = fn(arr[i], i);\n if (Array.isArray(x)) {\n res.push(...x);\n }\n else {\n res.push(x);\n }\n }\n return res;\n}\n//# sourceMappingURL=getOutline.js.map","import { GraphQLNonNull, GraphQLList, } from 'graphql';\nimport { getTokenAtPosition, getTypeInfo } from './getAutocompleteSuggestions';\nexport function getHoverInformation(schema, queryText, cursor, contextToken) {\n const token = contextToken || getTokenAtPosition(queryText, cursor);\n if (!schema || !token || !token.state) {\n return '';\n }\n const state = token.state;\n const kind = state.kind;\n const step = state.step;\n const typeInfo = getTypeInfo(schema, token.state);\n const options = { schema };\n if ((kind === 'Field' && step === 0 && typeInfo.fieldDef) ||\n (kind === 'AliasedField' && step === 2 && typeInfo.fieldDef)) {\n const into = [];\n renderField(into, typeInfo, options);\n renderDescription(into, options, typeInfo.fieldDef);\n return into.join('').trim();\n }\n else if (kind === 'Directive' && step === 1 && typeInfo.directiveDef) {\n const into = [];\n renderDirective(into, typeInfo, options);\n renderDescription(into, options, typeInfo.directiveDef);\n return into.join('').trim();\n }\n else if (kind === 'Argument' && step === 0 && typeInfo.argDef) {\n const into = [];\n renderArg(into, typeInfo, options);\n renderDescription(into, options, typeInfo.argDef);\n return into.join('').trim();\n }\n else if (kind === 'EnumValue' &&\n typeInfo.enumValue &&\n 'description' in typeInfo.enumValue) {\n const into = [];\n renderEnumValue(into, typeInfo, options);\n renderDescription(into, options, typeInfo.enumValue);\n return into.join('').trim();\n }\n else if (kind === 'NamedType' &&\n typeInfo.type &&\n 'description' in typeInfo.type) {\n const into = [];\n renderType(into, typeInfo, options, typeInfo.type);\n renderDescription(into, options, typeInfo.type);\n return into.join('').trim();\n }\n return '';\n}\nfunction renderField(into, typeInfo, options) {\n renderQualifiedField(into, typeInfo, options);\n renderTypeAnnotation(into, typeInfo, options, typeInfo.type);\n}\nfunction renderQualifiedField(into, typeInfo, options) {\n if (!typeInfo.fieldDef) {\n return;\n }\n const fieldName = typeInfo.fieldDef.name;\n if (fieldName.slice(0, 2) !== '__') {\n renderType(into, typeInfo, options, typeInfo.parentType);\n text(into, '.');\n }\n text(into, fieldName);\n}\nfunction renderDirective(into, typeInfo, _options) {\n if (!typeInfo.directiveDef) {\n return;\n }\n const name = '@' + typeInfo.directiveDef.name;\n text(into, name);\n}\nfunction renderArg(into, typeInfo, options) {\n if (typeInfo.directiveDef) {\n renderDirective(into, typeInfo, options);\n }\n else if (typeInfo.fieldDef) {\n renderQualifiedField(into, typeInfo, options);\n }\n if (!typeInfo.argDef) {\n return;\n }\n const name = typeInfo.argDef.name;\n text(into, '(');\n text(into, name);\n renderTypeAnnotation(into, typeInfo, options, typeInfo.inputType);\n text(into, ')');\n}\nfunction renderTypeAnnotation(into, typeInfo, options, t) {\n text(into, ': ');\n renderType(into, typeInfo, options, t);\n}\nfunction renderEnumValue(into, typeInfo, options) {\n if (!typeInfo.enumValue) {\n return;\n }\n const name = typeInfo.enumValue.name;\n renderType(into, typeInfo, options, typeInfo.inputType);\n text(into, '.');\n text(into, name);\n}\nfunction renderType(into, typeInfo, options, t) {\n if (!t) {\n return;\n }\n if (t instanceof GraphQLNonNull) {\n renderType(into, typeInfo, options, t.ofType);\n text(into, '!');\n }\n else if (t instanceof GraphQLList) {\n text(into, '[');\n renderType(into, typeInfo, options, t.ofType);\n text(into, ']');\n }\n else {\n text(into, t.name);\n }\n}\nfunction renderDescription(into, options, def) {\n if (!def) {\n return;\n }\n const description = typeof def.description === 'string' ? def.description : null;\n if (description) {\n text(into, '\\n\\n');\n text(into, description);\n }\n renderDeprecation(into, options, def);\n}\nfunction renderDeprecation(into, _options, def) {\n if (!def) {\n return;\n }\n const reason = def.deprecationReason ? def.deprecationReason : null;\n if (!reason) {\n return;\n }\n text(into, '\\n\\n');\n text(into, 'Deprecated: ');\n text(into, reason);\n}\nfunction text(into, content) {\n into.push(content);\n}\n//# sourceMappingURL=getHoverInformation.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { SymbolKind, } from 'vscode-languageserver-types';\nimport { Kind, parse, print } from 'graphql';\nimport { getAutocompleteSuggestions } from './getAutocompleteSuggestions';\nimport { getHoverInformation } from './getHoverInformation';\nimport { validateQuery, getRange, DIAGNOSTIC_SEVERITY } from './getDiagnostics';\nimport { getDefinitionQueryResultForFragmentSpread, getDefinitionQueryResultForDefinitionNode, getDefinitionQueryResultForNamedType, } from './getDefinition';\nimport { getOutline } from './getOutline';\nimport { getASTNodeAtPosition } from 'graphql-language-service-utils';\nconst { FRAGMENT_DEFINITION, OBJECT_TYPE_DEFINITION, INTERFACE_TYPE_DEFINITION, ENUM_TYPE_DEFINITION, UNION_TYPE_DEFINITION, SCALAR_TYPE_DEFINITION, INPUT_OBJECT_TYPE_DEFINITION, SCALAR_TYPE_EXTENSION, OBJECT_TYPE_EXTENSION, INTERFACE_TYPE_EXTENSION, UNION_TYPE_EXTENSION, ENUM_TYPE_EXTENSION, INPUT_OBJECT_TYPE_EXTENSION, DIRECTIVE_DEFINITION, FRAGMENT_SPREAD, OPERATION_DEFINITION, NAMED_TYPE, } = Kind;\nconst KIND_TO_SYMBOL_KIND = {\n [Kind.FIELD]: SymbolKind.Field,\n [Kind.OPERATION_DEFINITION]: SymbolKind.Class,\n [Kind.FRAGMENT_DEFINITION]: SymbolKind.Class,\n [Kind.FRAGMENT_SPREAD]: SymbolKind.Struct,\n [Kind.OBJECT_TYPE_DEFINITION]: SymbolKind.Class,\n [Kind.ENUM_TYPE_DEFINITION]: SymbolKind.Enum,\n [Kind.ENUM_VALUE_DEFINITION]: SymbolKind.EnumMember,\n [Kind.INPUT_OBJECT_TYPE_DEFINITION]: SymbolKind.Class,\n [Kind.INPUT_VALUE_DEFINITION]: SymbolKind.Field,\n [Kind.FIELD_DEFINITION]: SymbolKind.Field,\n [Kind.INTERFACE_TYPE_DEFINITION]: SymbolKind.Interface,\n [Kind.DOCUMENT]: SymbolKind.File,\n FieldWithArguments: SymbolKind.Method,\n};\nfunction getKind(tree) {\n if (tree.kind === 'FieldDefinition' &&\n tree.children &&\n tree.children.length > 0) {\n return KIND_TO_SYMBOL_KIND.FieldWithArguments;\n }\n return KIND_TO_SYMBOL_KIND[tree.kind];\n}\nexport class GraphQLLanguageService {\n constructor(cache) {\n this._graphQLCache = cache;\n this._graphQLConfig = cache.getGraphQLConfig();\n }\n getConfigForURI(uri) {\n const config = this._graphQLCache.getProjectForFile(uri);\n if (config) {\n return config;\n }\n throw Error(`No config found for uri: ${uri}`);\n }\n getDiagnostics(query, uri, isRelayCompatMode) {\n return __awaiter(this, void 0, void 0, function* () {\n let queryHasExtensions = false;\n const projectConfig = this.getConfigForURI(uri);\n if (!projectConfig) {\n return [];\n }\n const { schema: schemaPath, name: projectName, extensions } = projectConfig;\n try {\n const queryAST = parse(query);\n if (!schemaPath || uri !== schemaPath) {\n queryHasExtensions = queryAST.definitions.some(definition => {\n switch (definition.kind) {\n case OBJECT_TYPE_DEFINITION:\n case INTERFACE_TYPE_DEFINITION:\n case ENUM_TYPE_DEFINITION:\n case UNION_TYPE_DEFINITION:\n case SCALAR_TYPE_DEFINITION:\n case INPUT_OBJECT_TYPE_DEFINITION:\n case SCALAR_TYPE_EXTENSION:\n case OBJECT_TYPE_EXTENSION:\n case INTERFACE_TYPE_EXTENSION:\n case UNION_TYPE_EXTENSION:\n case ENUM_TYPE_EXTENSION:\n case INPUT_OBJECT_TYPE_EXTENSION:\n case DIRECTIVE_DEFINITION:\n return true;\n }\n return false;\n });\n }\n }\n catch (error) {\n const range = getRange(error.locations[0], query);\n return [\n {\n severity: DIAGNOSTIC_SEVERITY.Error,\n message: error.message,\n source: 'GraphQL: Syntax',\n range,\n },\n ];\n }\n let source = query;\n const fragmentDefinitions = yield this._graphQLCache.getFragmentDefinitions(projectConfig);\n const fragmentDependencies = yield this._graphQLCache.getFragmentDependencies(query, fragmentDefinitions);\n const dependenciesSource = fragmentDependencies.reduce((prev, cur) => `${prev} ${print(cur.definition)}`, '');\n source = `${source} ${dependenciesSource}`;\n let validationAst = null;\n try {\n validationAst = parse(source);\n }\n catch (error) {\n return [];\n }\n let customRules = null;\n if ((extensions === null || extensions === void 0 ? void 0 : extensions.customValidationRules) &&\n typeof extensions.customValidationRules === 'function') {\n customRules = extensions.customValidationRules(this._graphQLConfig);\n }\n const schema = yield this._graphQLCache.getSchema(projectName, queryHasExtensions);\n if (!schema) {\n return [];\n }\n return validateQuery(validationAst, schema, customRules, isRelayCompatMode);\n });\n }\n getAutocompleteSuggestions(query, position, filePath) {\n return __awaiter(this, void 0, void 0, function* () {\n const projectConfig = this.getConfigForURI(filePath);\n const schema = yield this._graphQLCache.getSchema(projectConfig.name);\n const fragmentDefinitions = yield this._graphQLCache.getFragmentDefinitions(projectConfig);\n const fragmentInfo = Array.from(fragmentDefinitions).map(([, info]) => info);\n if (schema) {\n return getAutocompleteSuggestions(schema, query, position, undefined, fragmentInfo.map(({ definition }) => definition));\n }\n return [];\n });\n }\n getHoverInformation(query, position, filePath) {\n return __awaiter(this, void 0, void 0, function* () {\n const projectConfig = this.getConfigForURI(filePath);\n const schema = yield this._graphQLCache.getSchema(projectConfig.name);\n if (schema) {\n return getHoverInformation(schema, query, position);\n }\n return '';\n });\n }\n getDefinition(query, position, filePath) {\n return __awaiter(this, void 0, void 0, function* () {\n const projectConfig = this.getConfigForURI(filePath);\n let ast;\n try {\n ast = parse(query);\n }\n catch (error) {\n return null;\n }\n const node = getASTNodeAtPosition(query, ast, position);\n if (node) {\n switch (node.kind) {\n case FRAGMENT_SPREAD:\n return this._getDefinitionForFragmentSpread(query, ast, node, filePath, projectConfig);\n case FRAGMENT_DEFINITION:\n case OPERATION_DEFINITION:\n return getDefinitionQueryResultForDefinitionNode(filePath, query, node);\n case NAMED_TYPE:\n return this._getDefinitionForNamedType(query, ast, node, filePath, projectConfig);\n }\n }\n return null;\n });\n }\n getDocumentSymbols(document, filePath) {\n return __awaiter(this, void 0, void 0, function* () {\n const outline = yield this.getOutline(document);\n if (!outline) {\n return [];\n }\n const output = [];\n const input = outline.outlineTrees.map((tree) => [null, tree]);\n while (input.length > 0) {\n const res = input.pop();\n if (!res) {\n return [];\n }\n const [parent, tree] = res;\n if (!tree) {\n return [];\n }\n output.push({\n name: tree.representativeName,\n kind: getKind(tree),\n location: {\n uri: filePath,\n range: {\n start: tree.startPosition,\n end: tree.endPosition,\n },\n },\n containerName: parent ? parent.representativeName : undefined,\n });\n input.push(...tree.children.map(child => [tree, child]));\n }\n return output;\n });\n }\n _getDefinitionForNamedType(query, ast, node, filePath, projectConfig) {\n return __awaiter(this, void 0, void 0, function* () {\n const objectTypeDefinitions = yield this._graphQLCache.getObjectTypeDefinitions(projectConfig);\n const dependencies = yield this._graphQLCache.getObjectTypeDependenciesForAST(ast, objectTypeDefinitions);\n const localObjectTypeDefinitions = ast.definitions.filter(definition => definition.kind === OBJECT_TYPE_DEFINITION ||\n definition.kind === INPUT_OBJECT_TYPE_DEFINITION ||\n definition.kind === ENUM_TYPE_DEFINITION ||\n definition.kind === SCALAR_TYPE_DEFINITION ||\n definition.kind === INTERFACE_TYPE_DEFINITION);\n const typeCastedDefs = localObjectTypeDefinitions;\n const localOperationDefinationInfos = typeCastedDefs.map((definition) => ({\n filePath,\n content: query,\n definition,\n }));\n const result = yield getDefinitionQueryResultForNamedType(query, node, dependencies.concat(localOperationDefinationInfos));\n return result;\n });\n }\n _getDefinitionForFragmentSpread(query, ast, node, filePath, projectConfig) {\n return __awaiter(this, void 0, void 0, function* () {\n const fragmentDefinitions = yield this._graphQLCache.getFragmentDefinitions(projectConfig);\n const dependencies = yield this._graphQLCache.getFragmentDependenciesForAST(ast, fragmentDefinitions);\n const localFragDefinitions = ast.definitions.filter(definition => definition.kind === FRAGMENT_DEFINITION);\n const typeCastedDefs = localFragDefinitions;\n const localFragInfos = typeCastedDefs.map((definition) => ({\n filePath,\n content: query,\n definition,\n }));\n const result = yield getDefinitionQueryResultForFragmentSpread(query, node, dependencies.concat(localFragInfos));\n return result;\n });\n }\n getOutline(documentText) {\n return __awaiter(this, void 0, void 0, function* () {\n return getOutline(documentText);\n });\n }\n}\n//# sourceMappingURL=GraphQLLanguageService.js.map","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.bowser=t():e.bowser=t()}(this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=90)}({17:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n=r(18),i=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||\"\"},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||\"\"},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case\"NT\":return\"NT\";case\"XP\":return\"XP\";case\"NT 5.0\":return\"2000\";case\"NT 5.1\":return\"XP\";case\"NT 5.2\":return\"2003\";case\"NT 6.0\":return\"Vista\";case\"NT 6.1\":return\"7\";case\"NT 6.2\":return\"8\";case\"NT 6.3\":return\"8.1\";case\"NT 10.0\":return\"10\";default:return}},e.getMacOSVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),10===t[0])switch(t[1]){case 5:return\"Leopard\";case 6:return\"Snow Leopard\";case 7:return\"Lion\";case 8:return\"Mountain Lion\";case 9:return\"Mavericks\";case 10:return\"Yosemite\";case 11:return\"El Capitan\";case 12:return\"Sierra\";case 13:return\"High Sierra\";case 14:return\"Mojave\";case 15:return\"Catalina\";default:return}},e.getAndroidVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?\"Cupcake\":1===t[0]&&t[1]>=6?\"Donut\":2===t[0]&&t[1]<2?\"Eclair\":2===t[0]&&2===t[1]?\"Froyo\":2===t[0]&&t[1]>2?\"Gingerbread\":3===t[0]?\"Honeycomb\":4===t[0]&&t[1]<1?\"Ice Cream Sandwich\":4===t[0]&&t[1]<4?\"Jelly Bean\":4===t[0]&&t[1]>=4?\"KitKat\":5===t[0]?\"Lollipop\":6===t[0]?\"Marshmallow\":7===t[0]?\"Nougat\":8===t[0]?\"Oreo\":9===t[0]?\"Pie\":void 0},e.getVersionPrecision=function(e){return e.split(\".\").length},e.compareVersions=function(t,r,n){void 0===n&&(n=!1);var i=e.getVersionPrecision(t),s=e.getVersionPrecision(r),a=Math.max(i,s),o=0,u=e.map([t,r],(function(t){var r=a-e.getVersionPrecision(t),n=t+new Array(r+1).join(\".0\");return e.map(n.split(\".\"),(function(e){return new Array(20-e.length).join(\"0\")+e})).reverse()}));for(n&&(o=a-Math.min(i,s)),a-=1;a>=o;){if(u[0][a]>u[1][a])return 1;if(u[0][a]===u[1][a]){if(a===o)return 0;a-=1}else if(u[0][a]1?i-1:0),a=1;a0){var a=Object.keys(r),u=o.default.find(a,(function(e){return t.isOS(e)}));if(u){var d=this.satisfies(r[u]);if(void 0!==d)return d}var c=o.default.find(a,(function(e){return t.isPlatform(e)}));if(c){var f=this.satisfies(r[c]);if(void 0!==f)return f}}if(s>0){var l=Object.keys(i),h=o.default.find(l,(function(e){return t.isBrowser(e,!0)}));if(void 0!==h)return this.compareVersion(i[h])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),i=o.default.getBrowserTypeByAlias(n);return t&&i&&(n=i.toLowerCase()),n===r},t.compareVersion=function(e){var t=[0],r=e,n=!1,i=this.getBrowserVersion();if(\"string\"==typeof i)return\">\"===e[0]||\"<\"===e[0]?(r=e.substr(1),\"=\"===e[1]?(n=!0,r=e.substr(2)):t=[],\">\"===e[0]?t.push(1):t.push(-1)):\"=\"===e[0]?r=e.substr(1):\"~\"===e[0]&&(n=!0,r=e.substr(1)),t.indexOf(o.default.compareVersions(i,r,n))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=d,e.exports=t.default},92:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n};var s=/version\\/(\\d+(\\.?_?\\d+)+)/i,a=[{test:[/googlebot/i],describe:function(e){var t={name:\"Googlebot\"},r=i.default.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\\/|opios/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:\"Samsung Internet for Android\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:\"NAVER Whale Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:\"MZ Browser\"},r=i.default.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:\"Focus\"},r=i.default.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:\"Swing\"},r=i.default.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:\"Opera Coast\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\\/\\d+(?:.?_?\\d+)+/i],describe:function(e){var t={name:\"Opera Touch\"},r=i.default.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:\"Yandex Browser\"},r=i.default.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:\"UC Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:\"Maxthon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:\"Epiphany\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:\"Puffin\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:\"Sleipnir\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:\"K-Meleon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:\"WeChat\"},r=i.default.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?\"QQ Browser Lite\":\"QQ Browser\"},r=i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:\"Internet Explorer\"},r=i.default.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\\sedg\\//i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:\"Vivaldi\"},r=i.default.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:\"SeaMonkey\"},r=i.default.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:\"Sailfish\"},r=i.default.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:\"Amazon Silk\"},r=i.default.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:\"PhantomJS\"},r=i.default.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:\"SlimerJS\"},r=i.default.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t={name:\"BlackBerry\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:\"WebOS Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:\"Bada\"},r=i.default.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:\"Tizen\"},r=i.default.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:\"QupZilla\"},r=i.default.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:\"Firefox\"},r=i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:\"Electron\"},r=i.default.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:\"Miui\"},r=i.default.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:\"Chromium\"},r=i.default.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:\"Chrome\"},r=i.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:\"Google Search\"},r=i.default.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:\"Android Browser\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:\"PlayStation 4\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:\"Safari\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search(\"\\\\(\")?/^(.*)\\/(.*)[ \\t]\\((.*)/:/^(.*)\\/(.*) /;return{name:i.default.getFirstMatch(t,e),version:i.default.getSecondMatch(t,e)}}}];t.default=a,e.exports=t.default},93:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/Roku\\/DVP/],describe:function(e){var t=i.default.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i,e);return{name:s.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=i.default.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=i.default.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i,e),r=i.default.getWindowsVersionName(t);return{name:s.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(e){var t={name:s.OS_MAP.iOS},r=i.default.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=i.default.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i,e).replace(/[_\\s]/g,\".\"),r=i.default.getMacOSVersionName(t),n={name:s.OS_MAP.MacOS,version:t};return r&&(n.versionName=r),n}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=i.default.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i,e).replace(/[_\\s]/g,\".\");return{name:s.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=i.default.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i,e),r=i.default.getAndroidVersionName(t),n={name:s.OS_MAP.Android,version:t};return r&&(n.versionName=r),n}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=i.default.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i,e),r={name:s.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t=i.default.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i,e)||i.default.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i,e)||i.default.getFirstMatch(/\\bbb(\\d+)/i,e);return{name:s.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=i.default.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=i.default.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:s.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:s.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=i.default.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.PlayStation4,version:t}}}];t.default=a,e.exports=t.default},94:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/googlebot/i],describe:function(){return{type:\"bot\",vendor:\"Google\"}}},{test:[/huawei/i],describe:function(e){var t=i.default.getFirstMatch(/(can-l01)/i,e)&&\"Nova\",r={type:s.PLATFORMS_MAP.mobile,vendor:\"Huawei\"};return t&&(r.model=t),r}},{test:[/nexus\\s*(?:7|8|9|10).*/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Nexus\"}}},{test:[/ipad/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/kftt build/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\",model:\"Kindle Fire HD 7\"}}},{test:[/silk/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=i.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:s.PLATFORMS_MAP.mobile,vendor:\"Apple\",model:t}}},{test:[/nexus\\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Nexus\"}}},{test:[/[^-]mobi/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"blackberry\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"BlackBerry\"}}},{test:function(e){return\"bada\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"windows phone\"===e.getBrowserName()},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Microsoft\"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(\".\")[0]);return\"android\"===e.getOSName(!0)&&t>=3},describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){return\"android\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"macos\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop,vendor:\"Apple\"}}},{test:function(e){return\"windows\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"linux\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"playstation 4\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}},{test:function(e){return\"roku\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}}];t.default=a,e.exports=t.default},95:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:function(e){return\"microsoft edge\"===e.getBrowserName(!0)},describe:function(e){if(/\\sedg\\//i.test(e))return{name:s.ENGINE_MAP.Blink};var t=i.default.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i,e);return{name:s.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:s.ENGINE_MAP.Trident},r=i.default.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:s.ENGINE_MAP.Presto},r=i.default.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:s.ENGINE_MAP.Gecko},r=i.default.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\\/537\\.36/i],describe:function(){return{name:s.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:s.ENGINE_MAP.WebKit},r=i.default.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=a,e.exports=t.default}})}));","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/**\n * Memo class used for decycle json objects. Uses WeakSet if available otherwise array.\n */\nexport class Memo {\n /** Determines if WeakSet is available */\n private readonly _hasWeakSet: boolean;\n /** Either WeakSet or Array */\n private readonly _inner: any;\n\n public constructor() {\n this._hasWeakSet = typeof WeakSet === 'function';\n this._inner = this._hasWeakSet ? new WeakSet() : [];\n }\n\n /**\n * Sets obj to remember.\n * @param obj Object to remember\n */\n public memoize(obj: any): boolean {\n if (this._hasWeakSet) {\n if (this._inner.has(obj)) {\n return true;\n }\n this._inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < this._inner.length; i++) {\n const value = this._inner[i];\n if (value === obj) {\n return true;\n }\n }\n this._inner.push(obj);\n return false;\n }\n\n /**\n * Removes object from internal storage.\n * @param obj Object to forget\n */\n public unmemoize(obj: any): void {\n if (this._hasWeakSet) {\n this._inner.delete(obj);\n } else {\n for (let i = 0; i < this._inner.length; i++) {\n if (this._inner[i] === obj) {\n this._inner.splice(i, 1);\n break;\n }\n }\n }\n }\n}\n","/*\n * __ ___\n * _____/ /___ __/ (_)____\n * / ___/ __/ / / / / / ___/\n * (__ ) /_/ /_/ / / (__ )\n * /____/\\__/\\__, /_/_/____/\n * /____/\n *\n * light - weight css preprocessor @licence MIT\n */\n(function (factory) {/* eslint-disable */\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? (module['exports'] = factory(null)) :\n\t\ttypeof define === 'function' && define['amd'] ? define(factory(null)) :\n\t\t\t(window['stylis'] = factory(null))\n}(/** @param {*=} options */function factory (options) {/* eslint-disable */\n\n\t'use strict'\n\n\t/**\n\t * Notes\n\t *\n\t * The [''] pattern is used to support closure compiler\n\t * the jsdoc signatures are also used to the same effect\n\t *\n\t * ----\n\t *\n\t * int + int + int === n4 [faster]\n\t *\n\t * vs\n\t *\n\t * int === n1 && int === n2 && int === n3\n\t *\n\t * ----\n\t *\n\t * switch (int) { case ints...} [faster]\n\t *\n\t * vs\n\t *\n\t * if (int == 1 && int === 2 ...)\n\t *\n\t * ----\n\t *\n\t * The (first*n1 + second*n2 + third*n3) format used in the property parser\n\t * is a simple way to hash the sequence of characters\n\t * taking into account the index they occur in\n\t * since any number of 3 character sequences could produce duplicates.\n\t *\n\t * On the other hand sequences that are directly tied to the index of the character\n\t * resolve a far more accurate measure, it's also faster\n\t * to evaluate one condition in a switch statement\n\t * than three in an if statement regardless of the added math.\n\t *\n\t * This allows the vendor prefixer to be both small and fast.\n\t */\n\n\tvar nullptn = /^\\0+/g /* matches leading null characters */\n\tvar formatptn = /[\\0\\r\\f]/g /* matches new line, null and formfeed characters */\n\tvar colonptn = /: */g /* splits animation rules */\n\tvar cursorptn = /zoo|gra/ /* assert cursor varient */\n\tvar transformptn = /([,: ])(transform)/g /* vendor prefix transform, older webkit */\n\tvar animationptn = /,+\\s*(?![^(]*[)])/g /* splits multiple shorthand notation animations */\n\tvar propertiesptn = / +\\s*(?![^(]*[)])/g /* animation properties */\n\tvar elementptn = / *[\\0] */g /* selector elements */\n\tvar selectorptn = /,\\r+?/g /* splits selectors */\n\tvar andptn = /([\\t\\r\\n ])*\\f?&/g /* match & */\n\tvar escapeptn = /:global\\(((?:[^\\(\\)\\[\\]]*|\\[.*\\]|\\([^\\(\\)]*\\))*)\\)/g /* matches :global(.*) */\n\tvar invalidptn = /\\W+/g /* removes invalid characters from keyframes */\n\tvar keyframeptn = /@(k\\w+)\\s*(\\S*)\\s*/ /* matches @keyframes $1 */\n\tvar plcholdrptn = /::(place)/g /* match ::placeholder varient */\n\tvar readonlyptn = /:(read-only)/g /* match :read-only varient */\n\tvar beforeptn = /\\s+(?=[{\\];=:>])/g /* matches \\s before ] ; = : */\n\tvar afterptn = /([[}=:>])\\s+/g /* matches \\s after characters [ } = : */\n\tvar tailptn = /(\\{[^{]+?);(?=\\})/g /* matches tail semi-colons ;} */\n\tvar whiteptn = /\\s{2,}/g /* matches repeating whitespace */\n\tvar pseudoptn = /([^\\(])(:+) */g /* pseudo element */\n\tvar writingptn = /[svh]\\w+-[tblr]{2}/ /* match writing mode property values */\n\tvar gradientptn = /([\\w-]+t\\()/g /* match *gradient property */\n\tvar supportsptn = /\\(\\s*(.*)\\s*\\)/g /* match supports (groups) */\n\tvar propertyptn = /([\\s\\S]*?);/g /* match properties leading semicolon */\n\tvar selfptn = /-self|flex-/g /* match flex- and -self in align-self: flex-*; */\n\tvar pseudofmt = /[^]*?(:[rp][el]a[\\w-]+)[^]*/ /* extrats :readonly or :placholder from selector */\n\tvar trimptn = /[ \\t]+$/ /* match tail whitspace */\n\tvar dimensionptn = /stretch|:\\s*\\w+\\-(?:conte|avail)/ /* match max/min/fit-content, fill-available */\n\tvar imgsrcptn = /([^-])(image-set\\()/\n\n\t/* vendors */\n\tvar webkit = '-webkit-'\n\tvar moz = '-moz-'\n\tvar ms = '-ms-'\n\n\t/* character codes */\n\tvar SEMICOLON = 59 /* ; */\n\tvar CLOSEBRACES = 125 /* } */\n\tvar OPENBRACES = 123 /* { */\n\tvar OPENPARENTHESES = 40 /* ( */\n\tvar CLOSEPARENTHESES = 41 /* ) */\n\tvar OPENBRACKET = 91 /* [ */\n\tvar CLOSEBRACKET = 93 /* ] */\n\tvar NEWLINE = 10 /* \\n */\n\tvar CARRIAGE = 13 /* \\r */\n\tvar TAB = 9 /* \\t */\n\tvar AT = 64 /* @ */\n\tvar SPACE = 32 /* */\n\tvar AND = 38 /* & */\n\tvar DASH = 45 /* - */\n\tvar UNDERSCORE = 95 /* _ */\n\tvar STAR = 42 /* * */\n\tvar COMMA = 44 /* , */\n\tvar COLON = 58 /* : */\n\tvar SINGLEQUOTE = 39 /* ' */\n\tvar DOUBLEQUOTE = 34 /* \" */\n\tvar FOWARDSLASH = 47 /* / */\n\tvar GREATERTHAN = 62 /* > */\n\tvar PLUS = 43 /* + */\n\tvar TILDE = 126 /* ~ */\n\tvar NULL = 0 /* \\0 */\n\tvar FORMFEED = 12 /* \\f */\n\tvar VERTICALTAB = 11 /* \\v */\n\n\t/* special identifiers */\n\tvar KEYFRAME = 107 /* k */\n\tvar MEDIA = 109 /* m */\n\tvar SUPPORTS = 115 /* s */\n\tvar PLACEHOLDER = 112 /* p */\n\tvar READONLY = 111 /* o */\n\tvar IMPORT = 105 /* i */\n\tvar CHARSET = 99 /* c */\n\tvar DOCUMENT = 100 /* d */\n\tvar PAGE = 112 /* p */\n\n\tvar column = 1 /* current column */\n\tvar line = 1 /* current line numebr */\n\tvar pattern = 0 /* :pattern */\n\n\tvar cascade = 1 /* #id h1 h2 vs h1#id h2#id */\n\tvar prefix = 1 /* vendor prefix */\n\tvar escape = 1 /* escape :global() pattern */\n\tvar compress = 0 /* compress output */\n\tvar semicolon = 0 /* no/semicolon option */\n\tvar preserve = 0 /* preserve empty selectors */\n\n\t/* empty reference */\n\tvar array = []\n\n\t/* plugins */\n\tvar plugins = []\n\tvar plugged = 0\n\tvar should = null\n\n\t/* plugin context */\n\tvar POSTS = -2\n\tvar PREPS = -1\n\tvar UNKWN = 0\n\tvar PROPS = 1\n\tvar BLCKS = 2\n\tvar ATRUL = 3\n\n\t/* plugin newline context */\n\tvar unkwn = 0\n\n\t/* keyframe animation */\n\tvar keyed = 1\n\tvar key = ''\n\n\t/* selector namespace */\n\tvar nscopealt = ''\n\tvar nscope = ''\n\n\t/**\n\t * Compile\n\t *\n\t * @param {Array} parent\n\t * @param {Array} current\n\t * @param {string} body\n\t * @param {number} id\n\t * @param {number} depth\n\t * @return {string}\n\t */\n\tfunction compile (parent, current, body, id, depth) {\n\t\tvar bracket = 0 /* brackets [] */\n\t\tvar comment = 0 /* comments /* // or /* */\n\t\tvar parentheses = 0 /* functions () */\n\t\tvar quote = 0 /* quotes '', \"\" */\n\n\t\tvar first = 0 /* first character code */\n\t\tvar second = 0 /* second character code */\n\t\tvar code = 0 /* current character code */\n\t\tvar tail = 0 /* previous character code */\n\t\tvar trail = 0 /* character before previous code */\n\t\tvar peak = 0 /* previous non-whitespace code */\n\n\t\tvar counter = 0 /* count sequence termination */\n\t\tvar context = 0 /* track current context */\n\t\tvar atrule = 0 /* track @at-rule context */\n\t\tvar pseudo = 0 /* track pseudo token index */\n\t\tvar caret = 0 /* current character index */\n\t\tvar format = 0 /* control character formating context */\n\t\tvar insert = 0 /* auto semicolon insertion */\n\t\tvar invert = 0 /* inverted selector pattern */\n\t\tvar length = 0 /* generic length address */\n\t\tvar eof = body.length /* end of file(length) */\n\t\tvar eol = eof - 1 /* end of file(characters) */\n\n\t\tvar char = '' /* current character */\n\t\tvar chars = '' /* current buffer of characters */\n\t\tvar child = '' /* next buffer of characters */\n\t\tvar out = '' /* compiled body */\n\t\tvar children = '' /* compiled children */\n\t\tvar flat = '' /* compiled leafs */\n\t\tvar selector /* generic selector address */\n\t\tvar result /* generic address */\n\n\t\t// ...build body\n\t\twhile (caret < eof) {\n\t\t\tcode = body.charCodeAt(caret)\n\n\t\t\t// eof varient\n\t\t\tif (caret === eol) {\n\t\t\t\t// last character + noop context, add synthetic padding for noop context to terminate\n\t\t\t\tif (comment + quote + parentheses + bracket !== 0) {\n\t\t\t\t\tif (comment !== 0) {\n\t\t\t\t\t\tcode = comment === FOWARDSLASH ? NEWLINE : FOWARDSLASH\n\t\t\t\t\t}\n\n\t\t\t\t\tquote = parentheses = bracket = 0\n\t\t\t\t\teof++\n\t\t\t\t\teol++\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (comment + quote + parentheses + bracket === 0) {\n\t\t\t\t// eof varient\n\t\t\t\tif (caret === eol) {\n\t\t\t\t\tif (format > 0) {\n\t\t\t\t\t\tchars = chars.replace(formatptn, '')\n\t\t\t\t\t}\n\n\t\t\t\t\tif (chars.trim().length > 0) {\n\t\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\t\tcase SPACE:\n\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\tcase SEMICOLON:\n\t\t\t\t\t\t\tcase CARRIAGE:\n\t\t\t\t\t\t\tcase NEWLINE: {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\tchars += body.charAt(caret)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcode = SEMICOLON\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// auto semicolon insertion\n\t\t\t\tif (insert === 1) {\n\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\t// false flags\n\t\t\t\t\t\tcase OPENBRACES:\n\t\t\t\t\t\tcase CLOSEBRACES:\n\t\t\t\t\t\tcase SEMICOLON:\n\t\t\t\t\t\tcase DOUBLEQUOTE:\n\t\t\t\t\t\tcase SINGLEQUOTE:\n\t\t\t\t\t\tcase OPENPARENTHESES:\n\t\t\t\t\t\tcase CLOSEPARENTHESES:\n\t\t\t\t\t\tcase COMMA: {\n\t\t\t\t\t\t\tinsert = 0\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// ignore\n\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\tcase CARRIAGE:\n\t\t\t\t\t\tcase NEWLINE:\n\t\t\t\t\t\tcase SPACE: {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// valid\n\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\tinsert = 0\n\t\t\t\t\t\t\tlength = caret\n\t\t\t\t\t\t\tfirst = code\n\t\t\t\t\t\t\tcaret--\n\t\t\t\t\t\t\tcode = SEMICOLON\n\n\t\t\t\t\t\t\twhile (length < eof) {\n\t\t\t\t\t\t\t\tswitch (body.charCodeAt(length++)) {\n\t\t\t\t\t\t\t\t\tcase NEWLINE:\n\t\t\t\t\t\t\t\t\tcase CARRIAGE:\n\t\t\t\t\t\t\t\t\tcase SEMICOLON: {\n\t\t\t\t\t\t\t\t\t\t++caret\n\t\t\t\t\t\t\t\t\t\tcode = first\n\t\t\t\t\t\t\t\t\t\tlength = eof\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcase COLON: {\n\t\t\t\t\t\t\t\t\t\tif (format > 0) {\n\t\t\t\t\t\t\t\t\t\t\t++caret\n\t\t\t\t\t\t\t\t\t\t\tcode = first\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcase OPENBRACES: {\n\t\t\t\t\t\t\t\t\t\tlength = eof\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// token varient\n\t\t\t\tswitch (code) {\n\t\t\t\t\tcase OPENBRACES: {\n\t\t\t\t\t\tchars = chars.trim()\n\t\t\t\t\t\tfirst = chars.charCodeAt(0)\n\t\t\t\t\t\tcounter = 1\n\t\t\t\t\t\tlength = ++caret\n\n\t\t\t\t\t\twhile (caret < eof) {\n\t\t\t\t\t\t\tswitch (code = body.charCodeAt(caret)) {\n\t\t\t\t\t\t\t\tcase OPENBRACES: {\n\t\t\t\t\t\t\t\t\tcounter++\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase CLOSEBRACES: {\n\t\t\t\t\t\t\t\t\tcounter--\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase FOWARDSLASH: {\n\t\t\t\t\t\t\t\t\tswitch (second = body.charCodeAt(caret + 1)) {\n\t\t\t\t\t\t\t\t\t\t// /*, //\n\t\t\t\t\t\t\t\t\t\tcase STAR:\n\t\t\t\t\t\t\t\t\t\tcase FOWARDSLASH: {\n\t\t\t\t\t\t\t\t\t\t\tcaret = delimited(second, caret, eol, body)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// given \"[\" === 91 & \"]\" === 93 hence forth 91 + 1 + 1 === 93\n\t\t\t\t\t\t\t\tcase OPENBRACKET: {\n\t\t\t\t\t\t\t\t\tcode++\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// given \"(\" === 40 & \")\" === 41 hence forth 40 + 1 === 41\n\t\t\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\t\t\tcode++\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// quote tail delimiter is identical to the head delimiter hence noop,\n\t\t\t\t\t\t\t\t// fallthrough clauses have been shifted to the correct tail delimiter\n\t\t\t\t\t\t\t\tcase DOUBLEQUOTE:\n\t\t\t\t\t\t\t\tcase SINGLEQUOTE: {\n\t\t\t\t\t\t\t\t\twhile (caret++ < eol) {\n\t\t\t\t\t\t\t\t\t\tif (body.charCodeAt(caret) === code) {\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (counter === 0) {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tcaret++\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tchild = body.substring(length, caret)\n\n\t\t\t\t\t\tif (first === NULL) {\n\t\t\t\t\t\t\tfirst = (chars = chars.replace(nullptn, '').trim()).charCodeAt(0)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tswitch (first) {\n\t\t\t\t\t\t\t// @at-rule\n\t\t\t\t\t\t\tcase AT: {\n\t\t\t\t\t\t\t\tif (format > 0) {\n\t\t\t\t\t\t\t\t\tchars = chars.replace(formatptn, '')\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tsecond = chars.charCodeAt(1)\n\n\t\t\t\t\t\t\t\tswitch (second) {\n\t\t\t\t\t\t\t\t\tcase DOCUMENT:\n\t\t\t\t\t\t\t\t\tcase MEDIA:\n\t\t\t\t\t\t\t\t\tcase SUPPORTS:\n\t\t\t\t\t\t\t\t\tcase DASH: {\n\t\t\t\t\t\t\t\t\t\tselector = current\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\tselector = array\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tchild = compile(current, selector, child, second, depth+1)\n\t\t\t\t\t\t\t\tlength = child.length\n\n\t\t\t\t\t\t\t\t// preserve empty @at-rule\n\t\t\t\t\t\t\t\tif (preserve > 0 && length === 0) {\n\t\t\t\t\t\t\t\t\tlength = chars.length\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// execute plugins, @at-rule context\n\t\t\t\t\t\t\t\tif (plugged > 0) {\n\t\t\t\t\t\t\t\t\tselector = select(array, chars, invert)\n\t\t\t\t\t\t\t\t\tresult = proxy(ATRUL, child, selector, current, line, column, length, second, depth, id)\n\t\t\t\t\t\t\t\t\tchars = selector.join('')\n\n\t\t\t\t\t\t\t\t\tif (result !== void 0) {\n\t\t\t\t\t\t\t\t\t\tif ((length = (child = result.trim()).length) === 0) {\n\t\t\t\t\t\t\t\t\t\t\tsecond = 0\n\t\t\t\t\t\t\t\t\t\t\tchild = ''\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (length > 0) {\n\t\t\t\t\t\t\t\t\tswitch (second) {\n\t\t\t\t\t\t\t\t\t\tcase SUPPORTS: {\n\t\t\t\t\t\t\t\t\t\t\tchars = chars.replace(supportsptn, supports)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcase DOCUMENT:\n\t\t\t\t\t\t\t\t\t\tcase MEDIA:\n\t\t\t\t\t\t\t\t\t\tcase DASH: {\n\t\t\t\t\t\t\t\t\t\t\tchild = chars + '{' + child + '}'\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcase KEYFRAME: {\n\t\t\t\t\t\t\t\t\t\t\tchars = chars.replace(keyframeptn, '$1 $2' + (keyed > 0 ? key : ''))\n\t\t\t\t\t\t\t\t\t\t\tchild = chars + '{' + child + '}'\n\n\t\t\t\t\t\t\t\t\t\t\tif (prefix === 1 || (prefix === 2 && vendor('@'+child, 3))) {\n\t\t\t\t\t\t\t\t\t\t\t\tchild = '@' + webkit + child + '@' + child\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tchild = '@' + child\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\tchild = chars + child\n\n\t\t\t\t\t\t\t\t\t\t\tif (id === PAGE) {\n\t\t\t\t\t\t\t\t\t\t\t\tchild = (out += child, '')\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tchild = ''\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// selector\n\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\tchild = compile(current, select(current, chars, invert), child, id, depth+1)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tchildren += child\n\n\t\t\t\t\t\t// reset\n\t\t\t\t\t\tcontext = 0\n\t\t\t\t\t\tinsert = 0\n\t\t\t\t\t\tpseudo = 0\n\t\t\t\t\t\tformat = 0\n\t\t\t\t\t\tinvert = 0\n\t\t\t\t\t\tatrule = 0\n\t\t\t\t\t\tchars = ''\n\t\t\t\t\t\tchild = ''\n\t\t\t\t\t\tcode = body.charCodeAt(++caret)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase CLOSEBRACES:\n\t\t\t\t\tcase SEMICOLON: {\n\t\t\t\t\t\tchars = (format > 0 ? chars.replace(formatptn, '') : chars).trim()\n\n\t\t\t\t\t\tif ((length = chars.length) > 1) {\n\t\t\t\t\t\t\t// monkey-patch missing colon\n\t\t\t\t\t\t\tif (pseudo === 0) {\n\t\t\t\t\t\t\t\tfirst = chars.charCodeAt(0)\n\n\t\t\t\t\t\t\t\t// first character is a letter or dash, buffer has a space character\n\t\t\t\t\t\t\t\tif ((first === DASH || first > 96 && first < 123)) {\n\t\t\t\t\t\t\t\t\tlength = (chars = chars.replace(' ', ':')).length\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// execute plugins, property context\n\t\t\t\t\t\t\tif (plugged > 0) {\n\t\t\t\t\t\t\t\tif ((result = proxy(PROPS, chars, current, parent, line, column, out.length, id, depth, id)) !== void 0) {\n\t\t\t\t\t\t\t\t\tif ((length = (chars = result.trim()).length) === 0) {\n\t\t\t\t\t\t\t\t\t\tchars = '\\0\\0'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfirst = chars.charCodeAt(0)\n\t\t\t\t\t\t\tsecond = chars.charCodeAt(1)\n\n\t\t\t\t\t\t\tswitch (first) {\n\t\t\t\t\t\t\t\tcase NULL: {\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase AT: {\n\t\t\t\t\t\t\t\t\tif (second === IMPORT || second === CHARSET) {\n\t\t\t\t\t\t\t\t\t\tflat += chars + body.charAt(caret)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\tif (chars.charCodeAt(length-1) === COLON) {\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tout += property(chars, first, second, chars.charCodeAt(2))\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// reset\n\t\t\t\t\t\tcontext = 0\n\t\t\t\t\t\tinsert = 0\n\t\t\t\t\t\tpseudo = 0\n\t\t\t\t\t\tformat = 0\n\t\t\t\t\t\tinvert = 0\n\t\t\t\t\t\tchars = ''\n\t\t\t\t\t\tcode = body.charCodeAt(++caret)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// parse characters\n\t\t\tswitch (code) {\n\t\t\t\tcase CARRIAGE:\n\t\t\t\tcase NEWLINE: {\n\t\t\t\t\t// auto insert semicolon\n\t\t\t\t\tif (comment + quote + parentheses + bracket + semicolon === 0) {\n\t\t\t\t\t\t// valid non-whitespace characters that\n\t\t\t\t\t\t// may precede a newline\n\t\t\t\t\t\tswitch (peak) {\n\t\t\t\t\t\t\tcase CLOSEPARENTHESES:\n\t\t\t\t\t\t\tcase SINGLEQUOTE:\n\t\t\t\t\t\t\tcase DOUBLEQUOTE:\n\t\t\t\t\t\t\tcase AT:\n\t\t\t\t\t\t\tcase TILDE:\n\t\t\t\t\t\t\tcase GREATERTHAN:\n\t\t\t\t\t\t\tcase STAR:\n\t\t\t\t\t\t\tcase PLUS:\n\t\t\t\t\t\t\tcase FOWARDSLASH:\n\t\t\t\t\t\t\tcase DASH:\n\t\t\t\t\t\t\tcase COLON:\n\t\t\t\t\t\t\tcase COMMA:\n\t\t\t\t\t\t\tcase SEMICOLON:\n\t\t\t\t\t\t\tcase OPENBRACES:\n\t\t\t\t\t\t\tcase CLOSEBRACES: {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t// current buffer has a colon\n\t\t\t\t\t\t\t\tif (pseudo > 0) {\n\t\t\t\t\t\t\t\t\tinsert = 1\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// terminate line comment\n\t\t\t\t\tif (comment === FOWARDSLASH) {\n\t\t\t\t\t\tcomment = 0\n\t\t\t\t\t} else if (cascade + context === 0 && id !== KEYFRAME && chars.length > 0) {\n\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\tchars += '\\0'\n\t\t\t\t\t}\n\n\t\t\t\t\t// execute plugins, newline context\n\t\t\t\t\tif (plugged * unkwn > 0) {\n\t\t\t\t\t\tproxy(UNKWN, chars, current, parent, line, column, out.length, id, depth, id)\n\t\t\t\t\t}\n\n\t\t\t\t\t// next line, reset column position\n\t\t\t\t\tcolumn = 1\n\t\t\t\t\tline++\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tcase SEMICOLON:\n\t\t\t\tcase CLOSEBRACES: {\n\t\t\t\t\tif (comment + quote + parentheses + bracket === 0) {\n\t\t\t\t\t\tcolumn++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\t// increment column position\n\t\t\t\t\tcolumn++\n\n\t\t\t\t\t// current character\n\t\t\t\t\tchar = body.charAt(caret)\n\n\t\t\t\t\t// remove comments, escape functions, strings, attributes and prepare selectors\n\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\tcase SPACE: {\n\t\t\t\t\t\t\tif (quote + bracket + comment === 0) {\n\t\t\t\t\t\t\t\tswitch (tail) {\n\t\t\t\t\t\t\t\t\tcase COMMA:\n\t\t\t\t\t\t\t\t\tcase COLON:\n\t\t\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\t\t\tcase SPACE: {\n\t\t\t\t\t\t\t\t\t\tchar = ''\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\tif (code !== SPACE) {\n\t\t\t\t\t\t\t\t\t\t\tchar = ' '\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// escape breaking control characters\n\t\t\t\t\t\tcase NULL: {\n\t\t\t\t\t\t\tchar = '\\\\0'\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase FORMFEED: {\n\t\t\t\t\t\t\tchar = '\\\\f'\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase VERTICALTAB: {\n\t\t\t\t\t\t\tchar = '\\\\v'\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// &\n\t\t\t\t\t\tcase AND: {\n\t\t\t\t\t\t\t// inverted selector pattern i.e html &\n\t\t\t\t\t\t\tif (quote + comment + bracket === 0 && cascade > 0) {\n\t\t\t\t\t\t\t\tinvert = 1\n\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\tchar = '\\f' + char\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// ::paceholder, l\n\t\t\t\t\t\t// :read-ony, l\n\t\t\t\t\t\tcase 108: {\n\t\t\t\t\t\t\tif (quote + comment + bracket + pattern === 0 && pseudo > 0) {\n\t\t\t\t\t\t\t\tswitch (caret - pseudo) {\n\t\t\t\t\t\t\t\t\t// ::placeholder\n\t\t\t\t\t\t\t\t\tcase 2: {\n\t\t\t\t\t\t\t\t\t\tif (tail === PLACEHOLDER && body.charCodeAt(caret-3) === COLON) {\n\t\t\t\t\t\t\t\t\t\t\tpattern = tail\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// :read-only\n\t\t\t\t\t\t\t\t\tcase 8: {\n\t\t\t\t\t\t\t\t\t\tif (trail === READONLY) {\n\t\t\t\t\t\t\t\t\t\t\tpattern = trail\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase COLON: {\n\t\t\t\t\t\t\tif (quote + comment + bracket === 0) {\n\t\t\t\t\t\t\t\tpseudo = caret\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// selectors\n\t\t\t\t\t\tcase COMMA: {\n\t\t\t\t\t\t\tif (comment + parentheses + quote + bracket === 0) {\n\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\tchar += '\\r'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// quotes\n\t\t\t\t\t\tcase DOUBLEQUOTE:\n\t\t\t\t\t\tcase SINGLEQUOTE: {\n\t\t\t\t\t\t\tif (comment === 0) {\n\t\t\t\t\t\t\t\tquote = quote === code ? 0 : (quote === 0 ? code : quote)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// attributes\n\t\t\t\t\t\tcase OPENBRACKET: {\n\t\t\t\t\t\t\tif (quote + comment + parentheses === 0) {\n\t\t\t\t\t\t\t\tbracket++\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase CLOSEBRACKET: {\n\t\t\t\t\t\t\tif (quote + comment + parentheses === 0) {\n\t\t\t\t\t\t\t\tbracket--\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// functions\n\t\t\t\t\t\tcase CLOSEPARENTHESES: {\n\t\t\t\t\t\t\tif (quote + comment + bracket === 0) {\n\t\t\t\t\t\t\t\tparentheses--\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\tif (quote + comment + bracket === 0) {\n\t\t\t\t\t\t\t\tif (context === 0) {\n\t\t\t\t\t\t\t\t\tswitch (tail*2 + trail*3) {\n\t\t\t\t\t\t\t\t\t\t// :matches\n\t\t\t\t\t\t\t\t\t\tcase 533: {\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// :global, :not, :nth-child etc...\n\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\tcounter = 0\n\t\t\t\t\t\t\t\t\t\t\tcontext = 1\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tparentheses++\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase AT: {\n\t\t\t\t\t\t\tif (comment + parentheses + quote + bracket + pseudo + atrule === 0) {\n\t\t\t\t\t\t\t\tatrule = 1\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// block/line comments\n\t\t\t\t\t\tcase STAR:\n\t\t\t\t\t\tcase FOWARDSLASH: {\n\t\t\t\t\t\t\tif (quote + bracket + parentheses > 0) {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tswitch (comment) {\n\t\t\t\t\t\t\t\t// initialize line/block comment context\n\t\t\t\t\t\t\t\tcase 0: {\n\t\t\t\t\t\t\t\t\tswitch (code*2 + body.charCodeAt(caret+1)*3) {\n\t\t\t\t\t\t\t\t\t\t// //\n\t\t\t\t\t\t\t\t\t\tcase 235: {\n\t\t\t\t\t\t\t\t\t\t\tcomment = FOWARDSLASH\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// /*\n\t\t\t\t\t\t\t\t\t\tcase 220: {\n\t\t\t\t\t\t\t\t\t\t\tlength = caret\n\t\t\t\t\t\t\t\t\t\t\tcomment = STAR\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// end block comment context\n\t\t\t\t\t\t\t\tcase STAR: {\n\t\t\t\t\t\t\t\t\tif (code === FOWARDSLASH && tail === STAR && length + 2 !== caret) {\n\t\t\t\t\t\t\t\t\t\t// /* ... */, !\n\t\t\t\t\t\t\t\t\t\tif (body.charCodeAt(length+2) === 33) {\n\t\t\t\t\t\t\t\t\t\t\tout += body.substring(length, caret+1)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tchar = ''\n\t\t\t\t\t\t\t\t\t\tcomment = 0\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// ignore comment blocks\n\t\t\t\t\tif (comment === 0) {\n\t\t\t\t\t\t// aggressive isolation mode, divide each individual selector\n\t\t\t\t\t\t// including selectors in :not function but excluding selectors in :global function\n\t\t\t\t\t\tif (cascade + quote + bracket + atrule === 0 && id !== KEYFRAME && code !== SEMICOLON) {\n\t\t\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\t\t\tcase COMMA:\n\t\t\t\t\t\t\t\tcase TILDE:\n\t\t\t\t\t\t\t\tcase GREATERTHAN:\n\t\t\t\t\t\t\t\tcase PLUS:\n\t\t\t\t\t\t\t\tcase CLOSEPARENTHESES:\n\t\t\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\t\t\tif (context === 0) {\n\t\t\t\t\t\t\t\t\t\t// outside of an isolated context i.e nth-child(<...>)\n\t\t\t\t\t\t\t\t\t\tswitch (tail) {\n\t\t\t\t\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\t\t\t\t\tcase SPACE:\n\t\t\t\t\t\t\t\t\t\t\tcase NEWLINE:\n\t\t\t\t\t\t\t\t\t\t\tcase CARRIAGE: {\n\t\t\t\t\t\t\t\t\t\t\t\tchar = char + '\\0'\n\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\t\tchar = '\\0' + char + (code === COMMA ? '' : '\\0')\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t// within an isolated context, sleep untill it's terminated\n\t\t\t\t\t\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\t\t\t\t\t\t// :globa(\n\t\t\t\t\t\t\t\t\t\t\t\tif (pseudo + 7 === caret && tail === 108) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tpseudo = 0\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tcontext = ++counter\n\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tcase CLOSEPARENTHESES: {\n\t\t\t\t\t\t\t\t\t\t\t\tif ((context = --counter) === 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\t\t\t\t\t\tchar += '\\0'\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\t\tcase SPACE: {\n\t\t\t\t\t\t\t\t\tswitch (tail) {\n\t\t\t\t\t\t\t\t\t\tcase NULL:\n\t\t\t\t\t\t\t\t\t\tcase OPENBRACES:\n\t\t\t\t\t\t\t\t\t\tcase CLOSEBRACES:\n\t\t\t\t\t\t\t\t\t\tcase SEMICOLON:\n\t\t\t\t\t\t\t\t\t\tcase COMMA:\n\t\t\t\t\t\t\t\t\t\tcase FORMFEED:\n\t\t\t\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\t\t\t\tcase SPACE:\n\t\t\t\t\t\t\t\t\t\tcase NEWLINE:\n\t\t\t\t\t\t\t\t\t\tcase CARRIAGE: {\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\t// ignore in isolated contexts\n\t\t\t\t\t\t\t\t\t\t\tif (context === 0) {\n\t\t\t\t\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\t\t\t\t\tchar += '\\0'\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// concat buffer of characters\n\t\t\t\t\t\tchars += char\n\n\t\t\t\t\t\t// previous non-whitespace character code\n\t\t\t\t\t\tif (code !== SPACE && code !== TAB) {\n\t\t\t\t\t\t\tpeak = code\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// tail character codes\n\t\t\ttrail = tail\n\t\t\ttail = code\n\n\t\t\t// visit every character\n\t\t\tcaret++\n\t\t}\n\n\t\tlength = out.length\n\n\t\t// preserve empty selector\n \t\tif (preserve > 0) {\n \t\t\tif (length === 0 && children.length === 0 && (current[0].length === 0) === false) {\n \t\t\t\tif (id !== MEDIA || (current.length === 1 && (cascade > 0 ? nscopealt : nscope) === current[0])) {\n\t\t\t\t\tlength = current.join(',').length + 2\n \t\t\t\t}\n \t\t\t}\n\t\t}\n\n\t\tif (length > 0) {\n\t\t\t// cascade isolation mode?\n\t\t\tselector = cascade === 0 && id !== KEYFRAME ? isolate(current) : current\n\n\t\t\t// execute plugins, block context\n\t\t\tif (plugged > 0) {\n\t\t\t\tresult = proxy(BLCKS, out, selector, parent, line, column, length, id, depth, id)\n\n\t\t\t\tif (result !== void 0 && (out = result).length === 0) {\n\t\t\t\t\treturn flat + out + children\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tout = selector.join(',') + '{' + out + '}'\n\n\t\t\tif (prefix*pattern !== 0) {\n\t\t\t\tif (prefix === 2 && !vendor(out, 2))\n\t\t\t\t\tpattern = 0\n\n\t\t\t\tswitch (pattern) {\n\t\t\t\t\t// ::read-only\n\t\t\t\t\tcase READONLY: {\n\t\t\t\t\t\tout = out.replace(readonlyptn, ':'+moz+'$1')+out\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t// ::placeholder\n\t\t\t\t\tcase PLACEHOLDER: {\n\t\t\t\t\t\tout = (\n\t\t\t\t\t\t\tout.replace(plcholdrptn, '::' + webkit + 'input-$1') +\n\t\t\t\t\t\t\tout.replace(plcholdrptn, '::' + moz + '$1') +\n\t\t\t\t\t\t\tout.replace(plcholdrptn, ':' + ms + 'input-$1') + out\n\t\t\t\t\t\t)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tpattern = 0\n\t\t\t}\n\t\t}\n\n\t\treturn flat + out + children\n\t}\n\n\t/**\n\t * Select\n\t *\n\t * @param {Array} parent\n\t * @param {string} current\n\t * @param {number} invert\n\t * @return {Array}\n\t */\n\tfunction select (parent, current, invert) {\n\t\tvar selectors = current.trim().split(selectorptn)\n\t\tvar out = selectors\n\n\t\tvar length = selectors.length\n\t\tvar l = parent.length\n\n\t\tswitch (l) {\n\t\t\t// 0-1 parent selectors\n\t\t\tcase 0:\n\t\t\tcase 1: {\n\t\t\t\tfor (var i = 0, selector = l === 0 ? '' : parent[0] + ' '; i < length; ++i) {\n\t\t\t\t\tout[i] = scope(selector, out[i], invert, l).trim()\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// >2 parent selectors, nested\n\t\t\tdefault: {\n\t\t\t\tfor (var i = 0, j = 0, out = []; i < length; ++i) {\n\t\t\t\t\tfor (var k = 0; k < l; ++k) {\n\t\t\t\t\t\tout[j++] = scope(parent[k] + ' ', selectors[i], invert, l).trim()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn out\n\t}\n\n\t/**\n\t * Scope\n\t *\n\t * @param {string} parent\n\t * @param {string} current\n\t * @param {number} invert\n\t * @param {number} level\n\t * @return {string}\n\t */\n\tfunction scope (parent, current, invert, level) {\n\t\tvar selector = current\n\t\tvar code = selector.charCodeAt(0)\n\n\t\t// trim leading whitespace\n\t\tif (code < 33) {\n\t\t\tcode = (selector = selector.trim()).charCodeAt(0)\n\t\t}\n\n\t\tswitch (code) {\n\t\t\t// &\n\t\t\tcase AND: {\n\t\t\t\tswitch (cascade + level) {\n\t\t\t\t\tcase 0:\n\t\t\t\t\tcase 1: {\n\t\t\t\t\t\tif (parent.trim().length === 0) {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\treturn selector.replace(andptn, '$1'+parent.trim())\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// :\n\t\t\tcase COLON: {\n\t\t\t\tswitch (selector.charCodeAt(1)) {\n\t\t\t\t\t// g in :global\n\t\t\t\t\tcase 103: {\n\t\t\t\t\t\tif (escape > 0 && cascade > 0) {\n\t\t\t\t\t\t\treturn selector.replace(escapeptn, '$1').replace(andptn, '$1'+nscope)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\t// :hover\n\t\t\t\t\t\treturn parent.trim() + selector.replace(andptn, '$1'+parent.trim())\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\t// html &\n\t\t\t\tif (invert*cascade > 0 && selector.indexOf('\\f') > 0) {\n\t\t\t\t\treturn selector.replace(andptn, (parent.charCodeAt(0) === COLON ? '' : '$1')+parent.trim())\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn parent + selector\n\t}\n\n\t/**\n\t * Property\n\t *\n\t * @param {string} input\n\t * @param {number} first\n\t * @param {number} second\n\t * @param {number} third\n\t * @return {string}\n\t */\n\tfunction property (input, first, second, third) {\n\t\tvar index = 0\n\t\tvar out = input + ';'\n\t\tvar hash = (first*2) + (second*3) + (third*4)\n\t\tvar cache\n\n\t\t// animation: a, n, i characters\n\t\tif (hash === 944) {\n\t\t\treturn animation(out)\n\t\t} else if (prefix === 0 || (prefix === 2 && !vendor(out, 1))) {\n\t\t\treturn out\n\t\t}\n\n\t\t// vendor prefix\n\t\tswitch (hash) {\n\t\t\t// text-decoration/text-size-adjust/text-shadow/text-align/text-transform: t, e, x\n\t\t\tcase 1015: {\n\t\t\t\t// text-shadow/text-align/text-transform, a\n\t\t\t\treturn out.charCodeAt(10) === 97 ? webkit + out + out : out\n\t\t\t}\n\t\t\t// filter/fill f, i, l\n\t\t\tcase 951: {\n\t\t\t\t// filter, t\n\t\t\t\treturn out.charCodeAt(3) === 116 ? webkit + out + out : out\n\t\t\t}\n\t\t\t// color/column, c, o, l\n\t\t\tcase 963: {\n\t\t\t\t// column, n\n\t\t\t\treturn out.charCodeAt(5) === 110 ? webkit + out + out : out\n\t\t\t}\n\t\t\t// box-decoration-break, b, o, x\n\t\t\tcase 1009: {\n\t\t\t\tif (out.charCodeAt(4) !== 100) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\t// mask, m, a, s\n\t\t\t// clip-path, c, l, i\n\t\t\tcase 969:\n\t\t\tcase 942: {\n\t\t\t\treturn webkit + out + out\n\t\t\t}\n\t\t\t// appearance: a, p, p\n\t\t\tcase 978: {\n\t\t\t\treturn webkit + out + moz + out + out\n\t\t\t}\n\t\t\t// hyphens: h, y, p\n\t\t\t// user-select: u, s, e\n\t\t\tcase 1019:\n\t\t\tcase 983: {\n\t\t\t\treturn webkit + out + moz + out + ms + out + out\n\t\t\t}\n\t\t\t// background/backface-visibility, b, a, c\n\t\t\tcase 883: {\n\t\t\t\t// backface-visibility, -\n\t\t\t\tif (out.charCodeAt(8) === DASH) {\n\t\t\t\t\treturn webkit + out + out\n\t\t\t\t}\n\n\t\t\t\t// image-set(...)\n\t\t\t\tif (out.indexOf('image-set(', 11) > 0) {\n\t\t\t\t\treturn out.replace(imgsrcptn, '$1'+webkit+'$2') + out\n\t\t\t\t}\n\n\t\t\t\treturn out\n\t\t\t}\n\t\t\t// flex: f, l, e\n\t\t\tcase 932: {\n\t\t\t\tif (out.charCodeAt(4) === DASH) {\n\t\t\t\t\tswitch (out.charCodeAt(5)) {\n\t\t\t\t\t\t// flex-grow, g\n\t\t\t\t\t\tcase 103: {\n\t\t\t\t\t\t\treturn webkit + 'box-' + out.replace('-grow', '') + webkit + out + ms + out.replace('grow', 'positive') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// flex-shrink, s\n\t\t\t\t\t\tcase 115: {\n\t\t\t\t\t\t\treturn webkit + out + ms + out.replace('shrink', 'negative') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// flex-basis, b\n\t\t\t\t\t\tcase 98: {\n\t\t\t\t\t\t\treturn webkit + out + ms + out.replace('basis', 'preferred-size') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn webkit + out + ms + out + out\n\t\t\t}\n\t\t\t// order: o, r, d\n\t\t\tcase 964: {\n\t\t\t\treturn webkit + out + ms + 'flex' + '-' + out + out\n\t\t\t}\n\t\t\t// justify-items/justify-content, j, u, s\n\t\t\tcase 1023: {\n\t\t\t\t// justify-content, c\n\t\t\t\tif (out.charCodeAt(8) !== 99) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\n\t\t\t\tcache = out.substring(out.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify')\n\t\t\t\treturn webkit + 'box-pack' + cache + webkit + out + ms + 'flex-pack' + cache + out\n\t\t\t}\n\t\t\t// cursor, c, u, r\n\t\t\tcase 1005: {\n\t\t\t\treturn cursorptn.test(out) ? out.replace(colonptn, ':' + webkit) + out.replace(colonptn, ':' + moz) + out : out\n\t\t\t}\n\t\t\t// writing-mode, w, r, i\n\t\t\tcase 1000: {\n\t\t\t\tcache = out.substring(13).trim()\n\t\t\t\tindex = cache.indexOf('-') + 1\n\n\t\t\t\tswitch (cache.charCodeAt(0)+cache.charCodeAt(index)) {\n\t\t\t\t\t// vertical-lr\n\t\t\t\t\tcase 226: {\n\t\t\t\t\t\tcache = out.replace(writingptn, 'tb')\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t// vertical-rl\n\t\t\t\t\tcase 232: {\n\t\t\t\t\t\tcache = out.replace(writingptn, 'tb-rl')\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t// horizontal-tb\n\t\t\t\t\tcase 220: {\n\t\t\t\t\t\tcache = out.replace(writingptn, 'lr')\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\treturn out\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn webkit + out + ms + cache + out\n\t\t\t}\n\t\t\t// position: sticky\n\t\t\tcase 1017: {\n\t\t\t\tif (out.indexOf('sticky', 9) === -1) {\n\t\t\t\t\treturn out\n\t\t\t\t}\n\t\t\t}\n\t\t\t// display(flex/inline-flex/inline-box): d, i, s\n\t\t\tcase 975: {\n\t\t\t\tindex = (out = input).length - 10\n\t\t\t\tcache = (out.charCodeAt(index) === 33 ? out.substring(0, index) : out).substring(input.indexOf(':', 7) + 1).trim()\n\n\t\t\t\tswitch (hash = cache.charCodeAt(0) + (cache.charCodeAt(7)|0)) {\n\t\t\t\t\t// inline-\n\t\t\t\t\tcase 203: {\n\t\t\t\t\t\t// inline-box\n\t\t\t\t\t\tif (cache.charCodeAt(8) < 111) {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// inline-box/sticky\n\t\t\t\t\tcase 115: {\n\t\t\t\t\t\tout = out.replace(cache, webkit+cache)+';'+out\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t// inline-flex\n\t\t\t\t\t// flex\n\t\t\t\t\tcase 207:\n\t\t\t\t\tcase 102: {\n\t\t\t\t\t\tout = (\n\t\t\t\t\t\t\tout.replace(cache, webkit+(hash > 102 ? 'inline-' : '')+'box')+';'+\n\t\t\t\t\t\t\tout.replace(cache, webkit+cache)+';'+\n\t\t\t\t\t\t\tout.replace(cache, ms+cache+'box')+';'+\n\t\t\t\t\t\t\tout\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn out + ';'\n\t\t\t}\n\t\t\t// align-items, align-center, align-self: a, l, i, -\n\t\t\tcase 938: {\n\t\t\t\tif (out.charCodeAt(5) === DASH) {\n\t\t\t\t\tswitch (out.charCodeAt(6)) {\n\t\t\t\t\t\t// align-items, i\n\t\t\t\t\t\tcase 105: {\n\t\t\t\t\t\t\tcache = out.replace('-items', '')\n\t\t\t\t\t\t\treturn webkit + out + webkit + 'box-' + cache + ms + 'flex-' + cache + out\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// align-self, s\n\t\t\t\t\t\tcase 115: {\n\t\t\t\t\t\t\treturn webkit + out + ms + 'flex-item-' + out.replace(selfptn, '') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// align-content\n\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\treturn webkit + out + ms + 'flex-line-pack' + out.replace('align-content', '').replace(selfptn, '') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// min/max\n\t\t\tcase 973:\n\t\t\tcase 989: {\n\t\t\t\t// min-/max- height/width/block-size/inline-size\n\t\t\t\tif (out.charCodeAt(3) !== DASH || out.charCodeAt(4) === 122) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\t// height/width: min-content / width: max-content\n\t\t\tcase 931:\n\t\t\tcase 953: {\n\t\t\t\tif (dimensionptn.test(input) === true) {\n\t\t\t\t\t// stretch\n\t\t\t\t\tif ((cache = input.substring(input.indexOf(':') + 1)).charCodeAt(0) === 115)\n\t\t\t\t\t\treturn property(input.replace('stretch', 'fill-available'), first, second, third).replace(':fill-available', ':stretch')\n\t\t\t\t\telse\n\t\t\t\t\t\treturn out.replace(cache, webkit + cache) + out.replace(cache, moz + cache.replace('fill-', '')) + out\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// transform, transition: t, r, a\n\t\t\tcase 962: {\n\t\t\t\tout = webkit + out + (out.charCodeAt(5) === 102 ? ms + out : '') + out\n\n\t\t\t\t// transitions\n\t\t\t\tif (second + third === 211 && out.charCodeAt(13) === 105 && out.indexOf('transform', 10) > 0) {\n\t\t\t\t\treturn out.substring(0, out.indexOf(';', 27) + 1).replace(transformptn, '$1' + webkit + '$2') + out\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\treturn out\n\t}\n\n\t/**\n\t * Vendor\n\t *\n\t * @param {string} content\n\t * @param {number} context\n\t * @return {boolean}\n\t */\n\tfunction vendor (content, context) {\n\t\tvar index = content.indexOf(context === 1 ? ':' : '{')\n\t\tvar key = content.substring(0, context !== 3 ? index : 10)\n\t\tvar value = content.substring(index + 1, content.length - 1)\n\n\t\treturn should(context !== 2 ? key : key.replace(pseudofmt, '$1'), value, context)\n\t}\n\n\t/**\n\t * Supports\n\t *\n\t * @param {string} match\n\t * @param {string} group\n\t * @return {string}\n\t */\n\tfunction supports (match, group) {\n\t\tvar out = property(group, group.charCodeAt(0), group.charCodeAt(1), group.charCodeAt(2))\n\n\t\treturn out !== group+';' ? out.replace(propertyptn, ' or ($1)').substring(4) : '('+group+')'\n\t}\n\n\t/**\n\t * Animation\n\t *\n\t * @param {string} input\n\t * @return {string}\n\t */\n\tfunction animation (input) {\n\t\tvar length = input.length\n\t\tvar index = input.indexOf(':', 9) + 1\n\t\tvar declare = input.substring(0, index).trim()\n\t\tvar out = input.substring(index, length-1).trim()\n\n\t\tswitch (input.charCodeAt(9)*keyed) {\n\t\t\tcase 0: {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// animation-*, -\n\t\t\tcase DASH: {\n\t\t\t\t// animation-name, n\n\t\t\t\tif (input.charCodeAt(10) !== 110) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\t// animation/animation-name\n\t\t\tdefault: {\n\t\t\t\t// split in case of multiple animations\n\t\t\t\tvar list = out.split((out = '', animationptn))\n\n\t\t\t\tfor (var i = 0, index = 0, length = list.length; i < length; index = 0, ++i) {\n\t\t\t\t\tvar value = list[i]\n\t\t\t\t\tvar items = value.split(propertiesptn)\n\n\t\t\t\t\twhile (value = items[index]) {\n\t\t\t\t\t\tvar peak = value.charCodeAt(0)\n\n\t\t\t\t\t\tif (keyed === 1 && (\n\t\t\t\t\t\t\t// letters\n\t\t\t\t\t\t\t(peak > AT && peak < 90) || (peak > 96 && peak < 123) || peak === UNDERSCORE ||\n\t\t\t\t\t\t\t// dash but not in sequence i.e --\n\t\t\t\t\t\t\t(peak === DASH && value.charCodeAt(1) !== DASH)\n\t\t\t\t\t\t)) {\n\t\t\t\t\t\t\t// not a number/function\n\t\t\t\t\t\t\tswitch (isNaN(parseFloat(value)) + (value.indexOf('(') !== -1)) {\n\t\t\t\t\t\t\t\tcase 1: {\n\t\t\t\t\t\t\t\t\tswitch (value) {\n\t\t\t\t\t\t\t\t\t\t// not a valid reserved keyword\n\t\t\t\t\t\t\t\t\t\tcase 'infinite': case 'alternate': case 'backwards': case 'running':\n\t\t\t\t\t\t\t\t\t\tcase 'normal': case 'forwards': case 'both': case 'none': case 'linear':\n\t\t\t\t\t\t\t\t\t\tcase 'ease': case 'ease-in': case 'ease-out': case 'ease-in-out':\n\t\t\t\t\t\t\t\t\t\tcase 'paused': case 'reverse': case 'alternate-reverse': case 'inherit':\n\t\t\t\t\t\t\t\t\t\tcase 'initial': case 'unset': case 'step-start': case 'step-end': {\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\tvalue += key\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\titems[index++] = value\n\t\t\t\t\t}\n\n\t\t\t\t\tout += (i === 0 ? '' : ',') + items.join(' ')\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tout = declare + out + ';'\n\n\t\tif (prefix === 1 || (prefix === 2 && vendor(out, 1)))\n\t\t\treturn webkit + out + out\n\n\t\treturn out\n\t}\n\n\t/**\n\t * Isolate\n\t *\n\t * @param {Array} current\n\t */\n\tfunction isolate (current) {\n\t\tfor (var i = 0, length = current.length, selector = Array(length), padding, element; i < length; ++i) {\n\t\t\t// split individual elements in a selector i.e h1 h2 === [h1, h2]\n\t\t\tvar elements = current[i].split(elementptn)\n\t\t\tvar out = ''\n\n\t\t\tfor (var j = 0, size = 0, tail = 0, code = 0, l = elements.length; j < l; ++j) {\n\t\t\t\t// empty element\n\t\t\t\tif ((size = (element = elements[j]).length) === 0 && l > 1) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\ttail = out.charCodeAt(out.length-1)\n\t\t\t\tcode = element.charCodeAt(0)\n\t\t\t\tpadding = ''\n\n\t\t\t\tif (j !== 0) {\n\t\t\t\t\t// determine if we need padding\n\t\t\t\t\tswitch (tail) {\n\t\t\t\t\t\tcase STAR:\n\t\t\t\t\t\tcase TILDE:\n\t\t\t\t\t\tcase GREATERTHAN:\n\t\t\t\t\t\tcase PLUS:\n\t\t\t\t\t\tcase SPACE:\n\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\tpadding = ' '\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tswitch (code) {\n\t\t\t\t\tcase AND: {\n\t\t\t\t\t\telement = padding + nscopealt\n\t\t\t\t\t}\n\t\t\t\t\tcase TILDE:\n\t\t\t\t\tcase GREATERTHAN:\n\t\t\t\t\tcase PLUS:\n\t\t\t\t\tcase SPACE:\n\t\t\t\t\tcase CLOSEPARENTHESES:\n\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase OPENBRACKET: {\n\t\t\t\t\t\telement = padding + element + nscopealt\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase COLON: {\n\t\t\t\t\t\tswitch (element.charCodeAt(1)*2 + element.charCodeAt(2)*3) {\n\t\t\t\t\t\t\t// :global\n\t\t\t\t\t\t\tcase 530: {\n\t\t\t\t\t\t\t\tif (escape > 0) {\n\t\t\t\t\t\t\t\t\telement = padding + element.substring(8, size - 1)\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// :hover, :nth-child(), ...\n\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\tif (j < 1 || elements[j-1].length < 1) {\n\t\t\t\t\t\t\t\t\telement = padding + nscopealt + element\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase COMMA: {\n\t\t\t\t\t\tpadding = ''\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\tif (size > 1 && element.indexOf(':') > 0) {\n\t\t\t\t\t\t\telement = padding + element.replace(pseudoptn, '$1' + nscopealt + '$2')\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\telement = padding + element + nscopealt\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tout += element\n\t\t\t}\n\n\t\t\tselector[i] = out.replace(formatptn, '').trim()\n\t\t}\n\n\t\treturn selector\n\t}\n\n\t/**\n\t * Proxy\n\t *\n\t * @param {number} context\n\t * @param {string} content\n\t * @param {Array} selectors\n\t * @param {Array} parents\n\t * @param {number} line\n\t * @param {number} column\n\t * @param {number} length\n\t * @param {number} id\n\t * @param {number} depth\n\t * @param {number} at\n\t * @return {(string|void|*)}\n\t */\n\tfunction proxy (context, content, selectors, parents, line, column, length, id, depth, at) {\n\t\tfor (var i = 0, out = content, next; i < plugged; ++i) {\n\t\t\tswitch (next = plugins[i].call(stylis, context, out, selectors, parents, line, column, length, id, depth, at)) {\n\t\t\t\tcase void 0:\n\t\t\t\tcase false:\n\t\t\t\tcase true:\n\t\t\t\tcase null: {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\tout = next\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (out !== content) {\n\t\t return out\n\t\t}\n\t}\n\n\t/**\n\t * @param {number} code\n\t * @param {number} index\n\t * @param {number} length\n\t * @param {string} body\n\t * @return {number}\n\t */\n\tfunction delimited (code, index, length, body) {\n\t\tfor (var i = index + 1; i < length; ++i) {\n\t\t\tswitch (body.charCodeAt(i)) {\n\t\t\t\t// /*\n\t\t\t\tcase FOWARDSLASH: {\n\t\t\t\t\tif (code === STAR) {\n\t\t\t\t\t\tif (body.charCodeAt(i - 1) === STAR && index + 2 !== i) {\n\t\t\t\t\t\t\treturn i + 1\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\t// //\n\t\t\t\tcase NEWLINE: {\n\t\t\t\t\tif (code === FOWARDSLASH) {\n\t\t\t\t\t\treturn i + 1\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn i\n\t}\n\n\t/**\n\t * @param {number} type\n\t * @param {number} index\n\t * @param {number} length\n\t * @param {number} find\n\t * @param {string} body\n\t * @return {number}\n\t */\n\tfunction match (type, index, length, body) {\n\t\tfor (var i = index + 1; i < length; ++i) {\n\t\t\tswitch (body.charCodeAt(i)) {\n\t\t\t\tcase type: {\n\t\t\t\t\treturn i\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn i\n\t}\n\n\t/**\n\t * Minify\n\t *\n\t * @param {(string|*)} output\n\t * @return {string}\n\t */\n\tfunction minify (output) {\n\t\treturn output\n\t\t\t.replace(formatptn, '')\n\t\t\t.replace(beforeptn, '')\n\t\t\t.replace(afterptn, '$1')\n\t\t\t.replace(tailptn, '$1')\n\t\t\t.replace(whiteptn, ' ')\n\t}\n\n\t/**\n\t * Use\n\t *\n\t * @param {(Array|function(...?)|number|void)?} plugin\n\t */\n\tfunction use (plugin) {\n\t\tswitch (plugin) {\n\t\t\tcase void 0:\n\t\t\tcase null: {\n\t\t\t\tplugged = plugins.length = 0\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tif (typeof plugin === 'function') {\n\t\t\t\t\tplugins[plugged++] = plugin\n\t\t\t\t}\telse if (typeof plugin === 'object') {\n\t\t\t\t\tfor (var i = 0, length = plugin.length; i < length; ++i) {\n\t\t\t\t\t\tuse(plugin[i])\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tunkwn = !!plugin|0\n\t\t\t\t}\n\t\t\t}\n \t\t}\n\n \t\treturn use\n\t}\n\n\t/**\n\t * Set\n\t *\n\t * @param {*} options\n\t */\n\tfunction set (options) {\n\t\tfor (var name in options) {\n\t\t\tvar value = options[name]\n\t\t\tswitch (name) {\n\t\t\t\tcase 'keyframe': keyed = value|0; break\n\t\t\t\tcase 'global': escape = value|0; break\n\t\t\t\tcase 'cascade': cascade = value|0; break\n\t\t\t\tcase 'compress': compress = value|0; break\n\t\t\t\tcase 'semicolon': semicolon = value|0; break\n\t\t\t\tcase 'preserve': preserve = value|0; break\n\t\t\t\tcase 'prefix':\n\t\t\t\t\tshould = null\n\n\t\t\t\t\tif (!value) {\n\t\t\t\t\t\tprefix = 0\n\t\t\t\t\t} else if (typeof value !== 'function') {\n\t\t\t\t\t\tprefix = 1\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprefix = 2\n\t\t\t\t\t\tshould = value\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn set\n\t}\n\n\t/**\n\t * Stylis\n\t *\n\t * @param {string} selector\n\t * @param {string} input\n\t * @return {*}\n\t */\n\tfunction stylis (selector, input) {\n\t\tif (this !== void 0 && this.constructor === stylis) {\n\t\t\treturn factory(selector)\n\t\t}\n\n\t\t// setup\n\t\tvar ns = selector\n\t\tvar code = ns.charCodeAt(0)\n\n\t\t// trim leading whitespace\n\t\tif (code < 33) {\n\t\t\tcode = (ns = ns.trim()).charCodeAt(0)\n\t\t}\n\n\t\t// keyframe/animation namespace\n\t\tif (keyed > 0) {\n\t\t\tkey = ns.replace(invalidptn, code === OPENBRACKET ? '' : '-')\n\t\t}\n\n\t\t// reset, used to assert if a plugin is moneky-patching the return value\n\t\tcode = 1\n\n\t\t// cascade/isolate\n\t\tif (cascade === 1) {\n\t\t\tnscope = ns\n\t\t} else {\n\t\t\tnscopealt = ns\n\t\t}\n\n\t\tvar selectors = [nscope]\n\t\tvar result\n\n\t\t// execute plugins, pre-process context\n\t\tif (plugged > 0) {\n\t\t\tresult = proxy(PREPS, input, selectors, selectors, line, column, 0, 0, 0, 0)\n\n\t\t\tif (result !== void 0 && typeof result === 'string') {\n\t\t\t\tinput = result\n\t\t\t}\n\t\t}\n\n\t\t// build\n\t\tvar output = compile(array, selectors, input, 0, 0)\n\n\t\t// execute plugins, post-process context\n\t\tif (plugged > 0) {\n\t\t\tresult = proxy(POSTS, output, selectors, selectors, line, column, output.length, 0, 0, 0)\n\n\t\t\t// bypass minification\n\t\t\tif (result !== void 0 && typeof(output = result) !== 'string') {\n\t\t\t\tcode = 0\n\t\t\t}\n\t\t}\n\n\t\t// reset\n\t\tkey = ''\n\t\tnscope = ''\n\t\tnscopealt = ''\n\t\tpattern = 0\n\t\tline = 1\n\t\tcolumn = 1\n\n\t\treturn compress*code === 0 ? output : minify(output)\n\t}\n\n\tstylis['use'] = use\n\tstylis['set'] = set\n\n\tif (options !== void 0) {\n\t\tset(options)\n\t}\n\n\treturn stylis\n}));\n","module.exports = __webpack_public_path__ + \"static/media/icomoon.af699b44.ttf\";","module.exports = __webpack_public_path__ + \"static/media/icomoon.ee3b7893.woff\";","module.exports = __webpack_public_path__ + \"static/media/icomoon.fed4c360.svg\";","module.exports = __webpack_public_path__ + \"static/media/MaterialIcons-Regular.570eb838.woff2\";","module.exports = __webpack_public_path__ + \"static/media/MaterialIcons-Regular.012cf6a1.woff\";","module.exports = __webpack_public_path__ + \"static/media/MaterialIcons-Regular.a37b0c01.ttf\";","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","/* 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 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","import _arity from './internal/_arity.js';\nimport _curry1 from './internal/_curry1.js';\nimport _curry2 from './internal/_curry2.js';\nimport _curryN from './internal/_curryN.js';\n\n/**\n * Returns a curried equivalent of the provided function, with the specified\n * arity. The curried function has two unusual capabilities. First, its\n * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.5.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curry\n * @example\n *\n * const sumArgs = (...args) => R.sum(args);\n *\n * const curriedAddFourNumbers = R.curryN(4, sumArgs);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\nvar curryN = /*#__PURE__*/_curry2(function curryN(length, fn) {\n if (length === 1) {\n return _curry1(fn);\n }\n return _arity(length, _curryN(length, [], fn));\n});\nexport default curryN;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Retrieve the value at a given path.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> a | Undefined\n * @param {Array} path The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path`.\n * @see R.prop\n * @example\n *\n * R.path(['a', 'b'], {a: {b: 2}}); //=> 2\n * R.path(['a', 'b'], {c: {b: 2}}); //=> undefined\n */\nvar path = /*#__PURE__*/_curry2(function path(paths, obj) {\n var val = obj;\n var idx = 0;\n while (idx < paths.length) {\n if (val == null) {\n return;\n }\n val = val[paths[idx]];\n idx += 1;\n }\n return val;\n});\nexport default path;","'use strict'\n\nvar _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault')\n\nvar _extends2 = _interopRequireDefault(\n require('@babel/runtime/helpers/extends')\n)\n\nvar _require = require('apollo-link'),\n ApolloLink = _require.ApolloLink,\n Observable = _require.Observable\n\nvar _require2 = require('apollo-link-http-common'),\n selectURI = _require2.selectURI,\n selectHttpOptionsAndBody = _require2.selectHttpOptionsAndBody,\n fallbackHttpConfig = _require2.fallbackHttpConfig,\n serializeFetchParameter = _require2.serializeFetchParameter,\n createSignalIfSupported = _require2.createSignalIfSupported,\n parseAndCheckHttpResponse = _require2.parseAndCheckHttpResponse\n\nvar _require3 = require('extract-files'),\n extractFiles = _require3.extractFiles,\n ReactNativeFile = _require3.ReactNativeFile\n\nexports.ReactNativeFile = ReactNativeFile\n\nexports.createUploadLink = function(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$uri = _ref.uri,\n fetchUri = _ref$uri === void 0 ? '/graphql' : _ref$uri,\n _ref$fetch = _ref.fetch,\n linkFetch = _ref$fetch === void 0 ? fetch : _ref$fetch,\n fetchOptions = _ref.fetchOptions,\n credentials = _ref.credentials,\n headers = _ref.headers,\n includeExtensions = _ref.includeExtensions\n\n var linkConfig = {\n http: {\n includeExtensions: includeExtensions\n },\n options: fetchOptions,\n credentials: credentials,\n headers: headers\n }\n return new ApolloLink(function(operation) {\n var uri = selectURI(operation, fetchUri)\n var context = operation.getContext()\n var _context$clientAwaren = context.clientAwareness\n _context$clientAwaren =\n _context$clientAwaren === void 0 ? {} : _context$clientAwaren\n var name = _context$clientAwaren.name,\n version = _context$clientAwaren.version,\n headers = context.headers\n var contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: (0, _extends2.default)(\n {},\n name && {\n 'apollographql-client-name': name\n },\n {},\n version && {\n 'apollographql-client-version': version\n },\n {},\n headers\n )\n }\n\n var _selectHttpOptionsAnd = selectHttpOptionsAndBody(\n operation,\n fallbackHttpConfig,\n linkConfig,\n contextConfig\n ),\n options = _selectHttpOptionsAnd.options,\n body = _selectHttpOptionsAnd.body\n\n var _extractFiles = extractFiles(body),\n clone = _extractFiles.clone,\n files = _extractFiles.files\n\n var payload = serializeFetchParameter(clone, 'Payload')\n\n if (files.size) {\n delete options.headers['content-type']\n var form = new FormData()\n form.append('operations', payload)\n var map = {}\n var i = 0\n files.forEach(function(paths) {\n map[++i] = paths\n })\n form.append('map', JSON.stringify(map))\n i = 0\n files.forEach(function(paths, file) {\n form.append(++i, file, file.name)\n })\n options.body = form\n } else options.body = payload\n\n return new Observable(function(observer) {\n var abortController\n\n if (!options.signal) {\n var _createSignalIfSuppor = createSignalIfSupported(),\n controller = _createSignalIfSuppor.controller\n\n if (controller) {\n abortController = controller\n options.signal = abortController.signal\n }\n }\n\n linkFetch(uri, options)\n .then(function(response) {\n operation.setContext({\n response: response\n })\n return response\n })\n .then(parseAndCheckHttpResponse(operation))\n .then(function(result) {\n observer.next(result)\n observer.complete()\n })\n .catch(function(error) {\n if (error.name === 'AbortError') return\n if (error.result && error.result.errors && error.result.data)\n observer.next(error.result)\n observer.error(error)\n })\n return function() {\n if (abortController) abortController.abort()\n }\n })\n })\n}\n","module.exports = __webpack_public_path__ + \"static/media/icomoon.af699b44.ttf\";","module.exports = __webpack_public_path__ + \"static/media/icomoon.ee3b7893.woff\";","module.exports = __webpack_public_path__ + \"static/media/icomoon.fed4c360.svg\";","module.exports = __webpack_public_path__ + \"static/media/MaterialIcons-Regular.570eb838.woff2\";","module.exports = __webpack_public_path__ + \"static/media/MaterialIcons-Regular.012cf6a1.woff\";","module.exports = __webpack_public_path__ + \"static/media/MaterialIcons-Regular.a37b0c01.ttf\";","// doT.js\n// 2011-2014, Laura Doktorova, https://github.com/olado/doT\n// Licensed under the MIT license.\n\n(function () {\n\t\"use strict\";\n\n\tvar doT = {\n\t\tname: \"doT\",\n\t\tversion: \"1.1.1\",\n\t\ttemplateSettings: {\n\t\t\tevaluate: /\\{\\{([\\s\\S]+?(\\}?)+)\\}\\}/g,\n\t\t\tinterpolate: /\\{\\{=([\\s\\S]+?)\\}\\}/g,\n\t\t\tencode: /\\{\\{!([\\s\\S]+?)\\}\\}/g,\n\t\t\tuse: /\\{\\{#([\\s\\S]+?)\\}\\}/g,\n\t\t\tuseParams: /(^|[^\\w$])def(?:\\.|\\[[\\'\\\"])([\\w$\\.]+)(?:[\\'\\\"]\\])?\\s*\\:\\s*([\\w$\\.]+|\\\"[^\\\"]+\\\"|\\'[^\\']+\\'|\\{[^\\}]+\\})/g,\n\t\t\tdefine: /\\{\\{##\\s*([\\w\\.$]+)\\s*(\\:|=)([\\s\\S]+?)#\\}\\}/g,\n\t\t\tdefineParams:/^\\s*([\\w$]+):([\\s\\S]+)/,\n\t\t\tconditional: /\\{\\{\\?(\\?)?\\s*([\\s\\S]*?)\\s*\\}\\}/g,\n\t\t\titerate: /\\{\\{~\\s*(?:\\}\\}|([\\s\\S]+?)\\s*\\:\\s*([\\w$]+)\\s*(?:\\:\\s*([\\w$]+))?\\s*\\}\\})/g,\n\t\t\tvarname:\t\"it\",\n\t\t\tstrip:\t\ttrue,\n\t\t\tappend:\t\ttrue,\n\t\t\tselfcontained: false,\n\t\t\tdoNotSkipEncoded: false\n\t\t},\n\t\ttemplate: undefined, //fn, compile template\n\t\tcompile: undefined, //fn, for express\n\t\tlog: true\n\t}, _globals;\n\n\tdoT.encodeHTMLSource = function(doNotSkipEncoded) {\n\t\tvar encodeHTMLRules = { \"&\": \"&\", \"<\": \"<\", \">\": \">\", '\"': \""\", \"'\": \"'\", \"/\": \"/\" },\n\t\t\tmatchHTML = doNotSkipEncoded ? /[&<>\"'\\/]/g : /&(?!#?\\w+;)|<|>|\"|'|\\//g;\n\t\treturn function(code) {\n\t\t\treturn code ? code.toString().replace(matchHTML, function(m) {return encodeHTMLRules[m] || m;}) : \"\";\n\t\t};\n\t};\n\n\t_globals = (function(){ return this || (0,eval)(\"this\"); }());\n\n\t/* istanbul ignore else */\n\tif (typeof module !== \"undefined\" && module.exports) {\n\t\tmodule.exports = doT;\n\t} else if (typeof define === \"function\" && define.amd) {\n\t\tdefine(function(){return doT;});\n\t} else {\n\t\t_globals.doT = doT;\n\t}\n\n\tvar startend = {\n\t\tappend: { start: \"'+(\", end: \")+'\", startencode: \"'+encodeHTML(\" },\n\t\tsplit: { start: \"';out+=(\", end: \");out+='\", startencode: \"';out+=encodeHTML(\" }\n\t}, skip = /$^/;\n\n\tfunction resolveDefs(c, block, def) {\n\t\treturn ((typeof block === \"string\") ? block : block.toString())\n\t\t.replace(c.define || skip, function(m, code, assign, value) {\n\t\t\tif (code.indexOf(\"def.\") === 0) {\n\t\t\t\tcode = code.substring(4);\n\t\t\t}\n\t\t\tif (!(code in def)) {\n\t\t\t\tif (assign === \":\") {\n\t\t\t\t\tif (c.defineParams) value.replace(c.defineParams, function(m, param, v) {\n\t\t\t\t\t\tdef[code] = {arg: param, text: v};\n\t\t\t\t\t});\n\t\t\t\t\tif (!(code in def)) def[code]= value;\n\t\t\t\t} else {\n\t\t\t\t\tnew Function(\"def\", \"def['\"+code+\"']=\" + value)(def);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn \"\";\n\t\t})\n\t\t.replace(c.use || skip, function(m, code) {\n\t\t\tif (c.useParams) code = code.replace(c.useParams, function(m, s, d, param) {\n\t\t\t\tif (def[d] && def[d].arg && param) {\n\t\t\t\t\tvar rw = (d+\":\"+param).replace(/'|\\\\/g, \"_\");\n\t\t\t\t\tdef.__exp = def.__exp || {};\n\t\t\t\t\tdef.__exp[rw] = def[d].text.replace(new RegExp(\"(^|[^\\\\w$])\" + def[d].arg + \"([^\\\\w$])\", \"g\"), \"$1\" + param + \"$2\");\n\t\t\t\t\treturn s + \"def.__exp['\"+rw+\"']\";\n\t\t\t\t}\n\t\t\t});\n\t\t\tvar v = new Function(\"def\", \"return \" + code)(def);\n\t\t\treturn v ? resolveDefs(c, v, def) : v;\n\t\t});\n\t}\n\n\tfunction unescape(code) {\n\t\treturn code.replace(/\\\\('|\\\\)/g, \"$1\").replace(/[\\r\\t\\n]/g, \" \");\n\t}\n\n\tdoT.template = function(tmpl, c, def) {\n\t\tc = c || doT.templateSettings;\n\t\tvar cse = c.append ? startend.append : startend.split, needhtmlencode, sid = 0, indv,\n\t\t\tstr = (c.use || c.define) ? resolveDefs(c, tmpl, def || {}) : tmpl;\n\n\t\tstr = (\"var out='\" + (c.strip ? str.replace(/(^|\\r|\\n)\\t* +| +\\t*(\\r|\\n|$)/g,\" \")\n\t\t\t\t\t.replace(/\\r|\\n|\\t|\\/\\*[\\s\\S]*?\\*\\//g,\"\"): str)\n\t\t\t.replace(/'|\\\\/g, \"\\\\$&\")\n\t\t\t.replace(c.interpolate || skip, function(m, code) {\n\t\t\t\treturn cse.start + unescape(code) + cse.end;\n\t\t\t})\n\t\t\t.replace(c.encode || skip, function(m, code) {\n\t\t\t\tneedhtmlencode = true;\n\t\t\t\treturn cse.startencode + unescape(code) + cse.end;\n\t\t\t})\n\t\t\t.replace(c.conditional || skip, function(m, elsecase, code) {\n\t\t\t\treturn elsecase ?\n\t\t\t\t\t(code ? \"';}else if(\" + unescape(code) + \"){out+='\" : \"';}else{out+='\") :\n\t\t\t\t\t(code ? \"';if(\" + unescape(code) + \"){out+='\" : \"';}out+='\");\n\t\t\t})\n\t\t\t.replace(c.iterate || skip, function(m, iterate, vname, iname) {\n\t\t\t\tif (!iterate) return \"';} } out+='\";\n\t\t\t\tsid+=1; indv=iname || \"i\"+sid; iterate=unescape(iterate);\n\t\t\t\treturn \"';var arr\"+sid+\"=\"+iterate+\";if(arr\"+sid+\"){var \"+vname+\",\"+indv+\"=-1,l\"+sid+\"=arr\"+sid+\".length-1;while(\"+indv+\" 0 && typeof x[0] !== 'number') {\n return false;\n }\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n /* eslint max-statements: [2, 50] */\n var i, key;\n if (typeof a !== typeof b) { return false; }\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) { return false; }\n\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) { return false; }\n\n if (isArguments(a) !== isArguments(b)) { return false; }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n if (aIsRegex !== bIsRegex) { return false; }\n if (aIsRegex || bIsRegex) {\n return a.source === b.source && flags(a) === flags(b);\n }\n\n if (isDate(a) && isDate(b)) {\n return getTime.call(a) === getTime.call(b);\n }\n\n var aIsBuffer = isBuffer(a);\n var bIsBuffer = isBuffer(b);\n if (aIsBuffer !== bIsBuffer) { return false; }\n if (aIsBuffer || bIsBuffer) { // && would work too, because both are true or both false here\n if (a.length !== b.length) { return false; }\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) { return false; }\n }\n return true;\n }\n\n if (typeof a !== typeof b) { return false; }\n\n try {\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n } catch (e) { // happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates hasOwnProperty)\n if (ka.length !== kb.length) { return false; }\n\n // the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n // ~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) { return false; }\n }\n // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) { return false; }\n }\n\n return true;\n}\n\nmodule.exports = deepEqual;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z' })\n );\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z' })\n );\n};","/*! react-checkbox-tree - v1.6.0 | 2019 */\n!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"react\")):\"function\"==typeof define&&define.amd?define([\"react\"],t):\"object\"==typeof exports?exports.ReactCheckboxTree=t(require(\"react\")):e.ReactCheckboxTree=t(e.React)}(window,(function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=27)}([function(e,t,n){e.exports=n(96)()},function(t,n){t.exports=e},function(e,t,n){var r=n(16),o=\"object\"==typeof self&&self&&self.Object===Object&&self,a=r||o||Function(\"return this\")();e.exports=a},function(e,t,n){var r=n(41),o=n(47);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},function(e,t,n){var r=n(31),o=n(32),a=n(33),i=n(34),c=n(35);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++tf))return!1;var h=u.get(e);if(h&&u.get(t))return h==t;var b=-1,y=!0,v=n&c?new r:void 0;for(u.set(e,t),u.set(t,e);++b-1&&e%1==0&&e<=n}},function(e,t,n){var r=n(28);e.exports=function(e,t){return r(e,t)}},function(e,t,n){var r=self.crypto||self.msCrypto;e.exports=function(e){e=e||21;for(var t=\"\",n=r.getRandomValues(new Uint8Array(e));e--;)t+=\"QLUint8ARdomValuesObj0h6345-79BCrypgJzHKTNYDSMkXPZ_FfG1WcqvwxEI2\"[63&n[e]];return t}},function(e,t,n){e.exports=n(98).default},function(e,t,n){var r=n(29),o=n(9);e.exports=function e(t,n,a,i,c){return t===n||(null==t||null==n||!o(t)&&!o(n)?t!=t&&n!=n:r(t,n,a,i,e,c))}},function(e,t,n){var r=n(30),o=n(20),a=n(65),i=n(69),c=n(91),l=n(13),s=n(21),u=n(23),p=1,f=\"[object Arguments]\",d=\"[object Array]\",h=\"[object Object]\",b=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,y,v,g){var x=l(e),m=l(t),k=x?d:c(e),O=m?d:c(t),j=(k=k==f?h:k)==h,_=(O=O==f?h:O)==h,w=k==O;if(w&&s(e)){if(!s(t))return!1;x=!0,j=!1}if(w&&!j)return g||(g=new r),x||u(e)?o(e,t,n,y,v,g):a(e,t,k,n,y,v,g);if(!(n&p)){var C=j&&b.call(e,\"__wrapped__\"),P=_&&b.call(t,\"__wrapped__\");if(C||P){var E=C?e.value():e,N=P?t.value():t;return g||(g=new r),v(E,N,n,y,g)}}return!!w&&(g||(g=new r),i(e,t,n,y,v,g))}},function(e,t,n){var r=n(4),o=n(36),a=n(37),i=n(38),c=n(39),l=n(40);function s(e){var t=this.__data__=new r(e);this.size=t.size}s.prototype.clear=o,s.prototype.delete=a,s.prototype.get=i,s.prototype.has=c,s.prototype.set=l,e.exports=s},function(e,t){e.exports=function(){this.__data__=[],this.size=0}},function(e,t,n){var r=n(5),o=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0)&&(n==t.length-1?t.pop():o.call(t,n,1),--this.size,!0)}},function(e,t,n){var r=n(5);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},function(e,t,n){var r=n(5);e.exports=function(e){return r(this.__data__,e)>-1}},function(e,t,n){var r=n(5);e.exports=function(e,t){var n=this.__data__,o=r(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}},function(e,t,n){var r=n(4);e.exports=function(){this.__data__=new r,this.size=0}},function(e,t){e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},function(e,t){e.exports=function(e){return this.__data__.get(e)}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t,n){var r=n(4),o=n(11),a=n(19),i=200;e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var c=n.__data__;if(!o||c.length-1&&e%1==0&&e=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function y(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{};!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),this.props=t,this.flatNodes=n}var t,n,r;return t=e,(n=[{key:\"setProps\",value:function(e){this.props=e}},{key:\"clone\",value:function(){var t=this,n={};return Object.keys(this.flatNodes).forEach((function(e){var r=t.flatNodes[e];n[e]=function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(Array.isArray(e)&&0!==e.length){var o=this.props,a=o.disabled,i=o.noCascade;e.forEach((function(e,o){var c=t.nodeHasChildren(e);t.flatNodes[e.value]={label:e.label,value:e.value,children:e.children,parent:n,isChild:void 0!==n.value,isParent:c,isLeaf:!c,showCheckbox:void 0===e.showCheckbox||e.showCheckbox,disabled:t.getDisabledState(e,n,a,i),treeDepth:r,index:o},t.flattenNodes(e.children,e,r+1)}))}}},{key:\"nodeHasChildren\",value:function(e){return Array.isArray(e.children)}},{key:\"getDisabledState\",value:function(e,t,n,r){return!!n||!(r||!t.disabled)||Boolean(e.disabled)}},{key:\"deserializeLists\",value:function(e){var t=this,n=[\"checked\",\"expanded\"];Object.keys(this.flatNodes).forEach((function(e){n.forEach((function(n){t.flatNodes[e][n]=!1}))})),n.forEach((function(n){e[n].forEach((function(e){void 0!==t.flatNodes[e]&&(t.flatNodes[e][n]=!0)}))}))}},{key:\"serializeList\",value:function(e){var t=this,n=[];return Object.keys(this.flatNodes).forEach((function(r){t.flatNodes[r][e]&&n.push(r)})),n}},{key:\"expandAllNodes\",value:function(e){var t=this;return Object.keys(this.flatNodes).forEach((function(n){t.flatNodes[n].isParent&&(t.flatNodes[n].expanded=e)})),this}},{key:\"toggleChecked\",value:function(e,t,n,r){var o=this,a=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],i=this.flatNodes[e.value],c=[P.PARENT,P.ALL].indexOf(n)>-1,l=[P.LEAF,P.ALL].indexOf(n)>-1;if(i.isLeaf||r){if(e.disabled)return this;this.toggleNode(e.value,\"checked\",t)}else c&&this.toggleNode(e.value,\"checked\",t),l&&i.children.forEach((function(e){o.toggleChecked(e,t,n,r,!1)}));return a&&!r&&i.isChild&&c&&this.toggleParentStatus(i.parent,n),this}},{key:\"toggleParentStatus\",value:function(e,t){var n=this.flatNodes[e.value];n.isChild?(t===P.ALL&&this.toggleNode(e.value,\"checked\",this.isEveryChildChecked(n)),this.toggleParentStatus(n.parent,t)):this.toggleNode(e.value,\"checked\",this.isEveryChildChecked(n))}},{key:\"isEveryChildChecked\",value:function(e){var t=this;return e.children.every((function(e){return t.getNode(e.value).checked}))}},{key:\"toggleNode\",value:function(e,t,n){return this.flatNodes[e][t]=n,this}}])&&C(t.prototype,n),r&&C(t,r),e}();function N(e){return(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})(e)}function A(){return(A=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0])||arguments[0],t=this.props.onExpand;t(this.state.model.clone().expandAllNodes(e).serializeList(\"expanded\"))}},{key:\"determineShallowCheckState\",value:function(e,t){var n=this.state.model.getNode(e.value);return n.isLeaf||t?n.checked?1:0:this.isEveryChildChecked(e)?1:this.isSomeChildChecked(e)?2:0}},{key:\"isEveryChildChecked\",value:function(e){var t=this;return e.children.every((function(e){return 1===t.state.model.getNode(e.value).checkState}))}},{key:\"isSomeChildChecked\",value:function(e){var t=this;return e.children.some((function(e){return t.state.model.getNode(e.value).checkState>0}))}},{key:\"renderTreeNodes\",value:function(e){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=this.props,a=o.expandDisabled,i=o.expandOnClick,c=o.icons,l=o.lang,s=o.noCascade,u=o.onClick,p=o.onlyLeafCheckboxes,d=o.optimisticToggle,h=o.showNodeTitle,b=o.showNodeIcon,y=this.state,v=y.id,g=y.model,x=t.defaultProps.icons,m=e.map((function(e){var t=e.value,o=g.getNode(e.value),y=o.isParent?n.renderTreeNodes(e.children,e):null;o.checkState=n.determineShallowCheckState(e,s);var m=p?o.isLeaf:o.showCheckbox;return!r.value||g.getNode(r.value).expanded?f.a.createElement(K,{key:t,checked:o.checkState,className:e.className,disabled:o.disabled,expandDisabled:a,expandOnClick:i,expanded:o.expanded,icon:e.icon,icons:ne({},x,{},c),label:e.label,lang:l,optimisticToggle:d,isLeaf:o.isLeaf,isParent:o.isParent,showCheckbox:m,showNodeIcon:b,title:h?e.title||e.label:e.title,treeId:v,value:e.value,onCheck:n.onCheck,onClick:u&&n.onNodeClick,onExpand:n.onExpand},y):null}));return f.a.createElement(\"ol\",null,m)}},{key:\"renderExpandAll\",value:function(){var e=this.props,t=e.icons,n=t.expandAll,r=t.collapseAll,o=e.lang;return e.showExpandAll?f.a.createElement(\"div\",{className:\"rct-options\"},f.a.createElement(O,{className:\"rct-option rct-option-expand-all\",title:o.expandAll,onClick:this.onExpandAll},n),f.a.createElement(O,{className:\"rct-option rct-option-collapse-all\",title:o.collapseAll,onClick:this.onCollapseAll},r)):null}},{key:\"renderHiddenInput\",value:function(){var e=this.props,t=e.name,n=e.nameAsArray;return void 0===t?null:n?this.renderArrayHiddenInput():this.renderJoinedHiddenInput()}},{key:\"renderArrayHiddenInput\",value:function(){var e=this.props,t=e.checked,n=e.name;return t.map((function(e){var t=\"\".concat(n,\"[]\");return f.a.createElement(\"input\",{key:e,name:t,type:\"hidden\",value:e})}))}},{key:\"renderJoinedHiddenInput\",value:function(){var e=this.props,t=e.checked,n=e.name,r=t.join(\",\");return f.a.createElement(\"input\",{name:n,type:\"hidden\",value:r})}},{key:\"render\",value:function(){var e,t=this.props,n=t.disabled,r=t.iconsClass,a=t.nodes,i=t.nativeCheckboxes,c=this.state.id,l=this.renderTreeNodes(a),s=o()((ce(e={\"react-checkbox-tree\":!0,\"rct-disabled\":n},\"rct-icons-\".concat(r),!0),ce(e,\"rct-native-display\",i),e));return f.a.createElement(\"div\",{className:s,id:c},this.renderExpandAll(),this.renderHiddenInput(),l)}}])&&re(n.prototype,r),a&&re(n,a),t}(f.a.Component);ce(le,\"propTypes\",{nodes:u.a.arrayOf(Z).isRequired,checkModel:u.a.oneOf([j.LEAF,j.ALL]),checked:G,disabled:u.a.bool,expandDisabled:u.a.bool,expandOnClick:u.a.bool,expanded:G,icons:F,iconsClass:u.a.string,id:u.a.string,lang:M,name:u.a.string,nameAsArray:u.a.bool,nativeCheckboxes:u.a.bool,noCascade:u.a.bool,onlyLeafCheckboxes:u.a.bool,optimisticToggle:u.a.bool,showExpandAll:u.a.bool,showNodeIcon:u.a.bool,showNodeTitle:u.a.bool,onCheck:u.a.func,onClick:u.a.func,onExpand:u.a.func}),ce(le,\"defaultProps\",{checkModel:j.LEAF,checked:[],disabled:!1,expandDisabled:!1,expandOnClick:!1,expanded:[],icons:{check:f.a.createElement(\"span\",{className:\"rct-icon rct-icon-check\"}),uncheck:f.a.createElement(\"span\",{className:\"rct-icon rct-icon-uncheck\"}),halfCheck:f.a.createElement(\"span\",{className:\"rct-icon rct-icon-half-check\"}),expandClose:f.a.createElement(\"span\",{className:\"rct-icon rct-icon-expand-close\"}),expandOpen:f.a.createElement(\"span\",{className:\"rct-icon rct-icon-expand-open\"}),expandAll:f.a.createElement(\"span\",{className:\"rct-icon rct-icon-expand-all\"}),collapseAll:f.a.createElement(\"span\",{className:\"rct-icon rct-icon-collapse-all\"}),parentClose:f.a.createElement(\"span\",{className:\"rct-icon rct-icon-parent-close\"}),parentOpen:f.a.createElement(\"span\",{className:\"rct-icon rct-icon-parent-open\"}),leaf:f.a.createElement(\"span\",{className:\"rct-icon rct-icon-leaf\"})},iconsClass:\"fa4\",id:null,lang:{collapseAll:\"Collapse all\",expandAll:\"Expand all\",toggle:\"Toggle\"},name:void 0,nameAsArray:!1,nativeCheckboxes:!1,noCascade:!1,onlyLeafCheckboxes:!1,optimisticToggle:!0,showExpandAll:!1,showNodeIcon:!0,showNodeTitle:!1,onCheck:function(){},onClick:null,onExpand:function(){}});t.default=le}])}));","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'span'\n};\n\nvar InputGroupText = function InputGroupText(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'input-group-text'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nInputGroupText.propTypes = propTypes;\nInputGroupText.defaultProps = defaultProps;\nexport default InputGroupText;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.genericHashLink = genericHashLink;\nexports.HashLink = HashLink;\nexports.NavHashLink = NavHashLink;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactRouterDom = require('react-router-dom');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar hashFragment = '';\nvar observer = null;\nvar asyncTimerId = null;\nvar scrollFunction = null;\n\nfunction reset() {\n hashFragment = '';\n if (observer !== null) observer.disconnect();\n if (asyncTimerId !== null) {\n window.clearTimeout(asyncTimerId);\n asyncTimerId = null;\n }\n}\n\nfunction getElAndScroll() {\n var element = document.getElementById(hashFragment);\n if (element !== null) {\n scrollFunction(element);\n reset();\n return true;\n }\n return false;\n}\n\nfunction hashLinkScroll() {\n // Push onto callback queue so it runs after the DOM is updated\n window.setTimeout(function () {\n if (getElAndScroll() === false) {\n if (observer === null) {\n observer = new MutationObserver(getElAndScroll);\n }\n observer.observe(document, {\n attributes: true,\n childList: true,\n subtree: true\n });\n // if the element doesn't show up in 10 seconds, stop checking\n asyncTimerId = window.setTimeout(function () {\n reset();\n }, 10000);\n }\n }, 0);\n}\n\nfunction genericHashLink(props, As) {\n function handleClick(e) {\n reset();\n if (props.onClick) props.onClick(e);\n if (typeof props.to === 'string') {\n hashFragment = props.to.split('#').slice(1).join('#');\n } else if (_typeof(props.to) === 'object' && typeof props.to.hash === 'string') {\n hashFragment = props.to.hash.replace('#', '');\n }\n if (hashFragment !== '') {\n scrollFunction = props.scroll || function (el) {\n return props.smooth ? el.scrollIntoView({ behavior: \"smooth\" }) : el.scrollIntoView();\n };\n hashLinkScroll();\n }\n }\n\n var scroll = props.scroll,\n smooth = props.smooth,\n filteredProps = _objectWithoutProperties(props, ['scroll', 'smooth']);\n\n return _react2.default.createElement(\n As,\n _extends({}, filteredProps, { onClick: handleClick }),\n props.children\n );\n}\n\nfunction HashLink(props) {\n return genericHashLink(props, _reactRouterDom.Link);\n}\n\nfunction NavHashLink(props) {\n return genericHashLink(props, _reactRouterDom.NavLink);\n}\n\nvar propTypes = {\n onClick: _propTypes2.default.func,\n children: _propTypes2.default.node,\n scroll: _propTypes2.default.func,\n to: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object])\n};\n\nHashLink.propTypes = propTypes;\nNavHashLink.propTypes = propTypes;","'use strict';\n\n// Generated by CoffeeScript 2.0.3\n// # CSV Stringify Sync\n\n// Provides a synchronous alternative to the CSV stringifier.\n\n// Usage: `data = stringify(records, [options]`\nvar StringDecoder, stringify;\n\nvar _require = require('string_decoder');\n\nStringDecoder = _require.StringDecoder;\n\n\nstringify = require('./index');\n\nmodule.exports = function (records) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var data, decoder, i, len, record, stringifier;\n data = [];\n if (records instanceof Buffer) {\n decoder = new StringDecoder();\n records = decoder.write(records);\n }\n stringifier = new stringify.Stringifier(options);\n stringifier.push = function (record) {\n if (record) {\n return data.push(record.toString());\n }\n };\n for (i = 0, len = records.length; i < len; i++) {\n record = records[i];\n stringifier.write(record);\n }\n stringifier.end();\n return data.join('');\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nrequire(\"regenerator-runtime/runtime\");\n\nvar _GraphiQL = require(\"./components/GraphiQL\");\n\n/**\n * Copyright (c) 2019 GraphQL Contributors.\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 */\nvar _default = _GraphiQL.GraphiQL;\nexports.default = _default;","import inspect from '../jsutils/inspect';\nimport invariant from '../jsutils/invariant';\nimport keyValMap from '../jsutils/keyValMap';\nimport isInvalid from '../jsutils/isInvalid';\nimport { Kind } from '../language/kinds';\n\n/**\n * Produces a JavaScript value given a GraphQL Value AST.\n *\n * Unlike `valueFromAST()`, no type is provided. The resulting JavaScript value\n * will reflect the provided GraphQL value AST.\n *\n * | GraphQL Value | JavaScript Value |\n * | -------------------- | ---------------- |\n * | Input Object | Object |\n * | List | Array |\n * | Boolean | Boolean |\n * | String / Enum | String |\n * | Int / Float | Number |\n * | Null | null |\n *\n */\nexport function valueFromASTUntyped(valueNode, variables) {\n switch (valueNode.kind) {\n case Kind.NULL:\n return null;\n\n case Kind.INT:\n return parseInt(valueNode.value, 10);\n\n case Kind.FLOAT:\n return parseFloat(valueNode.value);\n\n case Kind.STRING:\n case Kind.ENUM:\n case Kind.BOOLEAN:\n return valueNode.value;\n\n case Kind.LIST:\n return valueNode.values.map(function (node) {\n return valueFromASTUntyped(node, variables);\n });\n\n case Kind.OBJECT:\n return keyValMap(valueNode.fields, function (field) {\n return field.name.value;\n }, function (field) {\n return valueFromASTUntyped(field.value, variables);\n });\n\n case Kind.VARIABLE:\n {\n var variableName = valueNode.name.value;\n return variables && !isInvalid(variables[variableName]) ? variables[variableName] : undefined;\n }\n } // Not reachable. All possible value nodes have been considered.\n\n\n /* istanbul ignore next */\n invariant(false, 'Unexpected value node: ' + inspect(valueNode));\n}\n","import devAssert from '../jsutils/devAssert';\nimport { GraphQLError } from '../error/GraphQLError';\nvar NAME_RX = /^[_a-zA-Z][_a-zA-Z0-9]*$/;\n/**\n * Upholds the spec rules about naming.\n */\n\nexport function assertValidName(name) {\n var error = isValidNameError(name);\n\n if (error) {\n throw error;\n }\n\n return name;\n}\n/**\n * Returns an Error if a name is invalid.\n */\n\nexport function isValidNameError(name, node) {\n typeof name === 'string' || devAssert(0, 'Expected string');\n\n if (name.length > 1 && name[0] === '_' && name[1] === '_') {\n return new GraphQLError(\"Name \\\"\".concat(name, \"\\\" must not begin with \\\"__\\\", which is reserved by GraphQL introspection.\"), node);\n }\n\n if (!NAME_RX.test(name)) {\n return new GraphQLError(\"Names must match /^[_a-zA-Z][_a-zA-Z0-9]*$/ but \\\"\".concat(name, \"\\\" does not.\"), node);\n }\n}\n","import { GraphQLError } from '../../error/GraphQLError';\nexport function duplicateOperationNameMessage(operationName) {\n return \"There can be only one operation named \\\"\".concat(operationName, \"\\\".\");\n}\n/**\n * Unique operation names\n *\n * A GraphQL document is only valid if all defined operations have unique names.\n */\n\nexport function UniqueOperationNames(context) {\n var knownOperationNames = Object.create(null);\n return {\n OperationDefinition: function OperationDefinition(node) {\n var operationName = node.name;\n\n if (operationName) {\n if (knownOperationNames[operationName.value]) {\n context.reportError(new GraphQLError(duplicateOperationNameMessage(operationName.value), [knownOperationNames[operationName.value], operationName]));\n } else {\n knownOperationNames[operationName.value] = operationName;\n }\n }\n\n return false;\n },\n FragmentDefinition: function FragmentDefinition() {\n return false;\n }\n };\n}\n","import { GraphQLError } from '../../error/GraphQLError';\nimport { Kind } from '../../language/kinds';\nexport function anonOperationNotAloneMessage() {\n return 'This anonymous operation must be the only defined operation.';\n}\n/**\n * Lone anonymous operation\n *\n * A GraphQL document is only valid if when it contains an anonymous operation\n * (the query short-hand) that it contains only that one operation definition.\n */\n\nexport function LoneAnonymousOperation(context) {\n var operationCount = 0;\n return {\n Document: function Document(node) {\n operationCount = node.definitions.filter(function (definition) {\n return definition.kind === Kind.OPERATION_DEFINITION;\n }).length;\n },\n OperationDefinition: function OperationDefinition(node) {\n if (!node.name && operationCount > 1) {\n context.reportError(new GraphQLError(anonOperationNotAloneMessage(), node));\n }\n }\n };\n}\n","import { GraphQLError } from '../../error/GraphQLError';\nexport function singleFieldOnlyMessage(name) {\n return name ? \"Subscription \\\"\".concat(name, \"\\\" must select only one top level field.\") : 'Anonymous Subscription must select only one top level field.';\n}\n/**\n * Subscriptions must only include one field.\n *\n * A GraphQL subscription is valid only if it contains a single root field.\n */\n\nexport function SingleFieldSubscriptions(context) {\n return {\n OperationDefinition: function OperationDefinition(node) {\n if (node.operation === 'subscription') {\n if (node.selectionSet.selections.length !== 1) {\n context.reportError(new GraphQLError(singleFieldOnlyMessage(node.name && node.name.value), node.selectionSet.selections.slice(1)));\n }\n }\n }\n };\n}\n","import { GraphQLError } from '../../error/GraphQLError';\nimport { print } from '../../language/printer';\nimport { isCompositeType } from '../../type/definition';\nimport { typeFromAST } from '../../utilities/typeFromAST';\nexport function inlineFragmentOnNonCompositeErrorMessage(type) {\n return \"Fragment cannot condition on non composite type \\\"\".concat(type, \"\\\".\");\n}\nexport function fragmentOnNonCompositeErrorMessage(fragName, type) {\n return \"Fragment \\\"\".concat(fragName, \"\\\" cannot condition on non composite type \\\"\").concat(type, \"\\\".\");\n}\n/**\n * Fragments on composite type\n *\n * Fragments use a type condition to determine if they apply, since fragments\n * can only be spread into a composite type (object, interface, or union), the\n * type condition must also be a composite type.\n */\n\nexport function FragmentsOnCompositeTypes(context) {\n return {\n InlineFragment: function InlineFragment(node) {\n var typeCondition = node.typeCondition;\n\n if (typeCondition) {\n var type = typeFromAST(context.getSchema(), typeCondition);\n\n if (type && !isCompositeType(type)) {\n context.reportError(new GraphQLError(inlineFragmentOnNonCompositeErrorMessage(print(typeCondition)), typeCondition));\n }\n }\n },\n FragmentDefinition: function FragmentDefinition(node) {\n var type = typeFromAST(context.getSchema(), node.typeCondition);\n\n if (type && !isCompositeType(type)) {\n context.reportError(new GraphQLError(fragmentOnNonCompositeErrorMessage(node.name.value, print(node.typeCondition)), node.typeCondition));\n }\n }\n };\n}\n","import { GraphQLError } from '../../error/GraphQLError';\nimport { print } from '../../language/printer';\nimport { isInputType } from '../../type/definition';\nimport { typeFromAST } from '../../utilities/typeFromAST';\nexport function nonInputTypeOnVarMessage(variableName, typeName) {\n return \"Variable \\\"$\".concat(variableName, \"\\\" cannot be non-input type \\\"\").concat(typeName, \"\\\".\");\n}\n/**\n * Variables are input types\n *\n * A GraphQL operation is only valid if all the variables it defines are of\n * input types (scalar, enum, or input object).\n */\n\nexport function VariablesAreInputTypes(context) {\n return {\n VariableDefinition: function VariableDefinition(node) {\n var type = typeFromAST(context.getSchema(), node.type); // If the variable type is not an input type, return an error.\n\n if (type && !isInputType(type)) {\n var variableName = node.variable.name.value;\n context.reportError(new GraphQLError(nonInputTypeOnVarMessage(variableName, print(node.type)), node.type));\n }\n }\n };\n}\n","import inspect from '../../jsutils/inspect';\nimport { GraphQLError } from '../../error/GraphQLError';\nimport { getNamedType, isLeafType } from '../../type/definition';\nexport function noSubselectionAllowedMessage(fieldName, type) {\n return \"Field \\\"\".concat(fieldName, \"\\\" must not have a selection since type \\\"\").concat(type, \"\\\" has no subfields.\");\n}\nexport function requiredSubselectionMessage(fieldName, type) {\n return \"Field \\\"\".concat(fieldName, \"\\\" of type \\\"\").concat(type, \"\\\" must have a selection of subfields. Did you mean \\\"\").concat(fieldName, \" { ... }\\\"?\");\n}\n/**\n * Scalar leafs\n *\n * A GraphQL document is valid only if all leaf fields (fields without\n * sub selections) are of scalar or enum types.\n */\n\nexport function ScalarLeafs(context) {\n return {\n Field: function Field(node) {\n var type = context.getType();\n var selectionSet = node.selectionSet;\n\n if (type) {\n if (isLeafType(getNamedType(type))) {\n if (selectionSet) {\n context.reportError(new GraphQLError(noSubselectionAllowedMessage(node.name.value, inspect(type)), selectionSet));\n }\n } else if (!selectionSet) {\n context.reportError(new GraphQLError(requiredSubselectionMessage(node.name.value, inspect(type)), node));\n }\n }\n }\n };\n}\n","import didYouMean from '../../jsutils/didYouMean';\nimport suggestionList from '../../jsutils/suggestionList';\nimport { GraphQLError } from '../../error/GraphQLError';\nimport { isObjectType, isInterfaceType, isAbstractType } from '../../type/definition';\nexport function undefinedFieldMessage(fieldName, type, suggestedTypeNames, suggestedFieldNames) {\n var quotedTypeNames = suggestedTypeNames.map(function (x) {\n return \"\\\"\".concat(x, \"\\\"\");\n });\n var quotedFieldNames = suggestedFieldNames.map(function (x) {\n return \"\\\"\".concat(x, \"\\\"\");\n });\n return \"Cannot query field \\\"\".concat(fieldName, \"\\\" on type \\\"\").concat(type, \"\\\".\") + (didYouMean('to use an inline fragment on', quotedTypeNames) || didYouMean(quotedFieldNames));\n}\n/**\n * Fields on correct type\n *\n * A GraphQL document is only valid if all fields selected are defined by the\n * parent type, or are an allowed meta field such as __typename.\n */\n\nexport function FieldsOnCorrectType(context) {\n return {\n Field: function Field(node) {\n var type = context.getParentType();\n\n if (type) {\n var fieldDef = context.getFieldDef();\n\n if (!fieldDef) {\n // This field doesn't exist, lets look for suggestions.\n var schema = context.getSchema();\n var fieldName = node.name.value; // First determine if there are any suggested types to condition on.\n\n var suggestedTypeNames = getSuggestedTypeNames(schema, type, fieldName); // If there are no suggested types, then perhaps this was a typo?\n\n var suggestedFieldNames = suggestedTypeNames.length !== 0 ? [] : getSuggestedFieldNames(schema, type, fieldName); // Report an error, including helpful suggestions.\n\n context.reportError(new GraphQLError(undefinedFieldMessage(fieldName, type.name, suggestedTypeNames, suggestedFieldNames), node));\n }\n }\n }\n };\n}\n/**\n * Go through all of the implementations of type, as well as the interfaces that\n * they implement. If any of those types include the provided field, suggest\n * them, sorted by how often the type is referenced, starting with Interfaces.\n */\n\nfunction getSuggestedTypeNames(schema, type, fieldName) {\n if (isAbstractType(type)) {\n var suggestedObjectTypes = [];\n var interfaceUsageCount = Object.create(null);\n\n for (var _i2 = 0, _schema$getPossibleTy2 = schema.getPossibleTypes(type); _i2 < _schema$getPossibleTy2.length; _i2++) {\n var possibleType = _schema$getPossibleTy2[_i2];\n\n if (!possibleType.getFields()[fieldName]) {\n continue;\n } // This object type defines this field.\n\n\n suggestedObjectTypes.push(possibleType.name);\n\n for (var _i4 = 0, _possibleType$getInte2 = possibleType.getInterfaces(); _i4 < _possibleType$getInte2.length; _i4++) {\n var possibleInterface = _possibleType$getInte2[_i4];\n\n if (!possibleInterface.getFields()[fieldName]) {\n continue;\n } // This interface type defines this field.\n\n\n interfaceUsageCount[possibleInterface.name] = (interfaceUsageCount[possibleInterface.name] || 0) + 1;\n }\n } // Suggest interface types based on how common they are.\n\n\n var suggestedInterfaceTypes = Object.keys(interfaceUsageCount).sort(function (a, b) {\n return interfaceUsageCount[b] - interfaceUsageCount[a];\n }); // Suggest both interface and object types.\n\n return suggestedInterfaceTypes.concat(suggestedObjectTypes);\n } // Otherwise, must be an Object type, which does not have possible fields.\n\n\n return [];\n}\n/**\n * For the field name provided, determine if there are any similar field names\n * that may be the result of a typo.\n */\n\n\nfunction getSuggestedFieldNames(schema, type, fieldName) {\n if (isObjectType(type) || isInterfaceType(type)) {\n var possibleFieldNames = Object.keys(type.getFields());\n return suggestionList(fieldName, possibleFieldNames);\n } // Otherwise, must be a Union type, which does not define fields.\n\n\n return [];\n}\n","import { GraphQLError } from '../../error/GraphQLError';\nexport function duplicateFragmentNameMessage(fragName) {\n return \"There can be only one fragment named \\\"\".concat(fragName, \"\\\".\");\n}\n/**\n * Unique fragment names\n *\n * A GraphQL document is only valid if all defined fragments have unique names.\n */\n\nexport function UniqueFragmentNames(context) {\n var knownFragmentNames = Object.create(null);\n return {\n OperationDefinition: function OperationDefinition() {\n return false;\n },\n FragmentDefinition: function FragmentDefinition(node) {\n var fragmentName = node.name.value;\n\n if (knownFragmentNames[fragmentName]) {\n context.reportError(new GraphQLError(duplicateFragmentNameMessage(fragmentName), [knownFragmentNames[fragmentName], node.name]));\n } else {\n knownFragmentNames[fragmentName] = node.name;\n }\n\n return false;\n }\n };\n}\n","import { GraphQLError } from '../../error/GraphQLError';\nexport function unknownFragmentMessage(fragName) {\n return \"Unknown fragment \\\"\".concat(fragName, \"\\\".\");\n}\n/**\n * Known fragment names\n *\n * A GraphQL document is only valid if all `...Fragment` fragment spreads refer\n * to fragments defined in the same document.\n */\n\nexport function KnownFragmentNames(context) {\n return {\n FragmentSpread: function FragmentSpread(node) {\n var fragmentName = node.name.value;\n var fragment = context.getFragment(fragmentName);\n\n if (!fragment) {\n context.reportError(new GraphQLError(unknownFragmentMessage(fragmentName), node.name));\n }\n }\n };\n}\n","import { GraphQLError } from '../../error/GraphQLError';\nexport function unusedFragMessage(fragName) {\n return \"Fragment \\\"\".concat(fragName, \"\\\" is never used.\");\n}\n/**\n * No unused fragments\n *\n * A GraphQL document is only valid if all fragment definitions are spread\n * within operations, or spread within other fragments spread within operations.\n */\n\nexport function NoUnusedFragments(context) {\n var operationDefs = [];\n var fragmentDefs = [];\n return {\n OperationDefinition: function OperationDefinition(node) {\n operationDefs.push(node);\n return false;\n },\n FragmentDefinition: function FragmentDefinition(node) {\n fragmentDefs.push(node);\n return false;\n },\n Document: {\n leave: function leave() {\n var fragmentNameUsed = Object.create(null);\n\n for (var _i2 = 0; _i2 < operationDefs.length; _i2++) {\n var operation = operationDefs[_i2];\n\n for (var _i4 = 0, _context$getRecursive2 = context.getRecursivelyReferencedFragments(operation); _i4 < _context$getRecursive2.length; _i4++) {\n var fragment = _context$getRecursive2[_i4];\n fragmentNameUsed[fragment.name.value] = true;\n }\n }\n\n for (var _i6 = 0; _i6 < fragmentDefs.length; _i6++) {\n var fragmentDef = fragmentDefs[_i6];\n var fragName = fragmentDef.name.value;\n\n if (fragmentNameUsed[fragName] !== true) {\n context.reportError(new GraphQLError(unusedFragMessage(fragName), fragmentDef));\n }\n }\n }\n }\n };\n}\n","import inspect from '../../jsutils/inspect';\nimport { GraphQLError } from '../../error/GraphQLError';\nimport { isCompositeType } from '../../type/definition';\nimport { typeFromAST } from '../../utilities/typeFromAST';\nimport { doTypesOverlap } from '../../utilities/typeComparators';\nexport function typeIncompatibleSpreadMessage(fragName, parentType, fragType) {\n return \"Fragment \\\"\".concat(fragName, \"\\\" cannot be spread here as objects of type \\\"\").concat(parentType, \"\\\" can never be of type \\\"\").concat(fragType, \"\\\".\");\n}\nexport function typeIncompatibleAnonSpreadMessage(parentType, fragType) {\n return \"Fragment cannot be spread here as objects of type \\\"\".concat(parentType, \"\\\" can never be of type \\\"\").concat(fragType, \"\\\".\");\n}\n/**\n * Possible fragment spread\n *\n * A fragment spread is only valid if the type condition could ever possibly\n * be true: if there is a non-empty intersection of the possible parent types,\n * and possible types which pass the type condition.\n */\n\nexport function PossibleFragmentSpreads(context) {\n return {\n InlineFragment: function InlineFragment(node) {\n var fragType = context.getType();\n var parentType = context.getParentType();\n\n if (isCompositeType(fragType) && isCompositeType(parentType) && !doTypesOverlap(context.getSchema(), fragType, parentType)) {\n context.reportError(new GraphQLError(typeIncompatibleAnonSpreadMessage(inspect(parentType), inspect(fragType)), node));\n }\n },\n FragmentSpread: function FragmentSpread(node) {\n var fragName = node.name.value;\n var fragType = getFragmentType(context, fragName);\n var parentType = context.getParentType();\n\n if (fragType && parentType && !doTypesOverlap(context.getSchema(), fragType, parentType)) {\n context.reportError(new GraphQLError(typeIncompatibleSpreadMessage(fragName, inspect(parentType), inspect(fragType)), node));\n }\n }\n };\n}\n\nfunction getFragmentType(context, name) {\n var frag = context.getFragment(name);\n\n if (frag) {\n var type = typeFromAST(context.getSchema(), frag.typeCondition);\n\n if (isCompositeType(type)) {\n return type;\n }\n }\n}\n","import { GraphQLError } from '../../error/GraphQLError';\nexport function cycleErrorMessage(fragName, spreadNames) {\n var via = spreadNames.length ? ' via ' + spreadNames.join(', ') : '';\n return \"Cannot spread fragment \\\"\".concat(fragName, \"\\\" within itself\").concat(via, \".\");\n}\nexport function NoFragmentCycles(context) {\n // Tracks already visited fragments to maintain O(N) and to ensure that cycles\n // are not redundantly reported.\n var visitedFrags = Object.create(null); // Array of AST nodes used to produce meaningful errors\n\n var spreadPath = []; // Position in the spread path\n\n var spreadPathIndexByName = Object.create(null);\n return {\n OperationDefinition: function OperationDefinition() {\n return false;\n },\n FragmentDefinition: function FragmentDefinition(node) {\n detectCycleRecursive(node);\n return false;\n }\n }; // This does a straight-forward DFS to find cycles.\n // It does not terminate when a cycle was found but continues to explore\n // the graph to find all possible cycles.\n\n function detectCycleRecursive(fragment) {\n if (visitedFrags[fragment.name.value]) {\n return;\n }\n\n var fragmentName = fragment.name.value;\n visitedFrags[fragmentName] = true;\n var spreadNodes = context.getFragmentSpreads(fragment.selectionSet);\n\n if (spreadNodes.length === 0) {\n return;\n }\n\n spreadPathIndexByName[fragmentName] = spreadPath.length;\n\n for (var _i2 = 0; _i2 < spreadNodes.length; _i2++) {\n var spreadNode = spreadNodes[_i2];\n var spreadName = spreadNode.name.value;\n var cycleIndex = spreadPathIndexByName[spreadName];\n spreadPath.push(spreadNode);\n\n if (cycleIndex === undefined) {\n var spreadFragment = context.getFragment(spreadName);\n\n if (spreadFragment) {\n detectCycleRecursive(spreadFragment);\n }\n } else {\n var cyclePath = spreadPath.slice(cycleIndex);\n var fragmentNames = cyclePath.slice(0, -1).map(function (s) {\n return s.name.value;\n });\n context.reportError(new GraphQLError(cycleErrorMessage(spreadName, fragmentNames), cyclePath));\n }\n\n spreadPath.pop();\n }\n\n spreadPathIndexByName[fragmentName] = undefined;\n }\n}\n","import { GraphQLError } from '../../error/GraphQLError';\nexport function duplicateVariableMessage(variableName) {\n return \"There can be only one variable named \\\"\".concat(variableName, \"\\\".\");\n}\n/**\n * Unique variable names\n *\n * A GraphQL operation is only valid if all its variables are uniquely named.\n */\n\nexport function UniqueVariableNames(context) {\n var knownVariableNames = Object.create(null);\n return {\n OperationDefinition: function OperationDefinition() {\n knownVariableNames = Object.create(null);\n },\n VariableDefinition: function VariableDefinition(node) {\n var variableName = node.variable.name.value;\n\n if (knownVariableNames[variableName]) {\n context.reportError(new GraphQLError(duplicateVariableMessage(variableName), [knownVariableNames[variableName], node.variable.name]));\n } else {\n knownVariableNames[variableName] = node.variable.name;\n }\n }\n };\n}\n","import { GraphQLError } from '../../error/GraphQLError';\nexport function undefinedVarMessage(varName, opName) {\n return opName ? \"Variable \\\"$\".concat(varName, \"\\\" is not defined by operation \\\"\").concat(opName, \"\\\".\") : \"Variable \\\"$\".concat(varName, \"\\\" is not defined.\");\n}\n/**\n * No undefined variables\n *\n * A GraphQL operation is only valid if all variables encountered, both directly\n * and via fragment spreads, are defined by that operation.\n */\n\nexport function NoUndefinedVariables(context) {\n var variableNameDefined = Object.create(null);\n return {\n OperationDefinition: {\n enter: function enter() {\n variableNameDefined = Object.create(null);\n },\n leave: function leave(operation) {\n var usages = context.getRecursiveVariableUsages(operation);\n\n for (var _i2 = 0; _i2 < usages.length; _i2++) {\n var _ref2 = usages[_i2];\n var node = _ref2.node;\n var varName = node.name.value;\n\n if (variableNameDefined[varName] !== true) {\n context.reportError(new GraphQLError(undefinedVarMessage(varName, operation.name && operation.name.value), [node, operation]));\n }\n }\n }\n },\n VariableDefinition: function VariableDefinition(node) {\n variableNameDefined[node.variable.name.value] = true;\n }\n };\n}\n","import { GraphQLError } from '../../error/GraphQLError';\nexport function unusedVariableMessage(varName, opName) {\n return opName ? \"Variable \\\"$\".concat(varName, \"\\\" is never used in operation \\\"\").concat(opName, \"\\\".\") : \"Variable \\\"$\".concat(varName, \"\\\" is never used.\");\n}\n/**\n * No unused variables\n *\n * A GraphQL operation is only valid if all variables defined by an operation\n * are used, either directly or within a spread fragment.\n */\n\nexport function NoUnusedVariables(context) {\n var variableDefs = [];\n return {\n OperationDefinition: {\n enter: function enter() {\n variableDefs = [];\n },\n leave: function leave(operation) {\n var variableNameUsed = Object.create(null);\n var usages = context.getRecursiveVariableUsages(operation);\n var opName = operation.name ? operation.name.value : null;\n\n for (var _i2 = 0; _i2 < usages.length; _i2++) {\n var _ref2 = usages[_i2];\n var node = _ref2.node;\n variableNameUsed[node.name.value] = true;\n }\n\n for (var _i4 = 0, _variableDefs2 = variableDefs; _i4 < _variableDefs2.length; _i4++) {\n var variableDef = _variableDefs2[_i4];\n var variableName = variableDef.variable.name.value;\n\n if (variableNameUsed[variableName] !== true) {\n context.reportError(new GraphQLError(unusedVariableMessage(variableName, opName), variableDef));\n }\n }\n }\n },\n VariableDefinition: function VariableDefinition(def) {\n variableDefs.push(def);\n }\n };\n}\n","import inspect from '../../jsutils/inspect';\nimport { GraphQLError } from '../../error/GraphQLError';\nimport { Kind } from '../../language/kinds';\nimport { isNonNullType } from '../../type/definition';\nimport { typeFromAST } from '../../utilities/typeFromAST';\nimport { isTypeSubTypeOf } from '../../utilities/typeComparators';\nexport function badVarPosMessage(varName, varType, expectedType) {\n return \"Variable \\\"$\".concat(varName, \"\\\" of type \\\"\").concat(varType, \"\\\" used in position expecting type \\\"\").concat(expectedType, \"\\\".\");\n}\n/**\n * Variables passed to field arguments conform to type\n */\n\nexport function VariablesInAllowedPosition(context) {\n var varDefMap = Object.create(null);\n return {\n OperationDefinition: {\n enter: function enter() {\n varDefMap = Object.create(null);\n },\n leave: function leave(operation) {\n var usages = context.getRecursiveVariableUsages(operation);\n\n for (var _i2 = 0; _i2 < usages.length; _i2++) {\n var _ref2 = usages[_i2];\n var node = _ref2.node;\n var type = _ref2.type;\n var defaultValue = _ref2.defaultValue;\n var varName = node.name.value;\n var varDef = varDefMap[varName];\n\n if (varDef && type) {\n // A var type is allowed if it is the same or more strict (e.g. is\n // a subtype of) than the expected type. It can be more strict if\n // the variable type is non-null when the expected type is nullable.\n // If both are list types, the variable item type can be more strict\n // than the expected item type (contravariant).\n var schema = context.getSchema();\n var varType = typeFromAST(schema, varDef.type);\n\n if (varType && !allowedVariableUsage(schema, varType, varDef.defaultValue, type, defaultValue)) {\n context.reportError(new GraphQLError(badVarPosMessage(varName, inspect(varType), inspect(type)), [varDef, node]));\n }\n }\n }\n }\n },\n VariableDefinition: function VariableDefinition(node) {\n varDefMap[node.variable.name.value] = node;\n }\n };\n}\n/**\n * Returns true if the variable is allowed in the location it was found,\n * which includes considering if default values exist for either the variable\n * or the location at which it is located.\n */\n\nfunction allowedVariableUsage(schema, varType, varDefaultValue, locationType, locationDefaultValue) {\n if (isNonNullType(locationType) && !isNonNullType(varType)) {\n var hasNonNullVariableDefaultValue = varDefaultValue != null && varDefaultValue.kind !== Kind.NULL;\n var hasLocationDefaultValue = locationDefaultValue !== undefined;\n\n if (!hasNonNullVariableDefaultValue && !hasLocationDefaultValue) {\n return false;\n }\n\n var nullableLocationType = locationType.ofType;\n return isTypeSubTypeOf(schema, varType, nullableLocationType);\n }\n\n return isTypeSubTypeOf(schema, varType, locationType);\n}\n","import find from '../../polyfills/find';\nimport objectEntries from '../../polyfills/objectEntries';\nimport inspect from '../../jsutils/inspect';\nimport { GraphQLError } from '../../error/GraphQLError';\nimport { Kind } from '../../language/kinds';\nimport { print } from '../../language/printer';\nimport { getNamedType, isNonNullType, isLeafType, isObjectType, isListType, isInterfaceType } from '../../type/definition';\nimport { typeFromAST } from '../../utilities/typeFromAST';\nexport function fieldsConflictMessage(responseName, reason) {\n return \"Fields \\\"\".concat(responseName, \"\\\" conflict because \").concat(reasonMessage(reason), \". \") + 'Use different aliases on the fields to fetch both if this was intentional.';\n}\n\nfunction reasonMessage(reason) {\n if (Array.isArray(reason)) {\n return reason.map(function (_ref) {\n var responseName = _ref[0],\n subreason = _ref[1];\n return \"subfields \\\"\".concat(responseName, \"\\\" conflict because \").concat(reasonMessage(subreason));\n }).join(' and ');\n }\n\n return reason;\n}\n/**\n * Overlapping fields can be merged\n *\n * A selection set is only valid if all fields (including spreading any\n * fragments) either correspond to distinct response names or can be merged\n * without ambiguity.\n */\n\n\nexport function OverlappingFieldsCanBeMerged(context) {\n // A memoization for when two fragments are compared \"between\" each other for\n // conflicts. Two fragments may be compared many times, so memoizing this can\n // dramatically improve the performance of this validator.\n var comparedFragmentPairs = new PairSet(); // A cache for the \"field map\" and list of fragment names found in any given\n // selection set. Selection sets may be asked for this information multiple\n // times, so this improves the performance of this validator.\n\n var cachedFieldsAndFragmentNames = new Map();\n return {\n SelectionSet: function SelectionSet(selectionSet) {\n var conflicts = findConflictsWithinSelectionSet(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, context.getParentType(), selectionSet);\n\n for (var _i2 = 0; _i2 < conflicts.length; _i2++) {\n var _ref3 = conflicts[_i2];\n var _ref2$ = _ref3[0];\n var responseName = _ref2$[0];\n var reason = _ref2$[1];\n var fields1 = _ref3[1];\n var fields2 = _ref3[2];\n context.reportError(new GraphQLError(fieldsConflictMessage(responseName, reason), fields1.concat(fields2)));\n }\n }\n };\n}\n\n/**\n * Algorithm:\n *\n * Conflicts occur when two fields exist in a query which will produce the same\n * response name, but represent differing values, thus creating a conflict.\n * The algorithm below finds all conflicts via making a series of comparisons\n * between fields. In order to compare as few fields as possible, this makes\n * a series of comparisons \"within\" sets of fields and \"between\" sets of fields.\n *\n * Given any selection set, a collection produces both a set of fields by\n * also including all inline fragments, as well as a list of fragments\n * referenced by fragment spreads.\n *\n * A) Each selection set represented in the document first compares \"within\" its\n * collected set of fields, finding any conflicts between every pair of\n * overlapping fields.\n * Note: This is the *only time* that a the fields \"within\" a set are compared\n * to each other. After this only fields \"between\" sets are compared.\n *\n * B) Also, if any fragment is referenced in a selection set, then a\n * comparison is made \"between\" the original set of fields and the\n * referenced fragment.\n *\n * C) Also, if multiple fragments are referenced, then comparisons\n * are made \"between\" each referenced fragment.\n *\n * D) When comparing \"between\" a set of fields and a referenced fragment, first\n * a comparison is made between each field in the original set of fields and\n * each field in the the referenced set of fields.\n *\n * E) Also, if any fragment is referenced in the referenced selection set,\n * then a comparison is made \"between\" the original set of fields and the\n * referenced fragment (recursively referring to step D).\n *\n * F) When comparing \"between\" two fragments, first a comparison is made between\n * each field in the first referenced set of fields and each field in the the\n * second referenced set of fields.\n *\n * G) Also, any fragments referenced by the first must be compared to the\n * second, and any fragments referenced by the second must be compared to the\n * first (recursively referring to step F).\n *\n * H) When comparing two fields, if both have selection sets, then a comparison\n * is made \"between\" both selection sets, first comparing the set of fields in\n * the first selection set with the set of fields in the second.\n *\n * I) Also, if any fragment is referenced in either selection set, then a\n * comparison is made \"between\" the other set of fields and the\n * referenced fragment.\n *\n * J) Also, if two fragments are referenced in both selection sets, then a\n * comparison is made \"between\" the two fragments.\n *\n */\n// Find all conflicts found \"within\" a selection set, including those found\n// via spreading in fragments. Called when visiting each SelectionSet in the\n// GraphQL Document.\nfunction findConflictsWithinSelectionSet(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentType, selectionSet) {\n var conflicts = [];\n\n var _getFieldsAndFragment = getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType, selectionSet),\n fieldMap = _getFieldsAndFragment[0],\n fragmentNames = _getFieldsAndFragment[1]; // (A) Find find all conflicts \"within\" the fields of this selection set.\n // Note: this is the *only place* `collectConflictsWithin` is called.\n\n\n collectConflictsWithin(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, fieldMap);\n\n if (fragmentNames.length !== 0) {\n // (B) Then collect conflicts between these fields and those represented by\n // each spread fragment name found.\n var comparedFragments = Object.create(null);\n\n for (var i = 0; i < fragmentNames.length; i++) {\n collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, comparedFragmentPairs, false, fieldMap, fragmentNames[i]); // (C) Then compare this fragment with all other fragments found in this\n // selection set to collect conflicts between fragments spread together.\n // This compares each item in the list of fragment names to every other\n // item in that same list (except for itself).\n\n for (var j = i + 1; j < fragmentNames.length; j++) {\n collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, false, fragmentNames[i], fragmentNames[j]);\n }\n }\n }\n\n return conflicts;\n} // Collect all conflicts found between a set of fields and a fragment reference\n// including via spreading in any nested fragments.\n\n\nfunction collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, comparedFragmentPairs, areMutuallyExclusive, fieldMap, fragmentName) {\n // Memoize so a fragment is not compared for conflicts more than once.\n if (comparedFragments[fragmentName]) {\n return;\n }\n\n comparedFragments[fragmentName] = true;\n var fragment = context.getFragment(fragmentName);\n\n if (!fragment) {\n return;\n }\n\n var _getReferencedFieldsA = getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment),\n fieldMap2 = _getReferencedFieldsA[0],\n fragmentNames2 = _getReferencedFieldsA[1]; // Do not compare a fragment's fieldMap to itself.\n\n\n if (fieldMap === fieldMap2) {\n return;\n } // (D) First collect any conflicts between the provided collection of fields\n // and the collection of fields represented by the given fragment.\n\n\n collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap, fieldMap2); // (E) Then collect any conflicts between the provided collection of fields\n // and any fragment names found in the given fragment.\n\n for (var i = 0; i < fragmentNames2.length; i++) {\n collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, comparedFragmentPairs, areMutuallyExclusive, fieldMap, fragmentNames2[i]);\n }\n} // Collect all conflicts found between two fragments, including via spreading in\n// any nested fragments.\n\n\nfunction collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentName1, fragmentName2) {\n // No need to compare a fragment to itself.\n if (fragmentName1 === fragmentName2) {\n return;\n } // Memoize so two fragments are not compared for conflicts more than once.\n\n\n if (comparedFragmentPairs.has(fragmentName1, fragmentName2, areMutuallyExclusive)) {\n return;\n }\n\n comparedFragmentPairs.add(fragmentName1, fragmentName2, areMutuallyExclusive);\n var fragment1 = context.getFragment(fragmentName1);\n var fragment2 = context.getFragment(fragmentName2);\n\n if (!fragment1 || !fragment2) {\n return;\n }\n\n var _getReferencedFieldsA2 = getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment1),\n fieldMap1 = _getReferencedFieldsA2[0],\n fragmentNames1 = _getReferencedFieldsA2[1];\n\n var _getReferencedFieldsA3 = getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment2),\n fieldMap2 = _getReferencedFieldsA3[0],\n fragmentNames2 = _getReferencedFieldsA3[1]; // (F) First, collect all conflicts between these two collections of fields\n // (not including any nested fragments).\n\n\n collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap1, fieldMap2); // (G) Then collect conflicts between the first fragment and any nested\n // fragments spread in the second fragment.\n\n for (var j = 0; j < fragmentNames2.length; j++) {\n collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentName1, fragmentNames2[j]);\n } // (G) Then collect conflicts between the second fragment and any nested\n // fragments spread in the first fragment.\n\n\n for (var i = 0; i < fragmentNames1.length; i++) {\n collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentNames1[i], fragmentName2);\n }\n} // Find all conflicts found between two selection sets, including those found\n// via spreading in fragments. Called when determining if conflicts exist\n// between the sub-fields of two overlapping fields.\n\n\nfunction findConflictsBetweenSubSelectionSets(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, parentType1, selectionSet1, parentType2, selectionSet2) {\n var conflicts = [];\n\n var _getFieldsAndFragment2 = getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType1, selectionSet1),\n fieldMap1 = _getFieldsAndFragment2[0],\n fragmentNames1 = _getFieldsAndFragment2[1];\n\n var _getFieldsAndFragment3 = getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType2, selectionSet2),\n fieldMap2 = _getFieldsAndFragment3[0],\n fragmentNames2 = _getFieldsAndFragment3[1]; // (H) First, collect all conflicts between these two collections of field.\n\n\n collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap1, fieldMap2); // (I) Then collect conflicts between the first collection of fields and\n // those referenced by each fragment name associated with the second.\n\n if (fragmentNames2.length !== 0) {\n var comparedFragments = Object.create(null);\n\n for (var j = 0; j < fragmentNames2.length; j++) {\n collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, comparedFragmentPairs, areMutuallyExclusive, fieldMap1, fragmentNames2[j]);\n }\n } // (I) Then collect conflicts between the second collection of fields and\n // those referenced by each fragment name associated with the first.\n\n\n if (fragmentNames1.length !== 0) {\n var _comparedFragments = Object.create(null);\n\n for (var i = 0; i < fragmentNames1.length; i++) {\n collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, _comparedFragments, comparedFragmentPairs, areMutuallyExclusive, fieldMap2, fragmentNames1[i]);\n }\n } // (J) Also collect conflicts between any fragment names by the first and\n // fragment names by the second. This compares each item in the first set of\n // names to each item in the second set of names.\n\n\n for (var _i3 = 0; _i3 < fragmentNames1.length; _i3++) {\n for (var _j = 0; _j < fragmentNames2.length; _j++) {\n collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentNames1[_i3], fragmentNames2[_j]);\n }\n }\n\n return conflicts;\n} // Collect all Conflicts \"within\" one collection of fields.\n\n\nfunction collectConflictsWithin(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, fieldMap) {\n // A field map is a keyed collection, where each key represents a response\n // name and the value at that key is a list of all fields which provide that\n // response name. For every response name, if there are multiple fields, they\n // must be compared to find a potential conflict.\n for (var _i5 = 0, _objectEntries2 = objectEntries(fieldMap); _i5 < _objectEntries2.length; _i5++) {\n var _ref5 = _objectEntries2[_i5];\n var responseName = _ref5[0];\n var fields = _ref5[1];\n\n // This compares every field in the list to every other field in this list\n // (except to itself). If the list only has one item, nothing needs to\n // be compared.\n if (fields.length > 1) {\n for (var i = 0; i < fields.length; i++) {\n for (var j = i + 1; j < fields.length; j++) {\n var conflict = findConflict(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, false, // within one collection is never mutually exclusive\n responseName, fields[i], fields[j]);\n\n if (conflict) {\n conflicts.push(conflict);\n }\n }\n }\n }\n }\n} // Collect all Conflicts between two collections of fields. This is similar to,\n// but different from the `collectConflictsWithin` function above. This check\n// assumes that `collectConflictsWithin` has already been called on each\n// provided collection of fields. This is true because this validator traverses\n// each individual selection set.\n\n\nfunction collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentFieldsAreMutuallyExclusive, fieldMap1, fieldMap2) {\n // A field map is a keyed collection, where each key represents a response\n // name and the value at that key is a list of all fields which provide that\n // response name. For any response name which appears in both provided field\n // maps, each field from the first field map must be compared to every field\n // in the second field map to find potential conflicts.\n for (var _i7 = 0, _Object$keys2 = Object.keys(fieldMap1); _i7 < _Object$keys2.length; _i7++) {\n var responseName = _Object$keys2[_i7];\n var fields2 = fieldMap2[responseName];\n\n if (fields2) {\n var fields1 = fieldMap1[responseName];\n\n for (var i = 0; i < fields1.length; i++) {\n for (var j = 0; j < fields2.length; j++) {\n var conflict = findConflict(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentFieldsAreMutuallyExclusive, responseName, fields1[i], fields2[j]);\n\n if (conflict) {\n conflicts.push(conflict);\n }\n }\n }\n }\n }\n} // Determines if there is a conflict between two particular fields, including\n// comparing their sub-fields.\n\n\nfunction findConflict(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentFieldsAreMutuallyExclusive, responseName, field1, field2) {\n var parentType1 = field1[0],\n node1 = field1[1],\n def1 = field1[2];\n var parentType2 = field2[0],\n node2 = field2[1],\n def2 = field2[2]; // If it is known that two fields could not possibly apply at the same\n // time, due to the parent types, then it is safe to permit them to diverge\n // in aliased field or arguments used as they will not present any ambiguity\n // by differing.\n // It is known that two parent types could never overlap if they are\n // different Object types. Interface or Union types might overlap - if not\n // in the current state of the schema, then perhaps in some future version,\n // thus may not safely diverge.\n\n var areMutuallyExclusive = parentFieldsAreMutuallyExclusive || parentType1 !== parentType2 && isObjectType(parentType1) && isObjectType(parentType2); // The return type for each field.\n\n var type1 = def1 && def1.type;\n var type2 = def2 && def2.type;\n\n if (!areMutuallyExclusive) {\n // Two aliases must refer to the same field.\n var name1 = node1.name.value;\n var name2 = node2.name.value;\n\n if (name1 !== name2) {\n return [[responseName, \"\".concat(name1, \" and \").concat(name2, \" are different fields\")], [node1], [node2]];\n } // Two field calls must have the same arguments.\n\n\n if (!sameArguments(node1.arguments || [], node2.arguments || [])) {\n return [[responseName, 'they have differing arguments'], [node1], [node2]];\n }\n }\n\n if (type1 && type2 && doTypesConflict(type1, type2)) {\n return [[responseName, \"they return conflicting types \".concat(inspect(type1), \" and \").concat(inspect(type2))], [node1], [node2]];\n } // Collect and compare sub-fields. Use the same \"visited fragment names\" list\n // for both collections so fields in a fragment reference are never\n // compared to themselves.\n\n\n var selectionSet1 = node1.selectionSet;\n var selectionSet2 = node2.selectionSet;\n\n if (selectionSet1 && selectionSet2) {\n var conflicts = findConflictsBetweenSubSelectionSets(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, getNamedType(type1), selectionSet1, getNamedType(type2), selectionSet2);\n return subfieldConflicts(conflicts, responseName, node1, node2);\n }\n}\n\nfunction sameArguments(arguments1, arguments2) {\n if (arguments1.length !== arguments2.length) {\n return false;\n }\n\n return arguments1.every(function (argument1) {\n var argument2 = find(arguments2, function (argument) {\n return argument.name.value === argument1.name.value;\n });\n\n if (!argument2) {\n return false;\n }\n\n return sameValue(argument1.value, argument2.value);\n });\n}\n\nfunction sameValue(value1, value2) {\n return !value1 && !value2 || print(value1) === print(value2);\n} // Two types conflict if both types could not apply to a value simultaneously.\n// Composite types are ignored as their individual field types will be compared\n// later recursively. However List and Non-Null types must match.\n\n\nfunction doTypesConflict(type1, type2) {\n if (isListType(type1)) {\n return isListType(type2) ? doTypesConflict(type1.ofType, type2.ofType) : true;\n }\n\n if (isListType(type2)) {\n return true;\n }\n\n if (isNonNullType(type1)) {\n return isNonNullType(type2) ? doTypesConflict(type1.ofType, type2.ofType) : true;\n }\n\n if (isNonNullType(type2)) {\n return true;\n }\n\n if (isLeafType(type1) || isLeafType(type2)) {\n return type1 !== type2;\n }\n\n return false;\n} // Given a selection set, return the collection of fields (a mapping of response\n// name to field nodes and definitions) as well as a list of fragment names\n// referenced via fragment spreads.\n\n\nfunction getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType, selectionSet) {\n var cached = cachedFieldsAndFragmentNames.get(selectionSet);\n\n if (!cached) {\n var nodeAndDefs = Object.create(null);\n var fragmentNames = Object.create(null);\n\n _collectFieldsAndFragmentNames(context, parentType, selectionSet, nodeAndDefs, fragmentNames);\n\n cached = [nodeAndDefs, Object.keys(fragmentNames)];\n cachedFieldsAndFragmentNames.set(selectionSet, cached);\n }\n\n return cached;\n} // Given a reference to a fragment, return the represented collection of fields\n// as well as a list of nested fragment names referenced via fragment spreads.\n\n\nfunction getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment) {\n // Short-circuit building a type from the node if possible.\n var cached = cachedFieldsAndFragmentNames.get(fragment.selectionSet);\n\n if (cached) {\n return cached;\n }\n\n var fragmentType = typeFromAST(context.getSchema(), fragment.typeCondition);\n return getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragmentType, fragment.selectionSet);\n}\n\nfunction _collectFieldsAndFragmentNames(context, parentType, selectionSet, nodeAndDefs, fragmentNames) {\n for (var _i9 = 0, _selectionSet$selecti2 = selectionSet.selections; _i9 < _selectionSet$selecti2.length; _i9++) {\n var selection = _selectionSet$selecti2[_i9];\n\n switch (selection.kind) {\n case Kind.FIELD:\n {\n var fieldName = selection.name.value;\n var fieldDef = void 0;\n\n if (isObjectType(parentType) || isInterfaceType(parentType)) {\n fieldDef = parentType.getFields()[fieldName];\n }\n\n var responseName = selection.alias ? selection.alias.value : fieldName;\n\n if (!nodeAndDefs[responseName]) {\n nodeAndDefs[responseName] = [];\n }\n\n nodeAndDefs[responseName].push([parentType, selection, fieldDef]);\n break;\n }\n\n case Kind.FRAGMENT_SPREAD:\n fragmentNames[selection.name.value] = true;\n break;\n\n case Kind.INLINE_FRAGMENT:\n {\n var typeCondition = selection.typeCondition;\n var inlineFragmentType = typeCondition ? typeFromAST(context.getSchema(), typeCondition) : parentType;\n\n _collectFieldsAndFragmentNames(context, inlineFragmentType, selection.selectionSet, nodeAndDefs, fragmentNames);\n\n break;\n }\n }\n }\n} // Given a series of Conflicts which occurred between two sub-fields, generate\n// a single Conflict.\n\n\nfunction subfieldConflicts(conflicts, responseName, node1, node2) {\n if (conflicts.length > 0) {\n return [[responseName, conflicts.map(function (_ref6) {\n var reason = _ref6[0];\n return reason;\n })], conflicts.reduce(function (allFields, _ref7) {\n var fields1 = _ref7[1];\n return allFields.concat(fields1);\n }, [node1]), conflicts.reduce(function (allFields, _ref8) {\n var fields2 = _ref8[2];\n return allFields.concat(fields2);\n }, [node2])];\n }\n}\n/**\n * A way to keep track of pairs of things when the ordering of the pair does\n * not matter. We do this by maintaining a sort of double adjacency sets.\n */\n\n\nvar PairSet =\n/*#__PURE__*/\nfunction () {\n function PairSet() {\n this._data = Object.create(null);\n }\n\n var _proto = PairSet.prototype;\n\n _proto.has = function has(a, b, areMutuallyExclusive) {\n var first = this._data[a];\n var result = first && first[b];\n\n if (result === undefined) {\n return false;\n } // areMutuallyExclusive being false is a superset of being true,\n // hence if we want to know if this PairSet \"has\" these two with no\n // exclusivity, we have to ensure it was added as such.\n\n\n if (areMutuallyExclusive === false) {\n return result === false;\n }\n\n return true;\n };\n\n _proto.add = function add(a, b, areMutuallyExclusive) {\n _pairSetAdd(this._data, a, b, areMutuallyExclusive);\n\n _pairSetAdd(this._data, b, a, areMutuallyExclusive);\n };\n\n return PairSet;\n}();\n\nfunction _pairSetAdd(data, a, b, areMutuallyExclusive) {\n var map = data[a];\n\n if (!map) {\n map = Object.create(null);\n data[a] = map;\n }\n\n map[b] = areMutuallyExclusive;\n}\n","import { GraphQLError } from '../../error/GraphQLError';\nexport function schemaDefinitionNotAloneMessage() {\n return 'Must provide only one schema definition.';\n}\nexport function canNotDefineSchemaWithinExtensionMessage() {\n return 'Cannot define a new schema within a schema extension.';\n}\n/**\n * Lone Schema definition\n *\n * A GraphQL document is only valid if it contains only one schema definition.\n */\n\nexport function LoneSchemaDefinition(context) {\n var oldSchema = context.getSchema();\n var alreadyDefined = oldSchema && (oldSchema.astNode || oldSchema.getQueryType() || oldSchema.getMutationType() || oldSchema.getSubscriptionType());\n var schemaDefinitionsCount = 0;\n return {\n SchemaDefinition: function SchemaDefinition(node) {\n if (alreadyDefined) {\n context.reportError(new GraphQLError(canNotDefineSchemaWithinExtensionMessage(), node));\n return;\n }\n\n if (schemaDefinitionsCount > 0) {\n context.reportError(new GraphQLError(schemaDefinitionNotAloneMessage(), node));\n }\n\n ++schemaDefinitionsCount;\n }\n };\n}\n","import { GraphQLError } from '../../error/GraphQLError';\nexport function duplicateOperationTypeMessage(operation) {\n return \"There can be only one \".concat(operation, \" type in schema.\");\n}\nexport function existedOperationTypeMessage(operation) {\n return \"Type for \".concat(operation, \" already defined in the schema. It cannot be redefined.\");\n}\n/**\n * Unique operation types\n *\n * A GraphQL document is only valid if it has only one type per operation.\n */\n\nexport function UniqueOperationTypes(context) {\n var schema = context.getSchema();\n var definedOperationTypes = Object.create(null);\n var existingOperationTypes = schema ? {\n query: schema.getQueryType(),\n mutation: schema.getMutationType(),\n subscription: schema.getSubscriptionType()\n } : {};\n return {\n SchemaDefinition: checkOperationTypes,\n SchemaExtension: checkOperationTypes\n };\n\n function checkOperationTypes(node) {\n if (node.operationTypes) {\n for (var _i2 = 0, _ref2 = node.operationTypes || []; _i2 < _ref2.length; _i2++) {\n var operationType = _ref2[_i2];\n var operation = operationType.operation;\n var alreadyDefinedOperationType = definedOperationTypes[operation];\n\n if (existingOperationTypes[operation]) {\n context.reportError(new GraphQLError(existedOperationTypeMessage(operation), operationType));\n } else if (alreadyDefinedOperationType) {\n context.reportError(new GraphQLError(duplicateOperationTypeMessage(operation), [alreadyDefinedOperationType, operationType]));\n } else {\n definedOperationTypes[operation] = operationType;\n }\n }\n }\n\n return false;\n }\n}\n","import { GraphQLError } from '../../error/GraphQLError';\nexport function duplicateTypeNameMessage(typeName) {\n return \"There can be only one type named \\\"\".concat(typeName, \"\\\".\");\n}\nexport function existedTypeNameMessage(typeName) {\n return \"Type \\\"\".concat(typeName, \"\\\" already exists in the schema. It cannot also be defined in this type definition.\");\n}\n/**\n * Unique type names\n *\n * A GraphQL document is only valid if all defined types have unique names.\n */\n\nexport function UniqueTypeNames(context) {\n var knownTypeNames = Object.create(null);\n var schema = context.getSchema();\n return {\n ScalarTypeDefinition: checkTypeName,\n ObjectTypeDefinition: checkTypeName,\n InterfaceTypeDefinition: checkTypeName,\n UnionTypeDefinition: checkTypeName,\n EnumTypeDefinition: checkTypeName,\n InputObjectTypeDefinition: checkTypeName\n };\n\n function checkTypeName(node) {\n var typeName = node.name.value;\n\n if (schema && schema.getType(typeName)) {\n context.reportError(new GraphQLError(existedTypeNameMessage(typeName), node.name));\n return;\n }\n\n if (knownTypeNames[typeName]) {\n context.reportError(new GraphQLError(duplicateTypeNameMessage(typeName), [knownTypeNames[typeName], node.name]));\n } else {\n knownTypeNames[typeName] = node.name;\n }\n\n return false;\n }\n}\n","import { GraphQLError } from '../../error/GraphQLError';\nimport { isEnumType } from '../../type/definition';\nexport function duplicateEnumValueNameMessage(typeName, valueName) {\n return \"Enum value \\\"\".concat(typeName, \".\").concat(valueName, \"\\\" can only be defined once.\");\n}\nexport function existedEnumValueNameMessage(typeName, valueName) {\n return \"Enum value \\\"\".concat(typeName, \".\").concat(valueName, \"\\\" already exists in the schema. It cannot also be defined in this type extension.\");\n}\n/**\n * Unique enum value names\n *\n * A GraphQL enum type is only valid if all its values are uniquely named.\n */\n\nexport function UniqueEnumValueNames(context) {\n var schema = context.getSchema();\n var existingTypeMap = schema ? schema.getTypeMap() : Object.create(null);\n var knownValueNames = Object.create(null);\n return {\n EnumTypeDefinition: checkValueUniqueness,\n EnumTypeExtension: checkValueUniqueness\n };\n\n function checkValueUniqueness(node) {\n var typeName = node.name.value;\n\n if (!knownValueNames[typeName]) {\n knownValueNames[typeName] = Object.create(null);\n }\n\n if (node.values) {\n var valueNames = knownValueNames[typeName];\n\n for (var _i2 = 0, _node$values2 = node.values; _i2 < _node$values2.length; _i2++) {\n var valueDef = _node$values2[_i2];\n var valueName = valueDef.name.value;\n var existingType = existingTypeMap[typeName];\n\n if (isEnumType(existingType) && existingType.getValue(valueName)) {\n context.reportError(new GraphQLError(existedEnumValueNameMessage(typeName, valueName), valueDef.name));\n } else if (valueNames[valueName]) {\n context.reportError(new GraphQLError(duplicateEnumValueNameMessage(typeName, valueName), [valueNames[valueName], valueDef.name]));\n } else {\n valueNames[valueName] = valueDef.name;\n }\n }\n }\n\n return false;\n }\n}\n","import { GraphQLError } from '../../error/GraphQLError';\nimport { isObjectType, isInterfaceType, isInputObjectType } from '../../type/definition';\nexport function duplicateFieldDefinitionNameMessage(typeName, fieldName) {\n return \"Field \\\"\".concat(typeName, \".\").concat(fieldName, \"\\\" can only be defined once.\");\n}\nexport function existedFieldDefinitionNameMessage(typeName, fieldName) {\n return \"Field \\\"\".concat(typeName, \".\").concat(fieldName, \"\\\" already exists in the schema. It cannot also be defined in this type extension.\");\n}\n/**\n * Unique field definition names\n *\n * A GraphQL complex type is only valid if all its fields are uniquely named.\n */\n\nexport function UniqueFieldDefinitionNames(context) {\n var schema = context.getSchema();\n var existingTypeMap = schema ? schema.getTypeMap() : Object.create(null);\n var knownFieldNames = Object.create(null);\n return {\n InputObjectTypeDefinition: checkFieldUniqueness,\n InputObjectTypeExtension: checkFieldUniqueness,\n InterfaceTypeDefinition: checkFieldUniqueness,\n InterfaceTypeExtension: checkFieldUniqueness,\n ObjectTypeDefinition: checkFieldUniqueness,\n ObjectTypeExtension: checkFieldUniqueness\n };\n\n function checkFieldUniqueness(node) {\n var typeName = node.name.value;\n\n if (!knownFieldNames[typeName]) {\n knownFieldNames[typeName] = Object.create(null);\n }\n\n if (node.fields) {\n var fieldNames = knownFieldNames[typeName];\n\n for (var _i2 = 0, _node$fields2 = node.fields; _i2 < _node$fields2.length; _i2++) {\n var fieldDef = _node$fields2[_i2];\n var fieldName = fieldDef.name.value;\n\n if (hasField(existingTypeMap[typeName], fieldName)) {\n context.reportError(new GraphQLError(existedFieldDefinitionNameMessage(typeName, fieldName), fieldDef.name));\n } else if (fieldNames[fieldName]) {\n context.reportError(new GraphQLError(duplicateFieldDefinitionNameMessage(typeName, fieldName), [fieldNames[fieldName], fieldDef.name]));\n } else {\n fieldNames[fieldName] = fieldDef.name;\n }\n }\n }\n\n return false;\n }\n}\n\nfunction hasField(type, fieldName) {\n if (isObjectType(type) || isInterfaceType(type) || isInputObjectType(type)) {\n return type.getFields()[fieldName];\n }\n\n return false;\n}\n","import { GraphQLError } from '../../error/GraphQLError';\nexport function duplicateDirectiveNameMessage(directiveName) {\n return \"There can be only one directive named \\\"\".concat(directiveName, \"\\\".\");\n}\nexport function existedDirectiveNameMessage(directiveName) {\n return \"Directive \\\"\".concat(directiveName, \"\\\" already exists in the schema. It cannot be redefined.\");\n}\n/**\n * Unique directive names\n *\n * A GraphQL document is only valid if all defined directives have unique names.\n */\n\nexport function UniqueDirectiveNames(context) {\n var knownDirectiveNames = Object.create(null);\n var schema = context.getSchema();\n return {\n DirectiveDefinition: function DirectiveDefinition(node) {\n var directiveName = node.name.value;\n\n if (schema && schema.getDirective(directiveName)) {\n context.reportError(new GraphQLError(existedDirectiveNameMessage(directiveName), node.name));\n return;\n }\n\n if (knownDirectiveNames[directiveName]) {\n context.reportError(new GraphQLError(duplicateDirectiveNameMessage(directiveName), [knownDirectiveNames[directiveName], node.name]));\n } else {\n knownDirectiveNames[directiveName] = node.name;\n }\n\n return false;\n }\n };\n}\n","var _defKindToExtKind;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport didYouMean from '../../jsutils/didYouMean';\nimport suggestionList from '../../jsutils/suggestionList';\nimport { GraphQLError } from '../../error/GraphQLError';\nimport { Kind } from '../../language/kinds';\nimport { isTypeDefinitionNode } from '../../language/predicates';\nimport { isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType } from '../../type/definition';\nexport function extendingUnknownTypeMessage(typeName, suggestedTypes) {\n return \"Cannot extend type \\\"\".concat(typeName, \"\\\" because it is not defined.\") + didYouMean(suggestedTypes.map(function (x) {\n return \"\\\"\".concat(x, \"\\\"\");\n }));\n}\nexport function extendingDifferentTypeKindMessage(typeName, kind) {\n return \"Cannot extend non-\".concat(kind, \" type \\\"\").concat(typeName, \"\\\".\");\n}\n/**\n * Possible type extension\n *\n * A type extension is only valid if the type is defined and has the same kind.\n */\n\nexport function PossibleTypeExtensions(context) {\n var schema = context.getSchema();\n var definedTypes = Object.create(null);\n\n for (var _i2 = 0, _context$getDocument$2 = context.getDocument().definitions; _i2 < _context$getDocument$2.length; _i2++) {\n var def = _context$getDocument$2[_i2];\n\n if (isTypeDefinitionNode(def)) {\n definedTypes[def.name.value] = def;\n }\n }\n\n return {\n ScalarTypeExtension: checkExtension,\n ObjectTypeExtension: checkExtension,\n InterfaceTypeExtension: checkExtension,\n UnionTypeExtension: checkExtension,\n EnumTypeExtension: checkExtension,\n InputObjectTypeExtension: checkExtension\n };\n\n function checkExtension(node) {\n var typeName = node.name.value;\n var defNode = definedTypes[typeName];\n var existingType = schema && schema.getType(typeName);\n\n if (defNode) {\n var expectedKind = defKindToExtKind[defNode.kind];\n\n if (expectedKind !== node.kind) {\n context.reportError(new GraphQLError(extendingDifferentTypeKindMessage(typeName, extensionKindToTypeName(expectedKind)), [defNode, node]));\n }\n } else if (existingType) {\n var _expectedKind = typeToExtKind(existingType);\n\n if (_expectedKind !== node.kind) {\n context.reportError(new GraphQLError(extendingDifferentTypeKindMessage(typeName, extensionKindToTypeName(_expectedKind)), node));\n }\n } else {\n var allTypeNames = Object.keys(definedTypes);\n\n if (schema) {\n allTypeNames = allTypeNames.concat(Object.keys(schema.getTypeMap()));\n }\n\n var suggestedTypes = suggestionList(typeName, allTypeNames);\n context.reportError(new GraphQLError(extendingUnknownTypeMessage(typeName, suggestedTypes), node.name));\n }\n }\n}\nvar defKindToExtKind = (_defKindToExtKind = {}, _defineProperty(_defKindToExtKind, Kind.SCALAR_TYPE_DEFINITION, Kind.SCALAR_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.OBJECT_TYPE_DEFINITION, Kind.OBJECT_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.INTERFACE_TYPE_DEFINITION, Kind.INTERFACE_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.UNION_TYPE_DEFINITION, Kind.UNION_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.ENUM_TYPE_DEFINITION, Kind.ENUM_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.INPUT_OBJECT_TYPE_DEFINITION, Kind.INPUT_OBJECT_TYPE_EXTENSION), _defKindToExtKind);\n\nfunction typeToExtKind(type) {\n if (isScalarType(type)) {\n return Kind.SCALAR_TYPE_EXTENSION;\n } else if (isObjectType(type)) {\n return Kind.OBJECT_TYPE_EXTENSION;\n } else if (isInterfaceType(type)) {\n return Kind.INTERFACE_TYPE_EXTENSION;\n } else if (isUnionType(type)) {\n return Kind.UNION_TYPE_EXTENSION;\n } else if (isEnumType(type)) {\n return Kind.ENUM_TYPE_EXTENSION;\n } else if (isInputObjectType(type)) {\n return Kind.INPUT_OBJECT_TYPE_EXTENSION;\n }\n}\n\nfunction extensionKindToTypeName(kind) {\n switch (kind) {\n case Kind.SCALAR_TYPE_EXTENSION:\n return 'scalar';\n\n case Kind.OBJECT_TYPE_EXTENSION:\n return 'object';\n\n case Kind.INTERFACE_TYPE_EXTENSION:\n return 'interface';\n\n case Kind.UNION_TYPE_EXTENSION:\n return 'union';\n\n case Kind.ENUM_TYPE_EXTENSION:\n return 'enum';\n\n case Kind.INPUT_OBJECT_TYPE_EXTENSION:\n return 'input object';\n\n default:\n return 'unknown type';\n }\n}\n","// the whatwg-fetch polyfill installs the fetch() function\n// on the global object (window or self)\n//\n// Return that as the export for use in Webpack, Browserify etc.\nrequire('whatwg-fetch');\nmodule.exports = self.fetch.bind(self);\n","const fs = require('fs')\nconst path = require('path')\nconst os = require('os')\n\nfunction log (message) {\n console.log(`[dotenv][DEBUG] ${message}`)\n}\n\nconst NEWLINE = '\\n'\nconst RE_INI_KEY_VAL = /^\\s*([\\w.-]+)\\s*=\\s*(\"[^\"]*\"|'[^']*'|.*?)(\\s+#.*)?$/\nconst RE_NEWLINES = /\\\\n/g\nconst NEWLINES_MATCH = /\\r\\n|\\n|\\r/\n\n// Parses src into an Object\nfunction parse (src, options) {\n const debug = Boolean(options && options.debug)\n const multiline = Boolean(options && options.multiline)\n const obj = {}\n\n // convert Buffers before splitting into lines and processing\n const lines = src.toString().split(NEWLINES_MATCH)\n\n for (let idx = 0; idx < lines.length; idx++) {\n let line = lines[idx]\n\n // matching \"KEY' and 'VAL' in 'KEY=VAL'\n const keyValueArr = line.match(RE_INI_KEY_VAL)\n // matched?\n if (keyValueArr != null) {\n const key = keyValueArr[1]\n // default undefined or missing values to empty string\n let val = (keyValueArr[2] || '')\n let end = val.length - 1\n const isDoubleQuoted = val[0] === '\"' && val[end] === '\"'\n const isSingleQuoted = val[0] === \"'\" && val[end] === \"'\"\n\n const isMultilineDoubleQuoted = val[0] === '\"' && val[end] !== '\"'\n const isMultilineSingleQuoted = val[0] === \"'\" && val[end] !== \"'\"\n\n // if parsing line breaks and the value starts with a quote\n if (multiline && (isMultilineDoubleQuoted || isMultilineSingleQuoted)) {\n const quoteChar = isMultilineDoubleQuoted ? '\"' : \"'\"\n\n val = val.substring(1)\n\n while (idx++ < lines.length - 1) {\n line = lines[idx]\n end = line.length - 1\n if (line[end] === quoteChar) {\n val += NEWLINE + line.substring(0, end)\n break\n }\n val += NEWLINE + line\n }\n // if single or double quoted, remove quotes\n } else if (isSingleQuoted || isDoubleQuoted) {\n val = val.substring(1, end)\n\n // if double quoted, expand newlines\n if (isDoubleQuoted) {\n val = val.replace(RE_NEWLINES, NEWLINE)\n }\n } else {\n // remove surrounding whitespace\n val = val.trim()\n }\n\n obj[key] = val\n } else if (debug) {\n const trimmedLine = line.trim()\n\n // ignore empty and commented lines\n if (trimmedLine.length && trimmedLine[0] !== '#') {\n log(`Failed to match key and value when parsing line ${idx + 1}: ${line}`)\n }\n }\n }\n\n return obj\n}\n\nfunction resolveHome (envPath) {\n return envPath[0] === '~' ? path.join(os.homedir(), envPath.slice(1)) : envPath\n}\n\n// Populates process.env from .env file\nfunction config (options) {\n let dotenvPath = path.resolve(process.cwd(), '.env')\n let encoding = 'utf8'\n const debug = Boolean(options && options.debug)\n const override = Boolean(options && options.override)\n const multiline = Boolean(options && options.multiline)\n\n if (options) {\n if (options.path != null) {\n dotenvPath = resolveHome(options.path)\n }\n if (options.encoding != null) {\n encoding = options.encoding\n }\n }\n\n try {\n // specifying an encoding returns a string instead of a buffer\n const parsed = DotenvModule.parse(fs.readFileSync(dotenvPath, { encoding }), { debug, multiline })\n\n Object.keys(parsed).forEach(function (key) {\n if (!Object.prototype.hasOwnProperty.call(process.env, key)) {\n process.env[key] = parsed[key]\n } else {\n if (override === true) {\n process.env[key] = parsed[key]\n }\n\n if (debug) {\n if (override === true) {\n log(`\"${key}\" is already defined in \\`process.env\\` and WAS overwritten`)\n } else {\n log(`\"${key}\" is already defined in \\`process.env\\` and was NOT overwritten`)\n }\n }\n }\n })\n\n return { parsed }\n } catch (e) {\n if (debug) {\n log(`Failed to load ${dotenvPath} ${e.message}`)\n }\n\n return { error: e }\n }\n}\n\nconst DotenvModule = {\n config,\n parse\n}\n\nmodule.exports.config = DotenvModule.config\nmodule.exports.parse = DotenvModule.parse\nmodule.exports = DotenvModule\n","export default function _pipe(f, g) {\n return function () {\n return g.call(this, f.apply(this, arguments));\n };\n}","import _isArray from './_isArray.js';\n\n/**\n * This checks whether a function has a [methodname] function. If it isn't an\n * array it will execute that function otherwise it will default to the ramda\n * implementation.\n *\n * @private\n * @param {Function} fn ramda implemtation\n * @param {String} methodname property to check for a custom implementation\n * @return {Object} Whatever the return value of the method is.\n */\nexport default function _checkForMethod(methodname, fn) {\n return function () {\n var length = arguments.length;\n if (length === 0) {\n return fn();\n }\n var obj = arguments[length - 1];\n return _isArray(obj) || typeof obj[methodname] !== 'function' ? fn.apply(this, arguments) : obj[methodname].apply(obj, Array.prototype.slice.call(arguments, 0, length - 1));\n };\n}","import _checkForMethod from './internal/_checkForMethod.js';\nimport _curry3 from './internal/_curry3.js';\n\n/**\n * Returns the elements of the given list or string (or object with a `slice`\n * method) from `fromIndex` (inclusive) to `toIndex` (exclusive).\n *\n * Dispatches to the `slice` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @sig Number -> Number -> String -> String\n * @param {Number} fromIndex The start index (inclusive).\n * @param {Number} toIndex The end index (exclusive).\n * @param {*} list\n * @return {*}\n * @example\n *\n * R.slice(1, 3, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(1, Infinity, ['a', 'b', 'c', 'd']); //=> ['b', 'c', 'd']\n * R.slice(0, -1, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c']\n * R.slice(-3, -1, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(0, 3, 'ramda'); //=> 'ram'\n */\nvar slice = /*#__PURE__*/_curry3( /*#__PURE__*/_checkForMethod('slice', function slice(fromIndex, toIndex, list) {\n return Array.prototype.slice.call(list, fromIndex, toIndex);\n}));\nexport default slice;","import _checkForMethod from './internal/_checkForMethod.js';\nimport _curry1 from './internal/_curry1.js';\nimport slice from './slice.js';\n\n/**\n * Returns all but the first element of the given list or string (or object\n * with a `tail` method).\n *\n * Dispatches to the `slice` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.head, R.init, R.last\n * @example\n *\n * R.tail([1, 2, 3]); //=> [2, 3]\n * R.tail([1, 2]); //=> [2]\n * R.tail([1]); //=> []\n * R.tail([]); //=> []\n *\n * R.tail('abc'); //=> 'bc'\n * R.tail('ab'); //=> 'b'\n * R.tail('a'); //=> ''\n * R.tail(''); //=> ''\n */\nvar tail = /*#__PURE__*/_curry1( /*#__PURE__*/_checkForMethod('tail', /*#__PURE__*/slice(1, Infinity)));\nexport default tail;","import _arity from './internal/_arity.js';\nimport _pipe from './internal/_pipe.js';\nimport reduce from './reduce.js';\nimport tail from './tail.js';\n\n/**\n * Performs left-to-right function composition. The leftmost function may have\n * any arity; the remaining functions must be unary.\n *\n * In some libraries this function is named `sequence`.\n *\n * **Note:** The result of pipe is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.compose\n * @example\n *\n * const f = R.pipe(Math.pow, R.negate, R.inc);\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipe(f, g, h)(a, b) = h(g(f(a, b)))\n */\nexport default function pipe() {\n if (arguments.length === 0) {\n throw new Error('pipe requires at least one argument');\n }\n return _arity(arguments[0].length, reduce(_pipe, arguments[0], tail(arguments)));\n}","import _curry2 from './_curry2.js';\nimport _xfBase from './_xfBase.js';\n\nvar XMap = /*#__PURE__*/function () {\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XMap.prototype['@@transducer/init'] = _xfBase.init;\n XMap.prototype['@@transducer/result'] = _xfBase.result;\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n\n return XMap;\n}();\n\nvar _xmap = /*#__PURE__*/_curry2(function _xmap(f, xf) {\n return new XMap(f, xf);\n});\nexport default _xmap;","import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _map from './internal/_map.js';\nimport _reduce from './internal/_reduce.js';\nimport _xmap from './internal/_xmap.js';\nimport curryN from './curryN.js';\nimport keys from './keys.js';\n\n/**\n * Takes a function and\n * a [functor](https://github.com/fantasyland/fantasy-land#functor),\n * applies the function to each of the functor's values, and returns\n * a functor of the same shape.\n *\n * Ramda provides suitable `map` implementations for `Array` and `Object`,\n * so this function may be applied to `[1, 2, 3]` or `{x: 1, y: 2, z: 3}`.\n *\n * Dispatches to the `map` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * Also treats functions as functors and will compose them together.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => (a -> b) -> f a -> f b\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {Array} list The list to be iterated over.\n * @return {Array} The new list.\n * @see R.transduce, R.addIndex\n * @example\n *\n * const double = x => x * 2;\n *\n * R.map(double, [1, 2, 3]); //=> [2, 4, 6]\n *\n * R.map(double, {x: 1, y: 2, z: 3}); //=> {x: 2, y: 4, z: 6}\n * @symb R.map(f, [a, b]) = [f(a), f(b)]\n * @symb R.map(f, { x: a, y: b }) = { x: f(a), y: f(b) }\n * @symb R.map(f, functor_o) = functor_o.map(f)\n */\nvar map = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['fantasy-land/map', 'map'], _xmap, function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return curryN(functor.length, function () {\n return fn.call(this, functor.apply(this, arguments));\n });\n case '[object Object]':\n return _reduce(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, keys(functor));\n default:\n return _map(fn, functor);\n }\n}));\nexport default map;","export default function _map(fn, functor) {\n var idx = 0;\n var len = functor.length;\n var result = Array(len);\n while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\n }\n return result;\n}","export default function _identity(x) {\n return x;\n}","import _curry1 from './internal/_curry1.js';\nimport _identity from './internal/_identity.js';\n\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * const obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\nvar identity = /*#__PURE__*/_curry1(_identity);\nexport default identity;","require('../modules/es6.object.create');\nrequire('../modules/es6.object.define-property');\nrequire('../modules/es6.object.define-properties');\nrequire('../modules/es6.object.get-own-property-descriptor');\nrequire('../modules/es6.object.get-prototype-of');\nrequire('../modules/es6.object.keys');\nrequire('../modules/es6.object.get-own-property-names');\nrequire('../modules/es6.object.freeze');\nrequire('../modules/es6.object.seal');\nrequire('../modules/es6.object.prevent-extensions');\nrequire('../modules/es6.object.is-frozen');\nrequire('../modules/es6.object.is-sealed');\nrequire('../modules/es6.object.is-extensible');\nrequire('../modules/es6.function.bind');\nrequire('../modules/es6.array.is-array');\nrequire('../modules/es6.array.join');\nrequire('../modules/es6.array.slice');\nrequire('../modules/es6.array.sort');\nrequire('../modules/es6.array.for-each');\nrequire('../modules/es6.array.map');\nrequire('../modules/es6.array.filter');\nrequire('../modules/es6.array.some');\nrequire('../modules/es6.array.every');\nrequire('../modules/es6.array.reduce');\nrequire('../modules/es6.array.reduce-right');\nrequire('../modules/es6.array.index-of');\nrequire('../modules/es6.array.last-index-of');\nrequire('../modules/es6.number.to-fixed');\nrequire('../modules/es6.number.to-precision');\nrequire('../modules/es6.date.now');\nrequire('../modules/es6.date.to-iso-string');\nrequire('../modules/es6.date.to-json');\nrequire('../modules/es6.parse-int');\nrequire('../modules/es6.parse-float');\nrequire('../modules/es6.string.trim');\nrequire('../modules/es6.regexp.to-string');\nmodule.exports = require('../modules/_core');\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)\nvar $export = require('./_export');\n\n$export($export.P, 'Function', { bind: require('./_bind') });\n","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","'use strict';\nvar $export = require('./_export');\nvar toInteger = require('./_to-integer');\nvar aNumberValue = require('./_a-number-value');\nvar repeat = require('./_string-repeat');\nvar $toFixed = 1.0.toFixed;\nvar floor = Math.floor;\nvar data = [0, 0, 0, 0, 0, 0];\nvar ERROR = 'Number.toFixed: incorrect invocation!';\nvar ZERO = '0';\n\nvar multiply = function (n, c) {\n var i = -1;\n var c2 = c;\n while (++i < 6) {\n c2 += n * data[i];\n data[i] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\nvar divide = function (n) {\n var i = 6;\n var c = 0;\n while (--i >= 0) {\n c += data[i];\n data[i] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\nvar numToString = function () {\n var i = 6;\n var s = '';\n while (--i >= 0) {\n if (s !== '' || i === 0 || data[i] !== 0) {\n var t = String(data[i]);\n s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\n }\n } return s;\n};\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\n$export($export.P + $export.F * (!!$toFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !require('./_fails')(function () {\n // V8 ~ Android 4.3-\n $toFixed.call({});\n})), 'Number', {\n toFixed: function toFixed(fractionDigits) {\n var x = aNumberValue(this, ERROR);\n var f = toInteger(fractionDigits);\n var s = '';\n var m = ZERO;\n var e, z, j, k;\n if (f < 0 || f > 20) throw RangeError(ERROR);\n // eslint-disable-next-line no-self-compare\n if (x != x) return 'NaN';\n if (x <= -1e21 || x >= 1e21) return String(x);\n if (x < 0) {\n s = '-';\n x = -x;\n }\n if (x > 1e-21) {\n e = log(x * pow(2, 69, 1)) - 69;\n z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = f;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n m = numToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n m = numToString() + repeat.call(ZERO, f);\n }\n }\n if (f > 0) {\n k = m.length;\n m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\n } else {\n m = s + m;\n } return m;\n }\n});\n","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n","'use strict';\nvar $export = require('./_export');\nvar $fails = require('./_fails');\nvar aNumberValue = require('./_a-number-value');\nvar $toPrecision = 1.0.toPrecision;\n\n$export($export.P + $export.F * ($fails(function () {\n // IE7-\n return $toPrecision.call(1, undefined) !== '1';\n}) || !$fails(function () {\n // V8 ~ Android 4.3-\n $toPrecision.call({});\n})), 'Number', {\n toPrecision: function toPrecision(precision) {\n var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\n return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);\n }\n});\n","// 20.3.3.1 / 15.9.4.4 Date.now()\nvar $export = require('./_export');\n\n$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });\n","// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar $export = require('./_export');\nvar toISOString = require('./_date-to-iso-string');\n\n// PhantomJS / old WebKit has a broken implementations\n$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {\n toISOString: toISOString\n});\n","'use strict';\n// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar fails = require('./_fails');\nvar getTime = Date.prototype.getTime;\nvar $toISOString = Date.prototype.toISOString;\n\nvar lz = function (num) {\n return num > 9 ? num : '0' + num;\n};\n\n// PhantomJS / old WebKit has a broken implementations\nmodule.exports = (fails(function () {\n return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n $toISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n var d = this;\n var y = d.getUTCFullYear();\n var m = d.getUTCMilliseconds();\n var s = y < 0 ? '-' : y > 9999 ? '+' : '';\n return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +\n '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +\n 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +\n ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';\n} : $toISOString;\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\n\n$export($export.P + $export.F * require('./_fails')(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n}), 'Date', {\n // eslint-disable-next-line no-unused-vars\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O);\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 18.2.5 parseInt(string, radix)\n$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });\n","var $parseInt = require('./_global').parseInt;\nvar $trim = require('./_string-trim').trim;\nvar ws = require('./_string-ws');\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 18.2.4 parseFloat(string)\n$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat });\n","var $parseFloat = require('./_global').parseFloat;\nvar $trim = require('./_string-trim').trim;\n\nmodule.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str) {\n var string = $trim(String(str), 3);\n var result = $parseFloat(string);\n return result === 0 && string.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function ($trim) {\n return function trim() {\n return $trim(this, 3);\n };\n});\n","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","require('../modules/es6.string.iterator');\nrequire('../modules/es6.array.is-array');\nrequire('../modules/es6.array.from');\nrequire('../modules/es6.array.of');\nrequire('../modules/es6.array.join');\nrequire('../modules/es6.array.slice');\nrequire('../modules/es6.array.sort');\nrequire('../modules/es6.array.for-each');\nrequire('../modules/es6.array.map');\nrequire('../modules/es6.array.filter');\nrequire('../modules/es6.array.some');\nrequire('../modules/es6.array.every');\nrequire('../modules/es6.array.reduce');\nrequire('../modules/es6.array.reduce-right');\nrequire('../modules/es6.array.index-of');\nrequire('../modules/es6.array.last-index-of');\nrequire('../modules/es6.array.copy-within');\nrequire('../modules/es6.array.fill');\nrequire('../modules/es6.array.find');\nrequire('../modules/es6.array.find-index');\nrequire('../modules/es6.array.species');\nrequire('../modules/es6.array.iterator');\nmodule.exports = require('../modules/_core').Array;\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar createProperty = require('./_create-property');\n\n// WebKit Array.of isn't generic\n$export($export.S + $export.F * require('./_fails')(function () {\n function F() { /* empty */ }\n return !(Array.of.call(F) instanceof F);\n}), 'Array', {\n // 22.1.2.3 Array.of( ...items)\n of: function of(/* ...args */) {\n var index = 0;\n var aLen = arguments.length;\n var result = new (typeof this == 'function' ? this : Array)(aLen);\n while (aLen > index) createProperty(result, index, arguments[index++]);\n result.length = aLen;\n return result;\n }\n});\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { copyWithin: require('./_array-copy-within') });\n\nrequire('./_add-to-unscopables')('copyWithin');\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\n\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { fill: require('./_array-fill') });\n\nrequire('./_add-to-unscopables')('fill');\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","require('./_set-species')('Array');\n","require('../modules/es7.array.includes');\nrequire('../modules/es7.array.flat-map');\nrequire('../modules/es7.array.flatten');\nmodule.exports = require('../modules/_core').Array;\n","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n","'use strict';\n// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap\nvar $export = require('./_export');\nvar flattenIntoArray = require('./_flatten-into-array');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar aFunction = require('./_a-function');\nvar arraySpeciesCreate = require('./_array-species-create');\n\n$export($export.P, 'Array', {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen, A;\n aFunction(callbackfn);\n sourceLen = toLength(O.length);\n A = arraySpeciesCreate(O, 0);\n flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]);\n return A;\n }\n});\n\nrequire('./_add-to-unscopables')('flatMap');\n","'use strict';\n// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatten\nvar $export = require('./_export');\nvar flattenIntoArray = require('./_flatten-into-array');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar arraySpeciesCreate = require('./_array-species-create');\n\n$export($export.P, 'Array', {\n flatten: function flatten(/* depthArg = 1 */) {\n var depthArg = arguments[0];\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n\nrequire('./_add-to-unscopables')('flatten');\n","require('../modules/es6.symbol');\nrequire('../modules/es6.object.create');\nrequire('../modules/es6.object.define-property');\nrequire('../modules/es6.object.define-properties');\nrequire('../modules/es6.object.get-own-property-descriptor');\nrequire('../modules/es6.object.get-prototype-of');\nrequire('../modules/es6.object.keys');\nrequire('../modules/es6.object.get-own-property-names');\nrequire('../modules/es6.object.freeze');\nrequire('../modules/es6.object.seal');\nrequire('../modules/es6.object.prevent-extensions');\nrequire('../modules/es6.object.is-frozen');\nrequire('../modules/es6.object.is-sealed');\nrequire('../modules/es6.object.is-extensible');\nrequire('../modules/es6.object.assign');\nrequire('../modules/es6.object.is');\nrequire('../modules/es6.object.set-prototype-of');\nrequire('../modules/es6.object.to-string');\n\nmodule.exports = require('../modules/_core').Object;\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', { is: require('./_same-value') });\n","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","require('../modules/es7.object.get-own-property-descriptors');\nrequire('../modules/es7.object.values');\nrequire('../modules/es7.object.entries');\nrequire('../modules/es7.object.define-getter');\nrequire('../modules/es7.object.define-setter');\nrequire('../modules/es7.object.lookup-getter');\nrequire('../modules/es7.object.lookup-setter');\nmodule.exports = require('../modules/_core').Object;\n","// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = require('./_export');\nvar ownKeys = require('./_own-keys');\nvar toIObject = require('./_to-iobject');\nvar gOPD = require('./_object-gopd');\nvar createProperty = require('./_create-property');\n\n$export($export.S, 'Object', {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIObject(object);\n var getDesc = gOPD.f;\n var keys = ownKeys(O);\n var result = {};\n var i = 0;\n var key, desc;\n while (keys.length > i) {\n desc = getDesc(O, key = keys[i++]);\n if (desc !== undefined) createProperty(result, key, desc);\n }\n return result;\n }\n});\n","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it) {\n return $entries(it);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar aFunction = require('./_a-function');\nvar $defineProperty = require('./_object-dp');\n\n// B.2.2.2 Object.prototype.__defineGetter__(P, getter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __defineGetter__: function __defineGetter__(P, getter) {\n $defineProperty.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true });\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar aFunction = require('./_a-function');\nvar $defineProperty = require('./_object-dp');\n\n// B.2.2.3 Object.prototype.__defineSetter__(P, setter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __defineSetter__: function __defineSetter__(P, setter) {\n $defineProperty.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true });\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\nvar getPrototypeOf = require('./_object-gpo');\nvar getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.4 Object.prototype.__lookupGetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __lookupGetter__: function __lookupGetter__(P) {\n var O = toObject(this);\n var K = toPrimitive(P, true);\n var D;\n do {\n if (D = getOwnPropertyDescriptor(O, K)) return D.get;\n } while (O = getPrototypeOf(O));\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\nvar getPrototypeOf = require('./_object-gpo');\nvar getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.5 Object.prototype.__lookupSetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __lookupSetter__: function __lookupSetter__(P) {\n var O = toObject(this);\n var K = toPrimitive(P, true);\n var D;\n do {\n if (D = getOwnPropertyDescriptor(O, K)) return D.set;\n } while (O = getPrototypeOf(O));\n }\n});\n","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.map');\nmodule.exports = require('../modules/_core').Map;\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","require('../modules/es6.object.to-string');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.weak-set');\nmodule.exports = require('../modules/_core').WeakSet;\n","'use strict';\nvar weak = require('./_collection-weak');\nvar validate = require('./_validate-collection');\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\nrequire('./_collection')(WEAK_SET, function (get) {\n return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return weak.def(validate(this, WEAK_SET), value, true);\n }\n}, weak, false, true);\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","require('../modules/es6.symbol');\nrequire('../modules/es6.object.to-string');\nmodule.exports = require('../modules/_core').Symbol;\n","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.promise');\nmodule.exports = require('../modules/_core').Promise;\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cQ.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;kb}return!1}function v(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;dpc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=td(a.document)}return b}\nfunction yd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;gzf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(gl&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;by?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;yy?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;cf))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(lN.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;hd.tailExpiration&&1b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTimea?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){awi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime 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}","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\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\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\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\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\n};\n","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _gud = require('gud');\n\nvar _gud2 = _interopRequireDefault(_gud);\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + (0, _gud2.default)() + '__';\n\n var Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n function Provider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Provider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.emitter = createEventEmitter(_this.props.value), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Provider.prototype.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n Provider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits = void 0;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n if (process.env.NODE_ENV !== 'production') {\n (0, _warning2.default)((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n Provider.prototype.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(_react.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = _propTypes2.default.object.isRequired, _Provider$childContex);\n\n var Consumer = function (_Component2) {\n _inherits(Consumer, _Component2);\n\n function Consumer() {\n var _temp2, _this2, _ret2;\n\n _classCallCheck(this, Consumer);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, _Component2.call.apply(_Component2, [this].concat(args))), _this2), _this2.state = {\n value: _this2.getValue()\n }, _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({ value: _this2.getValue() });\n }\n }, _temp2), _possibleConstructorReturn(_this2, _ret2);\n }\n\n Consumer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n var observedBits = this.props.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n Consumer.prototype.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n Consumer.prototype.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(_react.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = _propTypes2.default.object, _Consumer$contextType);\n\n\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nexports.default = createReactContext;\nmodule.exports = exports['default'];","// @flow\n'use strict';\n\nvar key = '__global_unique_id__';\n\nmodule.exports = function() {\n return global[key] = (global[key] || 0) + 1;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\nvar toStr = Object.prototype.toString;\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn toStr.call(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\ttoStr.call(value) !== '[object Array]' &&\n\t\ttoStr.call(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('es-abstract/helpers/callBind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar GetIntrinsic = require('../GetIntrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind() {\n\treturn $reflectApply(bind, $call, arguments);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\n/* globals\n\tAggregateError,\n\tAtomics,\n\tFinalizationRegistry,\n\tSharedArrayBuffer,\n\tWeakRef,\n*/\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\t// eslint-disable-next-line no-new-func\n\t\treturn Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () { throw new $TypeError(); };\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar asyncGenFunction = getEvalledConstructor('async function* () {}');\nvar asyncGenFunctionPrototype = asyncGenFunction ? asyncGenFunction.prototype : undefined;\nvar asyncGenPrototype = asyncGenFunctionPrototype ? asyncGenFunctionPrototype.prototype : undefined;\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': getEvalledConstructor('async function () {}'),\n\t'%AsyncGenerator%': asyncGenFunctionPrototype,\n\t'%AsyncGeneratorFunction%': asyncGenFunction,\n\t'%AsyncIteratorPrototype%': asyncGenPrototype ? getProto(asyncGenPrototype) : undefined,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': getEvalledConstructor('function* () {}'),\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\tif (!allowMissing && !(part in value)) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols')();\nvar hasToStringTag = hasSymbols && typeof Symbol.toStringTag === 'symbol';\nvar hasOwnProperty;\nvar regexExec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n\thasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty);\n\tregexExec = Function.call.bind(RegExp.prototype.exec);\n\tisRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\tbadStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n}\n\nvar toStr = Object.prototype.toString;\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\n\nmodule.exports = hasToStringTag\n\t// eslint-disable-next-line consistent-return\n\t? function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar descriptor = gOPD(value, 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && hasOwnProperty(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\tregexExec(value, badStringifier);\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t}\n\t: function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn toStr.call(value) === regexClass;\n\t};\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('es-abstract/helpers/callBind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar flagsBound = callBind(implementation);\n\ndefine(flagsBound, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = flagsBound;\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar GetIntrinsic = require('../GetIntrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind() {\n\treturn $reflectApply(bind, $call, arguments);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\n/* globals\n\tAtomics,\n\tSharedArrayBuffer,\n*/\n\nvar undefined;\n\nvar $TypeError = TypeError;\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () { throw new $TypeError(); };\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar generator; // = function * () {};\nvar generatorFunction = generator ? getProto(generator) : undefined;\nvar asyncFn; // async function() {};\nvar asyncFunction = asyncFn ? asyncFn.constructor : undefined;\nvar asyncGen; // async function * () {};\nvar asyncGenFunction = asyncGen ? getProto(asyncGen) : undefined;\nvar asyncGenIterator = asyncGen ? asyncGen() : undefined;\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayBufferPrototype%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer.prototype,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%ArrayPrototype%': Array.prototype,\n\t'%ArrayProto_entries%': Array.prototype.entries,\n\t'%ArrayProto_forEach%': Array.prototype.forEach,\n\t'%ArrayProto_keys%': Array.prototype.keys,\n\t'%ArrayProto_values%': Array.prototype.values,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': asyncFunction,\n\t'%AsyncFunctionPrototype%': asyncFunction ? asyncFunction.prototype : undefined,\n\t'%AsyncGenerator%': asyncGen ? getProto(asyncGenIterator) : undefined,\n\t'%AsyncGeneratorFunction%': asyncGenFunction,\n\t'%AsyncGeneratorPrototype%': asyncGenFunction ? asyncGenFunction.prototype : undefined,\n\t'%AsyncIteratorPrototype%': asyncGenIterator && hasSymbols && Symbol.asyncIterator ? asyncGenIterator[Symbol.asyncIterator]() : undefined,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%Boolean%': Boolean,\n\t'%BooleanPrototype%': Boolean.prototype,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%DataViewPrototype%': typeof DataView === 'undefined' ? undefined : DataView.prototype,\n\t'%Date%': Date,\n\t'%DatePrototype%': Date.prototype,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%ErrorPrototype%': Error.prototype,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%EvalErrorPrototype%': EvalError.prototype,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float32ArrayPrototype%': typeof Float32Array === 'undefined' ? undefined : Float32Array.prototype,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%Float64ArrayPrototype%': typeof Float64Array === 'undefined' ? undefined : Float64Array.prototype,\n\t'%Function%': Function,\n\t'%FunctionPrototype%': Function.prototype,\n\t'%Generator%': generator ? getProto(generator()) : undefined,\n\t'%GeneratorFunction%': generatorFunction,\n\t'%GeneratorPrototype%': generatorFunction ? generatorFunction.prototype : undefined,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int8ArrayPrototype%': typeof Int8Array === 'undefined' ? undefined : Int8Array.prototype,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int16ArrayPrototype%': typeof Int16Array === 'undefined' ? undefined : Int8Array.prototype,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%Int32ArrayPrototype%': typeof Int32Array === 'undefined' ? undefined : Int32Array.prototype,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%JSONParse%': typeof JSON === 'object' ? JSON.parse : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%MapPrototype%': typeof Map === 'undefined' ? undefined : Map.prototype,\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%NumberPrototype%': Number.prototype,\n\t'%Object%': Object,\n\t'%ObjectPrototype%': Object.prototype,\n\t'%ObjProto_toString%': Object.prototype.toString,\n\t'%ObjProto_valueOf%': Object.prototype.valueOf,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%PromisePrototype%': typeof Promise === 'undefined' ? undefined : Promise.prototype,\n\t'%PromiseProto_then%': typeof Promise === 'undefined' ? undefined : Promise.prototype.then,\n\t'%Promise_all%': typeof Promise === 'undefined' ? undefined : Promise.all,\n\t'%Promise_reject%': typeof Promise === 'undefined' ? undefined : Promise.reject,\n\t'%Promise_resolve%': typeof Promise === 'undefined' ? undefined : Promise.resolve,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%RangeErrorPrototype%': RangeError.prototype,\n\t'%ReferenceError%': ReferenceError,\n\t'%ReferenceErrorPrototype%': ReferenceError.prototype,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%RegExpPrototype%': RegExp.prototype,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SetPrototype%': typeof Set === 'undefined' ? undefined : Set.prototype,\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%SharedArrayBufferPrototype%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer.prototype,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%StringPrototype%': String.prototype,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SymbolPrototype%': hasSymbols ? Symbol.prototype : undefined,\n\t'%SyntaxError%': SyntaxError,\n\t'%SyntaxErrorPrototype%': SyntaxError.prototype,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypedArrayPrototype%': TypedArray ? TypedArray.prototype : undefined,\n\t'%TypeError%': $TypeError,\n\t'%TypeErrorPrototype%': $TypeError.prototype,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ArrayPrototype%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array.prototype,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint8ClampedArrayPrototype%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray.prototype,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint16ArrayPrototype%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array.prototype,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%Uint32ArrayPrototype%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array.prototype,\n\t'%URIError%': URIError,\n\t'%URIErrorPrototype%': URIError.prototype,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakMapPrototype%': typeof WeakMap === 'undefined' ? undefined : WeakMap.prototype,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\t'%WeakSetPrototype%': typeof WeakSet === 'undefined' ? undefined : WeakSet.prototype\n};\n\nvar bind = require('function-bind');\nvar $replace = bind.call(Function.call, String.prototype.replace);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : (number || match);\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tif (!(name in INTRINSICS)) {\n\t\tthrow new SyntaxError('intrinsic ' + name + ' does not exist!');\n\t}\n\n\t// istanbul ignore if // hopefully this is impossible to test :-)\n\tif (typeof INTRINSICS[name] === 'undefined' && !allowMissing) {\n\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t}\n\n\treturn INTRINSICS[name];\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\n\tvar value = getBaseIntrinsic('%' + (parts.length > 0 ? parts[0] : '') + '%', allowMissing);\n\tfor (var i = 1; i < parts.length; i += 1) {\n\t\tif (value != null) {\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, parts[i]);\n\t\t\t\tif (!allowMissing && !(parts[i] in value)) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tvalue = desc && 'get' in desc && !('originalValue' in desc.get) ? desc.get : value[parts[i]];\n\t\t\t} else {\n\t\t\t\tvalue = value[parts[i]];\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar getPolyfill = require('./polyfill');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar TypeErr = TypeError;\nvar getProto = Object.getPrototypeOf;\nvar regex = /a/;\n\nmodule.exports = function shimFlags() {\n\tif (!supportsDescriptors || !getProto) {\n\t\tthrow new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tvar polyfill = getPolyfill();\n\tvar proto = getProto(regex);\n\tvar descriptor = gOPD(proto, 'flags');\n\tif (!descriptor || descriptor.get !== polyfill) {\n\t\tdefineProperty(proto, 'flags', {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tget: polyfill\n\t\t});\n\t}\n\treturn polyfill;\n};\n","'use strict';\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateGetDayCall(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n","import requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * var result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * var result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * var result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * var result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMinutes from '../addMinutes/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subMinutes\n * @category Minute Helpers\n * @summary Subtract the specified number of minutes from the given date.\n *\n * @description\n * Subtract the specified number of minutes from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 30 minutes from 10 July 2014 12:00:00:\n * var result = subMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 11:30:00\n */\n\nexport default function subMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMinutes(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addHours from '../addHours/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subHours\n * @category Hour Helpers\n * @summary Subtract the specified number of hours from the given date.\n *\n * @description\n * Subtract the specified number of hours from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the hours subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 2 hours from 11 July 2014 01:00:00:\n * var result = subHours(new Date(2014, 6, 11, 1, 0), 2)\n * //=> Thu Jul 10 2014 23:00:00\n */\n\nexport default function subHours(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addHours(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addDays from '../addDays/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * var result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\n\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addWeeks from '../addWeeks/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subWeeks\n * @category Week Helpers\n * @summary Subtract the specified number of weeks from the given date.\n *\n * @description\n * Subtract the specified number of weeks from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 4 weeks from 1 September 2014:\n * var result = subWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Aug 04 2014 00:00:00\n */\n\nexport default function subWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addWeeks(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMonths from '../addMonths/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * var result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function subMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addYears from '../addYears/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subYears\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * var result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\n\nexport default function subYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addYears(dirtyDate, -amount);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getSeconds\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the seconds\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * var result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\n\nexport default function getSeconds(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var seconds = date.getSeconds();\n return seconds;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the minutes\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * var result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\n\nexport default function getMinutes(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var minutes = date.getMinutes();\n return minutes;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the hours\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * var result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\n\nexport default function getHours(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var hours = date.getHours();\n return hours;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {0|1|2|3|4|5|6} the day of week, 0 represents Sunday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * var result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\n\nexport default function getDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var day = date.getDay();\n return day;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getDate\n * @category Day Helpers\n * @summary Get the day of the month of the given date.\n *\n * @description\n * Get the day of the month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the day of month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the month is 29 February 2012?\n * var result = getDate(new Date(2012, 1, 29))\n * //=> 29\n */\n\nexport default function getDate(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var dayOfMonth = date.getDate();\n return dayOfMonth;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which month is 29 February 2012?\n * var result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\n\nexport default function getMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n return month;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getQuarter\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which quarter is 2 July 2014?\n * var result = getQuarter(new Date(2014, 6, 2))\n * //=> 3\n */\n\nexport default function getQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var quarter = Math.floor(date.getMonth() / 3) + 1;\n return quarter;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which year is 2 July 2014?\n * var result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\n\nexport default function getYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n return year;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getTime\n * @category Timestamp Helpers\n * @summary Get the milliseconds timestamp of the given date.\n *\n * @description\n * Get the milliseconds timestamp of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the timestamp\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05.123:\n * var result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 1330515905123\n */\n\nexport default function getTime(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n return timestamp;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date.\n *\n * @description\n * Set the seconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} seconds - the seconds of the new date\n * @returns {Date} the new date with the seconds set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * var result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\n\nexport default function setSeconds(dirtyDate, dirtySeconds) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var seconds = toInteger(dirtySeconds);\n date.setSeconds(seconds);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} minutes - the minutes of the new date\n * @returns {Date} the new date with the minutes set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * var result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\n\nexport default function setMinutes(dirtyDate, dirtyMinutes) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var minutes = toInteger(dirtyMinutes);\n date.setMinutes(minutes);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} hours - the hours of the new date\n * @returns {Date} the new date with the hours set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * var result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\n\nexport default function setHours(dirtyDate, dirtyHours) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var hours = toInteger(dirtyHours);\n date.setHours(hours);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport setMonth from '../setMonth/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setQuarter\n * @category Quarter Helpers\n * @summary Set the year quarter to the given date.\n *\n * @description\n * Set the year quarter to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} quarter - the quarter of the new date\n * @returns {Date} the new date with the quarter set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set the 2nd quarter to 2 July 2014:\n * var result = setQuarter(new Date(2014, 6, 2), 2)\n * //=> Wed Apr 02 2014 00:00:00\n */\n\nexport default function setQuarter(dirtyDate, dirtyQuarter) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var quarter = toInteger(dirtyQuarter);\n var oldQuarter = Math.floor(date.getMonth() / 3) + 1;\n var diff = quarter - oldQuarter;\n return setMonth(date, date.getMonth() + diff * 3);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} year - the year of the new date\n * @returns {Date} the new date with the year set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * var result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\n\nexport default function setYear(dirtyDate, dirtyYear) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var year = toInteger(dirtyYear); // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n\n if (isNaN(date)) {\n return new Date(NaN);\n }\n\n date.setFullYear(year);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name min\n * @category Common Helpers\n * @summary Return the earliest of the given dates.\n *\n * @description\n * Return the earliest of the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - `min` function now accepts an array of dates rather than spread arguments.\n *\n * ```javascript\n * // Before v2.0.0\n * var date1 = new Date(1989, 6, 10)\n * var date2 = new Date(1987, 1, 11)\n * var minDate = min(date1, date2)\n *\n * // v2.0.0 onward:\n * var dates = [new Date(1989, 6, 10), new Date(1987, 1, 11)]\n * var minDate = min(dates)\n * ```\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} the earliest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the earliest?\n * var result = min([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Wed Feb 11 1987 00:00:00\n */\n\nexport default function min(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray; // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray; // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (typeof dirtyDatesArray === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n\n if (result === undefined || result > currentDate || isNaN(currentDate)) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name max\n * @category Common Helpers\n * @summary Return the latest of the given dates.\n *\n * @description\n * Return the latest of the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - `max` function now accepts an array of dates rather than spread arguments.\n *\n * ```javascript\n * // Before v2.0.0\n * var date1 = new Date(1989, 6, 10)\n * var date2 = new Date(1987, 1, 11)\n * var maxDate = max(date1, date2)\n *\n * // v2.0.0 onward:\n * var dates = [new Date(1989, 6, 10), new Date(1987, 1, 11)]\n * var maxDate = max(dates)\n * ```\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} the latest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the latest?\n * var result = max([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Sun Jul 02 1995 00:00:00\n */\n\nexport default function max(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray; // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray; // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (typeof dirtyDatesArray === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n\n if (result === undefined || result < currentDate || isNaN(currentDate)) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport startOfDay from '../startOfDay/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_DAY = 86400000;\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * var result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\n\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\n\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import startOfWeek from '../startOfWeek/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000;\n/**\n * @name differenceInCalendarWeeks\n * @category Week Helpers\n * @summary Get the number of calendar weeks between the given dates.\n *\n * @description\n * Get the number of calendar weeks between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Number} the number of calendar weeks\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // How many calendar weeks are between 5 July 2014 and 20 July 2014?\n * var result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5)\n * )\n * //=> 3\n *\n * @example\n * // If the week starts on Monday,\n * // how many calendar weeks are between 5 July 2014 and 20 July 2014?\n * var result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5),\n * { weekStartsOn: 1 }\n * )\n * //=> 2\n */\n\nexport default function differenceInCalendarWeeks(dirtyDateLeft, dirtyDateRight, dirtyOptions) {\n requiredArgs(2, arguments);\n var startOfWeekLeft = startOfWeek(dirtyDateLeft, dirtyOptions);\n var startOfWeekRight = startOfWeek(dirtyDateRight, dirtyOptions);\n var timestampLeft = startOfWeekLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekLeft);\n var timestampRight = startOfWeekRight.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * var result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\n\nexport default function differenceInCalendarYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() - dateRight.getFullYear();\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * var result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * var result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\n\nexport default function startOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var cleanDate = toDate(dirtyDate);\n var date = new Date(0);\n date.setFullYear(cleanDate.getFullYear(), 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * var result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\n\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the end of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * var result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * var result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\n\nexport default function endOfWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n date.setDate(date.getDate() + diff);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * var result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Boolean} the dates are equal\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * var result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\n\nexport default function isEqual(dirtyLeftDate, dirtyRightDate) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyLeftDate);\n var dateRight = toDate(dirtyRightDate);\n return dateLeft.getTime() === dateRight.getTime();\n}","import startOfDay from '../startOfDay/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day?\n *\n * @description\n * Are the given dates in the same day?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * var result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n */\n\nexport default function isSameDay(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfDay = startOfDay(dirtyDateLeft);\n var dateRightStartOfDay = startOfDay(dirtyDateRight);\n return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month?\n *\n * @description\n * Are the given dates in the same month?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same month\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * var result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\n\nexport default function isSameMonth(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear() && dateLeft.getMonth() === dateRight.getMonth();\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameYear\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same year?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same year\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * var result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\n\nexport default function isSameYear(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear();\n}","import startOfQuarter from '../startOfQuarter/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameQuarter\n * @category Quarter Helpers\n * @summary Are the given dates in the same year quarter?\n *\n * @description\n * Are the given dates in the same year quarter?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same quarter\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 1 January 2014 and 8 March 2014 in the same quarter?\n * var result = isSameQuarter(new Date(2014, 0, 1), new Date(2014, 2, 8))\n * //=> true\n */\n\nexport default function isSameQuarter(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfQuarter = startOfQuarter(dirtyDateLeft);\n var dateRightStartOfQuarter = startOfQuarter(dirtyDateRight);\n return dateLeftStartOfQuarter.getTime() === dateRightStartOfQuarter.getTime();\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date that should be after the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is after the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * var result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\n\nexport default function isAfter(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() > dateToCompare.getTime();\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date that should be before the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is before the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * var result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\n\nexport default function isBefore(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() < dateToCompare.getTime();\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isWithinInterval\n * @category Interval Helpers\n * @summary Is the given date within the interval?\n *\n * @description\n * Is the given date within the interval? (Including start and end.)\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `isWithinRange` to `isWithinInterval`.\n * This change was made to mirror the use of the word \"interval\" in standard ISO 8601:2004 terminology:\n *\n * ```\n * 2.1.3\n * time interval\n * part of the time axis limited by two instants\n * ```\n *\n * Also, this function now accepts an object with `start` and `end` properties\n * instead of two arguments as an interval.\n * This function now throws `RangeError` if the start of the interval is after its end\n * or if any date in the interval is `Invalid Date`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * isWithinRange(\n * new Date(2014, 0, 3),\n * new Date(2014, 0, 1), new Date(2014, 0, 7)\n * )\n *\n * // v2.0.0 onward\n *\n * isWithinInterval(\n * new Date(2014, 0, 3),\n * { start: new Date(2014, 0, 1), end: new Date(2014, 0, 7) }\n * )\n * ```\n *\n * @param {Date|Number} date - the date to check\n * @param {Interval} interval - the interval to check\n * @returns {Boolean} the date is within the interval\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // For the date within the interval:\n * isWithinInterval(new Date(2014, 0, 3), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> true\n *\n * @example\n * // For the date outside of the interval:\n * isWithinInterval(new Date(2014, 0, 10), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> false\n *\n * @example\n * // For date equal to interval start:\n * isWithinInterval(date, { start, end: date }) // => true\n *\n * @example\n * // For date equal to interval end:\n * isWithinInterval(date, { start: date, end }) // => true\n */\n\nexport default function isWithinInterval(dirtyDate, dirtyInterval) {\n requiredArgs(2, arguments);\n var interval = dirtyInterval || {};\n var time = toDate(dirtyDate).getTime();\n var startTime = toDate(interval.start).getTime();\n var endTime = toDate(interval.end).getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(startTime <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n\n return time >= startTime && time <= endTime;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar DEFAULT_ADDITIONAL_DIGITS = 2;\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The previous `parse` implementation was renamed to `parseISO`.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * parseISO('2016-01-01')\n * ```\n *\n * - `parseISO` now validates separate date and time values in ISO-8601 strings\n * and returns `Invalid Date` if the date is invalid.\n *\n * ```javascript\n * parseISO('2018-13-32')\n * //=> Invalid Date\n * ```\n *\n * - `parseISO` now doesn't fall back to `new Date` constructor\n * if it fails to parse a string argument. Instead, it returns `Invalid Date`.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * var result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * var result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\n\nexport default function parseISO(argument, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var additionalDigits = options.additionalDigits == null ? DEFAULT_ADDITIONAL_DIGITS : toInteger(options.additionalDigits);\n\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n\n var dateStrings = splitDateString(argument);\n var date;\n\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (isNaN(date) || !date) {\n return new Date(NaN);\n }\n\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n\n if (isNaN(time) || time === null) {\n return new Date(NaN);\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time); // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n\n var result = new Date(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate(), dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n result.setFullYear(dirtyDate.getUTCFullYear());\n return result;\n }\n\n return new Date(timestamp + time + offset);\n}\n\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString; // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n dateStrings.date = null;\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex); // Invalid ISO-formatted year\n\n if (!captures) return {\n year: null\n };\n var year = captures[1] && parseInt(captures[1]);\n var century = captures[2] && parseInt(captures[2]);\n return {\n year: century == null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return null;\n var captures = dateString.match(dateRegex); // Invalid ISO-formatted string\n\n if (!captures) return null;\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return null; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * 1000;\n}\n\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n} // Validation functions\n// February is null to handle the leap year (using ||)\n\n\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100;\n}\n\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","import { Component, createElement } from 'react';\nimport { findDOMNode } from 'react-dom';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n/**\n * Check whether some DOM node is our Component's node.\n */\nfunction isNodeFound(current, componentNode, ignoreClass) {\n if (current === componentNode) {\n return true;\n } // SVG elements do not technically reside in the rendered DOM, so\n // they do not have classList directly, but they offer a link to their\n // corresponding element, which can have classList. This extra check is for\n // that case.\n // See: http://www.w3.org/TR/SVG11/struct.html#InterfaceSVGUseElement\n // Discussion: https://github.com/Pomax/react-onclickoutside/pull/17\n\n\n if (current.correspondingElement) {\n return current.correspondingElement.classList.contains(ignoreClass);\n }\n\n return current.classList.contains(ignoreClass);\n}\n/**\n * Try to find our node in a hierarchy of nodes, returning the document\n * node as highest node if our node is not found in the path up.\n */\n\nfunction findHighest(current, componentNode, ignoreClass) {\n if (current === componentNode) {\n return true;\n } // If source=local then this event came from 'somewhere'\n // inside and should be ignored. We could handle this with\n // a layered approach, too, but that requires going back to\n // thinking in terms of Dom node nesting, running counter\n // to React's 'you shouldn't care about the DOM' philosophy.\n\n\n while (current.parentNode) {\n if (isNodeFound(current, componentNode, ignoreClass)) {\n return true;\n }\n\n current = current.parentNode;\n }\n\n return current;\n}\n/**\n * Check if the browser scrollbar was clicked\n */\n\nfunction clickedScrollbar(evt) {\n return document.documentElement.clientWidth <= evt.clientX || document.documentElement.clientHeight <= evt.clientY;\n}\n\n// ideally will get replaced with external dep\n// when rafrex/detect-passive-events#4 and rafrex/detect-passive-events#5 get merged in\nvar testPassiveEventSupport = function testPassiveEventSupport() {\n if (typeof window === 'undefined' || typeof window.addEventListener !== 'function') {\n return;\n }\n\n var passive = false;\n var options = Object.defineProperty({}, 'passive', {\n get: function get() {\n passive = true;\n }\n });\n\n var noop = function noop() {};\n\n window.addEventListener('testPassiveEventSupport', noop, options);\n window.removeEventListener('testPassiveEventSupport', noop, options);\n return passive;\n};\n\nfunction autoInc(seed) {\n if (seed === void 0) {\n seed = 0;\n }\n\n return function () {\n return ++seed;\n };\n}\n\nvar uid = autoInc();\n\nvar passiveEventSupport;\nvar handlersMap = {};\nvar enabledInstances = {};\nvar touchEvents = ['touchstart', 'touchmove'];\nvar IGNORE_CLASS_NAME = 'ignore-react-onclickoutside';\n/**\n * Options for addEventHandler and removeEventHandler\n */\n\nfunction getEventHandlerOptions(instance, eventName) {\n var handlerOptions = null;\n var isTouchEvent = touchEvents.indexOf(eventName) !== -1;\n\n if (isTouchEvent && passiveEventSupport) {\n handlerOptions = {\n passive: !instance.props.preventDefault\n };\n }\n\n return handlerOptions;\n}\n/**\n * This function generates the HOC function that you'll use\n * in order to impart onOutsideClick listening to an\n * arbitrary component. It gets called at the end of the\n * bootstrapping code to yield an instance of the\n * onClickOutsideHOC function defined inside setupHOC().\n */\n\n\nfunction onClickOutsideHOC(WrappedComponent, config) {\n var _class, _temp;\n\n var componentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n return _temp = _class =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(onClickOutside, _Component);\n\n function onClickOutside(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n\n _this.__outsideClickHandler = function (event) {\n if (typeof _this.__clickOutsideHandlerProp === 'function') {\n _this.__clickOutsideHandlerProp(event);\n\n return;\n }\n\n var instance = _this.getInstance();\n\n if (typeof instance.props.handleClickOutside === 'function') {\n instance.props.handleClickOutside(event);\n return;\n }\n\n if (typeof instance.handleClickOutside === 'function') {\n instance.handleClickOutside(event);\n return;\n }\n\n throw new Error(\"WrappedComponent: \" + componentName + \" lacks a handleClickOutside(event) function for processing outside click events.\");\n };\n\n _this.__getComponentNode = function () {\n var instance = _this.getInstance();\n\n if (config && typeof config.setClickOutsideRef === 'function') {\n return config.setClickOutsideRef()(instance);\n }\n\n if (typeof instance.setClickOutsideRef === 'function') {\n return instance.setClickOutsideRef();\n }\n\n return findDOMNode(instance);\n };\n\n _this.enableOnClickOutside = function () {\n if (typeof document === 'undefined' || enabledInstances[_this._uid]) {\n return;\n }\n\n if (typeof passiveEventSupport === 'undefined') {\n passiveEventSupport = testPassiveEventSupport();\n }\n\n enabledInstances[_this._uid] = true;\n var events = _this.props.eventTypes;\n\n if (!events.forEach) {\n events = [events];\n }\n\n handlersMap[_this._uid] = function (event) {\n if (_this.componentNode === null) return;\n\n if (_this.props.preventDefault) {\n event.preventDefault();\n }\n\n if (_this.props.stopPropagation) {\n event.stopPropagation();\n }\n\n if (_this.props.excludeScrollbar && clickedScrollbar(event)) return;\n var current = event.target;\n\n if (findHighest(current, _this.componentNode, _this.props.outsideClickIgnoreClass) !== document) {\n return;\n }\n\n _this.__outsideClickHandler(event);\n };\n\n events.forEach(function (eventName) {\n document.addEventListener(eventName, handlersMap[_this._uid], getEventHandlerOptions(_this, eventName));\n });\n };\n\n _this.disableOnClickOutside = function () {\n delete enabledInstances[_this._uid];\n var fn = handlersMap[_this._uid];\n\n if (fn && typeof document !== 'undefined') {\n var events = _this.props.eventTypes;\n\n if (!events.forEach) {\n events = [events];\n }\n\n events.forEach(function (eventName) {\n return document.removeEventListener(eventName, fn, getEventHandlerOptions(_this, eventName));\n });\n delete handlersMap[_this._uid];\n }\n };\n\n _this.getRef = function (ref) {\n return _this.instanceRef = ref;\n };\n\n _this._uid = uid();\n return _this;\n }\n /**\n * Access the WrappedComponent's instance.\n */\n\n\n var _proto = onClickOutside.prototype;\n\n _proto.getInstance = function getInstance() {\n if (!WrappedComponent.prototype.isReactComponent) {\n return this;\n }\n\n var ref = this.instanceRef;\n return ref.getInstance ? ref.getInstance() : ref;\n };\n\n /**\n * Add click listeners to the current document,\n * linked to this component's state.\n */\n _proto.componentDidMount = function componentDidMount() {\n // If we are in an environment without a DOM such\n // as shallow rendering or snapshots then we exit\n // early to prevent any unhandled errors being thrown.\n if (typeof document === 'undefined' || !document.createElement) {\n return;\n }\n\n var instance = this.getInstance();\n\n if (config && typeof config.handleClickOutside === 'function') {\n this.__clickOutsideHandlerProp = config.handleClickOutside(instance);\n\n if (typeof this.__clickOutsideHandlerProp !== 'function') {\n throw new Error(\"WrappedComponent: \" + componentName + \" lacks a function for processing outside click events specified by the handleClickOutside config option.\");\n }\n }\n\n this.componentNode = this.__getComponentNode(); // return early so we dont initiate onClickOutside\n\n if (this.props.disableOnClickOutside) return;\n this.enableOnClickOutside();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.componentNode = this.__getComponentNode();\n };\n /**\n * Remove all document's event listeners for this component\n */\n\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.disableOnClickOutside();\n };\n /**\n * Can be called to explicitly enable event listening\n * for clicks and touches outside of this element.\n */\n\n\n /**\n * Pass-through render\n */\n _proto.render = function render() {\n // eslint-disable-next-line no-unused-vars\n var _props = this.props,\n excludeScrollbar = _props.excludeScrollbar,\n props = _objectWithoutProperties(_props, [\"excludeScrollbar\"]);\n\n if (WrappedComponent.prototype.isReactComponent) {\n props.ref = this.getRef;\n } else {\n props.wrappedRef = this.getRef;\n }\n\n props.disableOnClickOutside = this.disableOnClickOutside;\n props.enableOnClickOutside = this.enableOnClickOutside;\n return createElement(WrappedComponent, props);\n };\n\n return onClickOutside;\n }(Component), _class.displayName = \"OnClickOutside(\" + componentName + \")\", _class.defaultProps = {\n eventTypes: ['mousedown', 'touchstart'],\n excludeScrollbar: config && config.excludeScrollbar || false,\n outsideClickIgnoreClass: IGNORE_CLASS_NAME,\n preventDefault: false,\n stopPropagation: false\n }, _class.getClass = function () {\n return WrappedComponent.getClass ? WrappedComponent.getClass() : WrappedComponent;\n }, _temp;\n}\n\nexport { IGNORE_CLASS_NAME };\nexport default onClickOutsideHOC;\n","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","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}\n\nmodule.exports = _iterableToArrayLimit;","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}\n\nmodule.exports = _nonIterableRest;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","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}\n\nmodule.exports = _nonIterableSpread;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","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}\n\nmodule.exports = _taggedTemplateLiteral;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _addClass = _interopRequireDefault(require(\"dom-helpers/class/addClass\"));\n\nvar _removeClass = _interopRequireDefault(require(\"dom-helpers/class/removeClass\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _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 _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _addClass.default)(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _removeClass.default)(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](http://www.nganimate.org/) library, you should use it if you're\n * using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity: 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.onEnter = function (node, appearing) {\n var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n className = _this$getClassNames.className;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, className);\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n activeClassName = _this$getClassNames2.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var appearClassName = _this.getClassNames('appear').doneClassName;\n\n var enterClassName = _this.getClassNames('enter').doneClassName;\n\n var doneClassName = appearing ? appearClassName + \" \" + enterClassName : enterClassName;\n\n _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n addClass(node, doneClassName);\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n var _this$getClassNames3 = _this.getClassNames('exit'),\n className = _this$getClassNames3.className;\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n addClass(node, className);\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n var _this$getClassNames4 = _this.getClassNames('exit'),\n activeClassName = _this$getClassNames4.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n var _this$getClassNames5 = _this.getClassNames('exit'),\n doneClassName = _this$getClassNames5.doneClassName;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, doneClassName);\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + '-' : '';\n var className = isStringClassNames ? prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];\n var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];\n return {\n className: className,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$getClassNames6 = this.getClassNames(type),\n className = _this$getClassNames6.className,\n activeClassName = _this$getClassNames6.activeClassName,\n doneClassName = _this$getClassNames6.doneClassName;\n\n className && removeClass(node, className);\n activeClassName && removeClass(node, activeClassName);\n doneClassName && removeClass(node, doneClassName);\n };\n\n _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n if (className) {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(node, className);\n }\n };\n\n _proto.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.classNames;\n return _react.default.createElement(_Transition.default, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or\n * has finished the transition. A single name can be provided and it will be\n * suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`,\n * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,\n * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.\n *\n * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n * This allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an\n * epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: _PropTypes.classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nvar _default = CSSTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/**\n * The `` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * \n *
I appear first
\n *
I replace the above
\n *
\n * ```\n */\nvar ReplaceTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReplaceTransition, _React$Component);\n\n function ReplaceTransition() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n _this.handleEnter = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _this.handleLifecycle('onEnter', 0, args);\n };\n\n _this.handleEntering = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _this.handleLifecycle('onEntering', 0, args);\n };\n\n _this.handleEntered = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this.handleLifecycle('onEntered', 0, args);\n };\n\n _this.handleExit = function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return _this.handleLifecycle('onExit', 1, args);\n };\n\n _this.handleExiting = function () {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return _this.handleLifecycle('onExiting', 1, args);\n };\n\n _this.handleExited = function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return _this.handleLifecycle('onExited', 1, args);\n };\n\n return _this;\n }\n\n var _proto = ReplaceTransition.prototype;\n\n _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n var _child$props;\n\n var children = this.props.children;\n\n var child = _react.default.Children.toArray(children)[idx];\n\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n var _React$Children$toArr = _react.default.Children.toArray(children),\n first = _React$Children$toArr[0],\n second = _React$Children$toArr[1];\n\n delete props.onEnter;\n delete props.onEntering;\n delete props.onEntered;\n delete props.onExit;\n delete props.onExiting;\n delete props.onExited;\n return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : _react.default.cloneElement(second, {\n key: 'second',\n onEnter: this.handleExit,\n onEntering: this.handleExiting,\n onEntered: this.handleExited\n }));\n };\n\n return ReplaceTransition;\n}(_react.default.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n in: _propTypes.default.bool.isRequired,\n children: function children(props, propName) {\n if (_react.default.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};\nvar _default = ReplaceTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = require(\"react\");\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!(0, _react.isValidElement)(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","'use strict';\n\nvar React = require('react');\nvar ReactDOM = require('react-dom');\nvar createClass = require('create-react-class');\nvar QuillMixin = require('./mixin');\nvar find = require('lodash/find');\nvar some = require('lodash/some');\nvar isEqual = require('lodash/isEqual');\nvar T = require('prop-types');\nvar DOM = require('react-dom-factories');\n\nvar QuillComponent = createClass({\n\n\tdisplayName: 'Quill',\n\n\tmixins: [ QuillMixin ],\n\n\tpropTypes: {\n\t\tid: T.string,\n\t\tclassName: T.string,\n\t\ttheme: T.string,\n\t\tstyle: T.object,\n\t\treadOnly: T.bool,\n\t\tvalue: T.oneOfType([T.string, T.shape({ops: T.array})]),\n\t\tdefaultValue: T.oneOfType([T.string, T.shape({ops: T.array})]),\n\t\tplaceholder: T.string,\n\t\ttabIndex: T.number,\n\t\tbounds: T.oneOfType([T.string, T.element]),\n\t\tonChange: T.func,\n\t\tonChangeSelection: T.func,\n\t\tonFocus: T.func,\n\t\tonBlur: T.func,\n\t\tonKeyPress: T.func,\n\t\tonKeyDown: T.func,\n\t\tonKeyUp: T.func,\n\t\tpreserveWhitespace: T.bool,\n\n\t\tmodules: function(props) {\n\t\t\tvar isNotObject = T.object.apply(this, arguments);\n\t\t\tif (isNotObject) return isNotObject;\n\n\t\t\tif (\n\t\t\t\tprops.modules && \n\t\t\t\tprops.modules.toolbar &&\n\t\t\t\tprops.modules.toolbar[0] &&\n\t\t\t\tprops.modules.toolbar[0].type\n\t\t\t) return new Error(\n\t\t\t\t'Since v1.0.0, React Quill will not create a custom toolbar for you ' +\n\t\t\t\t'anymore. Create a toolbar explictly, or let Quill create one. ' +\n\t\t\t\t'See: https://github.com/zenoamaro/react-quill#upgrading-to-react-quill-v100'\n\t\t\t);\n\t\t},\n\n\t\ttoolbar: function(props) {\n\t\t\tif ('toolbar' in props) return new Error(\n\t\t\t\t'The `toolbar` prop has been deprecated. Use `modules.toolbar` instead. ' +\n\t\t\t\t'See: https://github.com/zenoamaro/react-quill#upgrading-to-react-quill-v100'\n\t\t\t);\n\t\t},\n\n\t\tformats: function(props) {\n\t\t\tvar isNotArrayOfString = T.arrayOf(T.string).apply(this, arguments);\n\n\t\t\tif (isNotArrayOfString) return new Error(\n\t\t\t\t'You cannot specify custom `formats` anymore. Use Parchment instead. ' +\n\t\t\t\t'See: https://github.com/zenoamaro/react-quill#upgrading-to-react-quill-v100.'\n\t\t\t);\n\t\t},\n\n\t\tstyles: function(props) {\n\t\t\tif ('styles' in props) return new Error(\n\t\t\t\t'The `styles` prop has been deprecated. Use custom stylesheets instead. ' +\n\t\t\t\t'See: https://github.com/zenoamaro/react-quill#upgrading-to-react-quill-v100.'\n\t\t\t);\n\t\t},\n\n\t\tpollInterval: function(props) {\n\t\t\tif ('pollInterval' in props) return new Error(\n\t\t\t\t'The `pollInterval` property does not have any effect anymore. ' +\n\t\t\t\t'You can safely remove it from your props.' +\n\t\t\t\t'See: https://github.com/zenoamaro/react-quill#upgrading-to-react-quill-v100.'\n\t\t\t);\n\t\t},\n\n\t\tchildren: function(props) {\n\t\t\t// Validate that the editor has only one child element and it is not a